winutil/functions/private/Set-WinUtilUiTheme.ps1

49 lines
1.3 KiB
PowerShell
Raw Normal View History

05 16 23 testing (#881) * Fix power profile (#766) (#767) * Fix power profile query * fix syntax * fix * Update Invoke-WPFUltimatePerformance.ps1 * Update winutil.ps1 * power profile fix * add reset network with netsh (#768) * add verbose logon (#773) * add verbose logon Enable or disable verbose sign in status messages. Verbose status messages may be helpful when you are troubleshooting slow startup, shutdown, logon, or logoff behavior. * compress-into-one-checkbox * compile winutil.ps1 * Update README.md (#774) * Update README.md * Update README.md * Adding 3 programs to the install tab (#789) * Prism Launcher - Custom FOSS minecraft launcher * Gsudo - Command line program that allows you to elevate a program as admin. * WingetUI - Graphical front end for winget, chochlatey and scoop Co-authored-by: Chris Titus <contact@christitus.com> * add undoscript feature + implement it on every tweaks (#776) * add undoscript feature + implement it on right click menu - add undoscript feature - add undo for right click menu to go back to windows 11 default right click menu by implementing undoscript feature * undoscript for WPFMiscTweaksDisplay * undoscript for WPFEssTweaksRemoveEdge * undoscript for WPFEssTweaksRemoveCortana * undoscript for WPFEssTweaksStorage * Update Invoke-WinUtilTweaks.ps1 thanks to @DeveloperDurp * compile * Fix packages name (#815) * fix-winrar_package_name * fix-vc++_package_name * fix #687 * implement check for admin (#818) check if script is running as admin or not and if not then it attempt to relaunch with admin privilege. * add "NetFx4Extended-ASPNET45" under dotnet features (#831) * add-docker-desktop (#834) Co-authored-by: Chris Titus <contact@christitus.com> * Fix 'Get Installed' for multiple-dependency apps (#835) * Update winutil.ps1 (#858) fix typos * Fixing AcceptEULA on Autologin * Program Update: Replace Origin with EA App #544 (#875) * New Theme support, initial functions. (#878) * Fix power profile (#766) * Fix power profile query * fix syntax * fix * Update Invoke-WPFUltimatePerformance.ps1 * Update winutil.ps1 * power profile fix * Adding Nomacs Opensource free and fast Image viewer * Adding theme support Later when this is tested well, we can do one of 2 things. 1. Pass theme on a command line so people with bad vision will have an option to have a better (more visible theme) 2. Create a drop down with themes and a save button which would save it ti some local config file * Fix for the compile script --------- Co-authored-by: Chris Titus <contact@christitus.com> * Dark Mode Enable * auto detect theme --------- Co-authored-by: Padsala Tushal <57517785+padsalatushal@users.noreply.github.com> Co-authored-by: Taken <taken@mairimashita.org> Co-authored-by: Yurin Doctrine <bayramyurgidenn@gmail.com> Co-authored-by: Aaron <54756786+AaronVickers@users.noreply.github.com> Co-authored-by: Sahil Jassal <56100355+shljsl75891@users.noreply.github.com> Co-authored-by: supplefrog <78985073+supplefrog@users.noreply.github.com> Co-authored-by: KonTy <9524513+KonTy@users.noreply.github.com>
2023-07-13 15:46:00 -05:00
function Set-WinUtilUITheme {
<#
.DESCRIPTION
This function will set theme to the XAML file
.EXAMPLE
Set-WinUtilUITheme -inputXAML $inputXAML
#>
param
(
[Parameter(Mandatory=$true, Position=0)]
[string] $inputXML,
[Parameter(Mandatory=$false, Position=1)]
[string] $themeName = 'matrix'
)
try {
# Convert the JSON to a PowerShell object
$themes = $sync.configs.themes
# Select the specified theme
$selectedTheme = $themes.$themeName
if ($selectedTheme) {
# Loop through all key-value pairs in the selected theme
foreach ($property in $selectedTheme.PSObject.Properties) {
$key = $property.Name
$value = $property.Value
# Add curly braces around the key
$formattedKey = "{$key}"
# Replace the key with the value in the input XML
$inputXML = $inputXML.Replace($formattedKey, $value)
}
}
else {
Write-Host "Theme '$themeName' not found."
}
}
catch {
Write-Warning "Unable to apply theme"
Write-Warning $psitem.Exception.StackTrace
}
return $inputXML;
}