From 8069364777900215ba61dbc6752abb5db78f27a5 Mon Sep 17 00:00:00 2001
From: ogfrm <96927197+ogfrm@users.noreply.github.com>
Date: Thu, 1 Feb 2024 17:41:36 -0500
Subject: [PATCH] tweaks and fetures tabs clean up automation from
inputXML.xaml
* tweaks and fetures tabs clean up automation from inputXML.xaml
* fixed some commas in tweaks.json file
* recompile
* Update tweaks.json
---
config/feature.json | 141 +++++++++
config/tweaks.json | 234 ++++++++++++++-
scripts/main.ps1 | 128 ++++++---
winutil.ps1 | 680 +++++++++++++++++++++++++++++---------------
xaml/inputXML.xaml | 178 +-----------
5 files changed, 901 insertions(+), 460 deletions(-)
diff --git a/config/feature.json b/config/feature.json
index 9adf4f74..5df71ef6 100644
--- a/config/feature.json
+++ b/config/feature.json
@@ -1,5 +1,10 @@
{
"WPFFeaturesdotnet": {
+ "Content": "All .Net Framework (2,3,4)",
+ "Description": ".NET and .NET Framework is a developer platform made up of tools, programming languages, and libraries for building many different types of applications.",
+ "category": "Features",
+ "panel": "1",
+ "Order": "a010_",
"feature": [
"NetFx4-AdvSrvs",
"NetFx3"
@@ -9,6 +14,11 @@
]
},
"WPFFeatureshyperv": {
+ "Content": "HyperV Virtualization",
+ "Description": "Hyper-V is a hardware virtualization product developed by Microsoft that allows users to create and manage virtual machines.",
+ "category": "Features",
+ "panel": "1",
+ "Order": "a011_",
"feature": [
"HypervisorPlatform",
"Microsoft-Hyper-V-All",
@@ -24,6 +34,11 @@
]
},
"WPFFeatureslegacymedia": {
+ "Content": "Legacy Media (WMP, DirectPlay)",
+ "Description": "Enables legacy programs from previous versions of windows",
+ "category": "Features",
+ "panel": "1",
+ "Order": "a012_",
"feature": [
"WindowsMediaPlayer",
"MediaPlayback",
@@ -35,6 +50,11 @@
]
},
"WPFFeaturewsl": {
+ "Content": "Windows Subsystem for Linux",
+ "Description": "Windows Subsystem for Linux is an optional feature of Windows that allows Linux programs to run natively on Windows without the need for a separate virtual machine or dual booting.",
+ "category": "Features",
+ "panel": "1",
+ "Order": "a020_",
"feature": [
"VirtualMachinePlatform",
"Microsoft-Windows-Subsystem-Linux"
@@ -44,6 +64,11 @@
]
},
"WPFFeaturenfs": {
+ "Content": "NFS - Network File System",
+ "Description": "Network File System (NFS) is a mechanism for storing files on a network.",
+ "category": "Features",
+ "panel": "1",
+ "Order": "a014_",
"feature": [
"ServicesForNFS-ClientOnly",
"ClientForNFS-Infrastructure",
@@ -59,6 +84,11 @@
]
},
"WPFFeatureEnableSearchSuggestions": {
+ "Content": "Enable Search Box Web Suggestions in Registry(explorer restart)",
+ "Description": "Enables web suggestions when searching using Windows Search.",
+ "category": "Features",
+ "panel": "1",
+ "Order": "a015_",
"feature": [
],
"InvokeScript": [
@@ -72,6 +102,11 @@
]
},
"WPFFeatureDisableSearchSuggestions": {
+ "Content": "Disable Search Box Web Suggestions in Registry(explorer restart)",
+ "Description": "Disables web suggestions when searching using Windows Search.",
+ "category": "Features",
+ "panel": "1",
+ "Order": "a016_",
"feature": [
],
"InvokeScript": [
@@ -85,6 +120,11 @@
]
},
"WPFFeatureRegBackup": {
+ "Content": "Enable Daily Registry Backup Task 12.30am",
+ "Description": "Enables daily registry backup, previously disabled by Microsoft in Windows 10 1803.",
+ "category": "Features",
+ "panel": "1",
+ "Order": "a017_",
"feature": [
],
"InvokeScript": [
@@ -98,6 +138,11 @@
]
},
"WPFFeatureEnableLegacyRecovery": {
+ "Content": "Enable Legacy F8 Boot Recovery",
+ "Description": "Enables Advanced Boot Options screen that lets you start Windows in advanced troubleshooting modes.",
+ "category": "Features",
+ "panel": "1",
+ "Order": "a018_",
"feature": [
],
"InvokeScript": [
@@ -111,6 +156,11 @@
]
},
"WPFFeatureDisableLegacyRecovery": {
+ "Content": "Disable Legacy F8 Boot Recovery",
+ "Description": "Disables Advanced Boot Options screen that lets you start Windows in advanced troubleshooting modes.",
+ "category": "Features",
+ "panel": "1",
+ "Order": "a019_",
"feature": [
],
"InvokeScript": [
@@ -122,5 +172,96 @@
Start-Process -FilePath cmd.exe -ArgumentList '/c bcdedit /Set {Current} BootMenuPolicy Standard' -Wait
"
]
+ },
+ "WPFFeaturesandbox": {
+ "Content": "Windows Sandbox",
+ "category": "Features",
+ "panel": "1",
+ "Order": "a021_",
+ "Description": "Windows Sandbox is a lightweight virtual machine that provides a temporary desktop environment to safely run applications and programs in isolation.",
+ },
+ "WPFFeatureInstall": {
+ "Content": "Install Features",
+ "category": "Features",
+ "panel": "1",
+ "Order": "a060_",
+ "Type": "150"
+ },
+ "WPFPanelAutologin": {
+ "Content": "Set Up Autologin",
+ "category": "Fixes",
+ "Order": "a040_",
+ "panel": "1",
+ "Type": "300"
+ },
+ "WPFFixesUpdate": {
+ "Content": "Reset Windows Update",
+ "category": "Fixes",
+ "panel": "1",
+ "Order": "a041_",
+ "Type": "300"
+ },
+ "WPFFixesNetwork": {
+ "Content": "Reset Network",
+ "category": "Fixes",
+ "Order": "a042_",
+ "panel": "1",
+ "Type": "300"
+ },
+ "WPFPanelDISM": {
+ "Content": "System Corruption Scan",
+ "category": "Fixes",
+ "panel": "1",
+ "Order": "a043_",
+ "Type": "300"
+ },
+ "WPFFixesWinget": {
+ "Content": "WinGet Reinstall",
+ "category": "Fixes",
+ "panel": "1",
+ "Order": "a044_",
+ "Type": "300"
+ },
+ "WPFPanelnetwork": {
+ "Content": "Network Connections",
+ "category": "Legacy Windows Panels",
+ "panel": "2",
+ "Type": "200"
+ },
+ "WPFPanelcontrol": {
+ "Content": "Control Panel",
+ "category": "Legacy Windows Panels",
+ "panel": "2",
+ "Type": "200"
+ },
+ "WPFPanelpower": {
+ "Content": "Power Panel",
+ "category": "Legacy Windows Panels",
+ "panel": "2",
+ "Type": "200"
+ },
+ "WPFPanelregion": {
+ "Content": "Region",
+ "category": "Legacy Windows Panels",
+ "panel": "2",
+ "Type": "200"
+ },
+ "WPFPanelsound": {
+ "Content": "Sound Settings",
+ "category": "Legacy Windows Panels",
+ "panel": "2",
+ "Type": "200"
+ },
+ "WPFPanelsystem": {
+ "Content": "System Properties",
+ "category": "Legacy Windows Panels",
+ "panel": "2",
+ "Type": "200"
+ },
+ "WPFPaneluser": {
+ "Content": "User Accounts",
+ "category": "Legacy Windows Panels",
+ "panel": "2",
+ "Type": "200"
}
}
diff --git a/config/tweaks.json b/config/tweaks.json
index ff0dce16..e9d5873a 100644
--- a/config/tweaks.json
+++ b/config/tweaks.json
@@ -1,5 +1,10 @@
{
"WPFTweaksAH": {
+ "Content": "Disable Activity History",
+ "Description": "This erases recent docs, clipboard, and run history.",
+ "category": "Essential Tweaks",
+ "panel": "1",
+ "Order": "a005_",
"registry": [
{
"Path": "HKLM:\\SOFTWARE\\Policies\\Microsoft\\Windows\\System",
@@ -25,6 +30,11 @@
]
},
"WPFTweaksHiber": {
+ "Content": "Disable Hibernation",
+ "Description": "Hibernation is really meant for laptops as it saves what's in memory before turning the pc off. It really should never be used, but some people are lazy and rely on it. Don't be like Bob. Bob likes hibernation.",
+ "category": "Essential Tweaks",
+ "panel": "1",
+ "Order": "a011_",
"registry": [
{
"Path": "HKLM:\\System\\CurrentControlSet\\Control\\Session Manager\\Power",
@@ -46,6 +56,11 @@
]
},
"WPFTweaksHome": {
+ "Content": "Disable Homegroup",
+ "Description": "Disables HomeGroup - HomeGroup is a password-protected home networking service that lets you share your stuff with other PCs that are currently running and connected to your network.",
+ "category": "Essential Tweaks",
+ "panel": "1",
+ "Order": "a009_",
"service": [
{
"Name": "HomeGroupListener",
@@ -60,6 +75,11 @@
]
},
"WPFTweaksLoc": {
+ "Content": "Disable Location Tracking",
+ "Description": "Disables Location Tracking...DUH!",
+ "category": "Essential Tweaks",
+ "panel": "1",
+ "Order": "a008_",
"registry": [
{
"Path": "HKLM:\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\CapabilityAccessManager\\ConsentStore\\location",
@@ -92,6 +112,11 @@
]
},
"WPFTweaksServices": {
+ "Content": "Set Services to Manual",
+ "Description": "Turns a bunch of system services to manual that don't need to be running all the time. This is pretty harmless as if the service is needed, it will simply start on demand.",
+ "category": "Essential Tweaks",
+ "panel": "1",
+ "Order": "a014_",
"service": [
{
"Name": "AJRouter",
@@ -1511,6 +1536,11 @@
]
},
"WPFTweaksTele": {
+ "Content": "Disable Telemetry",
+ "Description": "Disables Microsoft Telemetry. Note: This will lock many Edge Browser settings. Microsoft spies heavily on you when using the Edge browser.",
+ "category": "Essential Tweaks",
+ "panel": "1",
+ "Order": "a003_",
"ScheduledTask": [
{
"Name": "Microsoft\\Windows\\Application Experience\\Microsoft Compatibility Appraiser",
@@ -1898,6 +1928,11 @@
]
},
"WPFTweaksWifi": {
+ "Content": "Disable Wifi-Sense",
+ "Description": "Wifi Sense is a spying service that phones home all nearby scanned wifi networks and your current geo location.",
+ "category": "Essential Tweaks",
+ "panel": "1",
+ "Order": "a004_",
"registry": [
{
"Path": "HKLM:\\Software\\Microsoft\\PolicyManager\\default\\WiFi\\AllowWiFiHotSpotReporting",
@@ -1916,6 +1951,11 @@
]
},
"WPFTweaksUTC": {
+ "Content": "Set Time to UTC (Dual Boot)",
+ "Description": "Essential for computers that are dual booting. Fixes the time sync with Linux Systems.",
+ "category": "z__Advanced Tweaks - CAUTION",
+ "panel": "1",
+ "Order": "a022_",
"registry": [
{
"Path": "HKLM:\\SYSTEM\\CurrentControlSet\\Control\\TimeZoneInformation",
@@ -1927,6 +1967,11 @@
]
},
"WPFTweaksDisplay": {
+ "Content": "Set Display for Performance",
+ "Description": "Sets the system preferences to performance. You can do this manually with sysdm.cpl as well.",
+ "category": "z__Advanced Tweaks - CAUTION",
+ "panel": "1",
+ "Order": "a021_",
"registry": [
{
"Path": "HKCU:\\Control Panel\\Desktop",
@@ -2028,6 +2073,11 @@
]
},
"WPFTweaksDeBloat": {
+ "Content": "Remove ALL MS Store Apps - NOT RECOMMENDED",
+ "Description": "USE WITH CAUTION!!!!! This will remove ALL Microsoft store apps other than the essentials to make winget work. Games installed by MS Store ARE INCLUDED!",
+ "category": "z__Advanced Tweaks - CAUTION",
+ "panel": "1",
+ "Order": "a025_",
"appx": [
"Microsoft.Microsoft3DViewer",
"Microsoft.AppConnector",
@@ -2142,6 +2192,12 @@
]
},
"WPFTweaksRestorePoint": {
+ "Content": "Create Restore Point",
+ "Description": "Creates a restore point at runtime in case a revert is needed from WinUtil modifications",
+ "category": "Essential Tweaks",
+ "panel": "1",
+ "Checked": "True",
+ "Order": "a001_",
"InvokeScript": [
"
# Check if the user has administrative privileges
@@ -2179,6 +2235,13 @@
]
},
"WPFTweaksOO": {
+ "Content": "Run OO Shutup",
+ "Description": "Runs OO Shutup from https://www.oo-software.com/en/shutup10",
+ "category": "Essential Tweaks",
+ "panel": "1",
+ "Order": "a002_",
+ "Content": "Run OO Shutup",
+ "ToolTip": "Runs OO Shutup from https://www.oo-software.com/en/shutup10",
"InvokeScript": [
"curl.exe -s \"https://raw.githubusercontent.com/ChrisTitusTech/winutil/main/ooshutup10_winutil_settings.cfg\" -o $ENV:temp\\ooshutup10.cfg
curl.exe -s \"https://dl5.oo-software.com/files/ooshutup10/OOSU10.exe\" -o $ENV:temp\\OOSU10.exe
@@ -2187,6 +2250,11 @@
]
},
"WPFTweaksStorage": {
+ "Content": "Disable Storage Sense",
+ "Description": "Storage Sense deletes temp files automatically.",
+ "category": "Essential Tweaks",
+ "panel": "1",
+ "Order": "a010_",
"InvokeScript": [
"Remove-Item -Path \"HKCU:\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\StorageSense\\Parameters\\StoragePolicy\" -Recurse -ErrorAction SilentlyContinue"
],
@@ -2196,6 +2264,11 @@
]
},
"WPFTweaksRemoveEdge": {
+ "Content": "Remove Microsoft Edge - NOT RECOMMENDED",
+ "Description": "Removes MS Edge when it gets reinstalled by updates.",
+ "category": "z__Advanced Tweaks - CAUTION",
+ "panel": "1",
+ "Order": "a026_",
"InvokeScript": [
"
#:: Standalone script by AveYo Source: https://raw.githubusercontent.com/AveYo/fox/main/Edge_Removal.bat
@@ -2213,6 +2286,11 @@
]
},
"WPFTweaksRemoveOnedrive": {
+ "Content": "Remove OneDrive",
+ "Description": "Copies OneDrive files to Default Home Folders and Uninstalls it.",
+ "category": "z__Advanced Tweaks - CAUTION",
+ "panel": "1",
+ "Order": "a027_",
"InvokeScript": [
"
@@ -2290,6 +2368,11 @@
]
},
"WPFTweaksDisableNotifications": {
+ "Content": "Disable Notification Tray/Calendar",
+ "Description": "Disables all Notifications INCLUDING Calendar",
+ "category": "z__Advanced Tweaks - CAUTION",
+ "panel": "1",
+ "Order": "a024_",
"registry": [
{
"Path": "HKCU:\\Software\\Policies\\Microsoft\\Windows\\Explorer",
@@ -2308,6 +2391,11 @@
]
},
"WPFTweaksRightClickMenu": {
+ "Content": "Set Classic Right-Click Menu ",
+ "Description": "Great Windows 11 tweak to bring back good context menus when right clicking things in explorer.",
+ "category": "z__Advanced Tweaks - CAUTION",
+ "panel": "1",
+ "Order": "a028_",
"InvokeScript": [
"New-Item -Path \"HKCU:\\Software\\Classes\\CLSID\\{86ca1aa0-34aa-4e8b-a509-50c905bae2a2}\" -Name \"InprocServer32\" -force -value \"\" "
],
@@ -2319,6 +2407,11 @@
]
},
"WPFTweaksDiskCleanup": {
+ "Content": "Run Disk Cleanup",
+ "Description": "Runs Disk Cleanup on Drive C: and removes old Windows Updates.",
+ "category": "Essential Tweaks",
+ "panel": "1",
+ "Order": "a007_",
"InvokeScript": [
"
cleanmgr.exe /d C: /VERYLOWDISK
@@ -2327,6 +2420,11 @@
]
},
"WPFTweaksDisableUAC": {
+ "Content": "Disable UAC",
+ "Description": "Disables User Account Control. Only recommended for Expert Users.",
+ "category": "z__Advanced Tweaks - CAUTION",
+ "panel": "1",
+ "Order": "a023_",
"registry": [
{
"Path": "HKLM:\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Policies\\System",
@@ -2338,12 +2436,22 @@
]
},
"WPFTweaksDeleteTempFiles": {
+ "Content": "Delete Temporary Files",
+ "Description": "Erases TEMP Folders",
+ "category": "Essential Tweaks",
+ "panel": "1",
+ "Order": "a006_",
"InvokeScript": [
"Get-ChildItem -Path \"C:\\Windows\\Temp\" *.* -Recurse | Remove-Item -Force -Recurse
Get-ChildItem -Path $env:TEMP *.* -Recurse | Remove-Item -Force -Recurse"
]
},
"WPFTweaksDVR": {
+ "Content": "Disable GameDVR",
+ "Description": "GameDVR is a Windows App that is a dependency for some Store Games. I've never met someone that likes it, but it's there for the XBOX crowd.",
+ "category": "Essential Tweaks",
+ "panel": "1",
+ "Order": "a012_",
"registry": [
{
"Path": "HKCU:\\System\\GameConfigStore",
@@ -2390,6 +2498,12 @@
]
},
"WPFTweaksTeredo": {
+ "Content": "Disable Teredo",
+ "Description": "Teredo network tunneling is a ipv6 feature that can cause additional latency.",
+ "category": "Essential Tweaks",
+ "panel": "1",
+ "Order": "a029_",
+ "Order": "a013_",
"registry": [
{
"Path": "HKLM:\\SYSTEM\\CurrentControlSet\\Services\\Tcpip6\\Parameters",
@@ -2406,18 +2520,12 @@
"netsh interface teredo set state default"
]
},
- "WPFBingSearch": {
- "registry": [
- {
- "OriginalValue": "1",
- "Name": "BingSearchEnabled",
- "Path": "HKCU:\\Software\\Microsoft\\Windows\\CurrentVersion\\Search",
- "Type": "DWord",
- "Value": "0"
- }
- ]
- },
"WPFTweaksDisableipsix": {
+ "Content": "Disable IPv6",
+ "Description": "Disables IPv6.",
+ "category": "z__Advanced Tweaks - CAUTION",
+ "panel": "1",
+ "Order": "a031_",
"InvokeScript": [
"Disable-NetAdapterBinding -Name \"*\" -ComponentID ms_tcpip6"
],
@@ -2426,11 +2534,115 @@
]
},
"WPFTweaksEnableipsix": {
+ "Content": "Enable IPv6",
+ "Description": "Enables IPv6.",
+ "category": "z__Advanced Tweaks - CAUTION",
+ "panel": "1",
+ "Order": "a030_",
"InvokeScript": [
"Enable-NetAdapterBinding -Name \"*\" -ComponentID ms_tcpip6"
],
"UndoScript": [
"Disable-NetAdapterBinding -Name \"*\" -ComponentID ms_tcpip6"
]
+ },
+ "WPFToggleDarkMode": {
+ "Content": "Dark Theme",
+ "Description": "Enable/Disable Dark Mode.",
+ "category": "Customize Preferences",
+ "panel": "2",
+ "Order": "a060_",
+ "Type": "Toggle"
+ },
+ "WPFToggleBingSearch": {
+ "Content": "Bing Search in Start Menu",
+ "Description": "If enable then includes web search results from Bing in your Start Menu search.",
+ "category": "Customize Preferences",
+ "panel": "2",
+ "Order": "a061_",
+ "Type": "Toggle"
+ },
+ "WPFToggleNumLock": {
+ "Content": "NumLock on Startup",
+ "Description": "Toggle the Num Lock key state when your computer starts.",
+ "category": "Customize Preferences",
+ "panel": "2",
+ "Order": "a062_",
+ "Type": "Toggle"
+ },
+ "WPFToggleVerboseLogon": {
+ "Content": "Verbose Logon Messages",
+ "Description": "Show detailed messages during the login process for troubleshooting and diagnostics.",
+ "category": "Customize Preferences",
+ "panel": "2",
+ "Order": "a063_",
+ "Type": "Toggle"
+ },
+ "WPFToggleShowExt": {
+ "Content": "Show File Extensions",
+ "Description": "If enabled then File extensions (e.g., .txt, .jpg) are visible.",
+ "category": "Customize Preferences",
+ "panel": "2",
+ "Order": "a064_",
+ "Type": "Toggle"
+ },
+ "WPFToggleSnapFlyout": {
+ "Content": "Snap Assist Flyout",
+ "Description": "If enabled then Snap preview is disabled when maximize button is hovered.",
+ "category": "Customize Preferences",
+ "panel": "2",
+ "Order": "a065_",
+ "Type": "Toggle"
+ },
+ "WPFToggleMouseAcceleration": {
+ "Content": "Mouse Acceleration",
+ "Description": "If Enabled then Cursor movement is affected by the speed of your physical mouse movements.",
+ "category": "Customize Preferences",
+ "panel": "2",
+ "Order": "a066_",
+ "Type": "Toggle"
+ },
+ "WPFchangedns": {
+ "Content": "DNS",
+ "category": "z__Advanced Tweaks - CAUTION",
+ "panel": "1",
+ "Order": "a040_",
+ "Type": "Combobox",
+ "ComboItems": "Default DHCP Google Cloudflare Cloudflare_Malware Cloudflare_Malware_Adult Level3 Open_DNS Quad9"
+ },
+ "WPFTweaksbutton": {
+ "Content": "Run Tweaks",
+ "category": "z__Advanced Tweaks - CAUTION",
+ "panel": "1",
+ "Order": "a041_",
+ "Type": "160"
+ },
+ "WPFUndoall": {
+ "Content": "Undo Selected Tweaks",
+ "category": "z__Advanced Tweaks - CAUTION",
+ "panel": "1",
+ "Order": "a042_",
+ "Type": "160"
+ },
+ "WPFAddUltPerf": {
+ "Content": "Add and Activate Ultimate Performance Profile",
+ "category": "Performance Plans",
+ "panel": "2",
+ "Order": "a080_",
+ "Type": "300"
+ },
+ "WPFRemoveUltPerf": {
+ "Content": "Remove Ultimate Performance Profile",
+ "category": "Performance Plans",
+ "panel": "2",
+ "Order": "a081_",
+ "Type": "300"
+ },
+ "WPFWinUtilShortcut": {
+ "Content": "Create WinUtil Shortcut",
+ "category": "Shortcuts",
+ "panel": "2",
+ "Order": "a082_",
+ "Type": "300"
}
}
diff --git a/scripts/main.ps1 b/scripts/main.ps1
index 85bf37b8..2132893d 100644
--- a/scripts/main.ps1
+++ b/scripts/main.ps1
@@ -52,57 +52,97 @@ $sync.runspace.Open()
$inputXML = $inputXML -replace 'mc:Ignorable="d"', '' -replace "x:N", 'N' -replace '^`n"
- $sortedApps = $organizedData[$panel][$category].Keys | Sort-Object
- foreach ($appName in $sortedApps) {
- $appInfo = $organizedData[$panel][$category][$appName]
- if ($null -eq $appInfo.Link)
- {
- $blockXml += "`n"
- }
- else
- {
- $blockXml += "`n"
+ $panelcount=0
+ # add ColumnDefinitions to evenly draw colums
+ $blockXml="`n"+("`n"*($organizedData.Keys.Count))+"`n"
+ # Iterate through organizedData by panel, category, and application
+ foreach ($panel in ($organizedData.Keys | Sort-Object)) {
+ $blockXml += "`n`n"
+ $panelcount++
+ foreach ($category in ($organizedData[$panel].Keys | Sort-Object)) {
+ $blockXml += "`n"
+ $sortedApps = $organizedData[$panel][$category].Keys | Sort-Object
+ foreach ($appName in $sortedApps) {
+ $appInfo = $organizedData[$panel][$category][$appName]
+ if ("Toggle" -eq $appInfo.Type) {
+ $blockXml += "`n`n"
+ $blockXml += "`n`n"
+ } elseif ("Combobox" -eq $appInfo.Type) {
+ $blockXml += "`n"
+ # If it is a digit, type is button and button length is digits
+ } elseif ($appInfo.Type -match "^[\d\.]+$") {
+ $blockXml += "`n"
+ # else it is a checkbox
+ } else {
+ $checkedStatus = If ($null -eq $appInfo.Checked) {""} Else {"IsChecked=`"$($appInfo.Checked)`" "}
+ if ($null -eq $appInfo.Link)
+ {
+ $blockXml += "`n"
+ }
+ else
+ {
+ $blockXml += "`n`n`n"
+ }
+ }
}
}
+ $blockXml +="`n`n`n"
}
-
- $inputXML = $inputXML -replace "{{InstallPanel$panel}}", $blockXml
- $blockXml = ""
+ return ($blockXml)
}
+$tabcolums=Get-TabXaml "applications"
+$inputXML = $inputXML -replace "{{InstallPanel_applications}}", ($tabcolums)
+$tabcolums=Get-TabXaml "tweaks"
+$inputXML = $inputXML -replace "{{InstallPanel_tweaks}}", ($tabcolums)
+$tabcolums=Get-TabXaml "feature"
+$inputXML = $inputXML -replace "{{InstallPanel_features}}", ($tabcolums)
+
if ((Get-WinUtilToggleStatus WPFToggleDarkMode) -eq $True) {
$ctttheme = 'Matrix'
}
diff --git a/winutil.ps1 b/winutil.ps1
index 7c8fcad8..60eec2b6 100644
--- a/winutil.ps1
+++ b/winutil.ps1
@@ -5023,38 +5023,7 @@ $inputXML = '
-
-
-
-
-
-
-
-
-
- {{InstallPanel0}}
-
-
-
-
- {{InstallPanel1}}
-
-
-
-
- {{InstallPanel2}}
-
-
-
-
- {{InstallPanel3}}
-
-
-
-
- {{InstallPanel4}}
-
-
+ {{InstallPanel_applications}}
@@ -5063,15 +5032,12 @@ $inputXML = '
-
-
-
-
+ {{InstallPanel_tweaks}}
@@ -5089,151 +5055,13 @@ $inputXML = '
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+ {{InstallPanel_features}}
@@ -7972,6 +7800,11 @@ $sync.configs.dns = '{
}' | convertfrom-json
$sync.configs.feature = '{
"WPFFeaturesdotnet": {
+ "Content": "All .Net Framework (2,3,4)",
+ "Description": ".NET and .NET Framework is a developer platform made up of tools, programming languages, and libraries for building many different types of applications.",
+ "category": "Features",
+ "panel": "1",
+ "Order": "a010_",
"feature": [
"NetFx4-AdvSrvs",
"NetFx3"
@@ -7981,6 +7814,11 @@ $sync.configs.feature = '{
]
},
"WPFFeatureshyperv": {
+ "Content": "HyperV Virtualization",
+ "Description": "Hyper-V is a hardware virtualization product developed by Microsoft that allows users to create and manage virtual machines.",
+ "category": "Features",
+ "panel": "1",
+ "Order": "a011_",
"feature": [
"HypervisorPlatform",
"Microsoft-Hyper-V-All",
@@ -7996,6 +7834,11 @@ $sync.configs.feature = '{
]
},
"WPFFeatureslegacymedia": {
+ "Content": "Legacy Media (WMP, DirectPlay)",
+ "Description": "Enables legacy programs from previous versions of windows",
+ "category": "Features",
+ "panel": "1",
+ "Order": "a012_",
"feature": [
"WindowsMediaPlayer",
"MediaPlayback",
@@ -8007,6 +7850,11 @@ $sync.configs.feature = '{
]
},
"WPFFeaturewsl": {
+ "Content": "Windows Subsystem for Linux",
+ "Description": "Windows Subsystem for Linux is an optional feature of Windows that allows Linux programs to run natively on Windows without the need for a separate virtual machine or dual booting.",
+ "category": "Features",
+ "panel": "1",
+ "Order": "a020_",
"feature": [
"VirtualMachinePlatform",
"Microsoft-Windows-Subsystem-Linux"
@@ -8016,6 +7864,11 @@ $sync.configs.feature = '{
]
},
"WPFFeaturenfs": {
+ "Content": "NFS - Network File System",
+ "Description": "Network File System (NFS) is a mechanism for storing files on a network.",
+ "category": "Features",
+ "panel": "1",
+ "Order": "a014_",
"feature": [
"ServicesForNFS-ClientOnly",
"ClientForNFS-Infrastructure",
@@ -8031,6 +7884,11 @@ $sync.configs.feature = '{
]
},
"WPFFeatureEnableSearchSuggestions": {
+ "Content": "Enable Search Box Web Suggestions in Registry(explorer restart)",
+ "Description": "Enables web suggestions when searching using Windows Search.",
+ "category": "Features",
+ "panel": "1",
+ "Order": "a015_",
"feature": [
],
"InvokeScript": [
@@ -8044,6 +7902,11 @@ $sync.configs.feature = '{
]
},
"WPFFeatureDisableSearchSuggestions": {
+ "Content": "Disable Search Box Web Suggestions in Registry(explorer restart)",
+ "Description": "Disables web suggestions when searching using Windows Search.",
+ "category": "Features",
+ "panel": "1",
+ "Order": "a016_",
"feature": [
],
"InvokeScript": [
@@ -8057,6 +7920,11 @@ $sync.configs.feature = '{
]
},
"WPFFeatureRegBackup": {
+ "Content": "Enable Daily Registry Backup Task 12.30am",
+ "Description": "Enables daily registry backup, previously disabled by Microsoft in Windows 10 1803.",
+ "category": "Features",
+ "panel": "1",
+ "Order": "a017_",
"feature": [
],
"InvokeScript": [
@@ -8070,6 +7938,11 @@ $sync.configs.feature = '{
]
},
"WPFFeatureEnableLegacyRecovery": {
+ "Content": "Enable Legacy F8 Boot Recovery",
+ "Description": "Enables Advanced Boot Options screen that lets you start Windows in advanced troubleshooting modes.",
+ "category": "Features",
+ "panel": "1",
+ "Order": "a018_",
"feature": [
],
"InvokeScript": [
@@ -8083,6 +7956,11 @@ $sync.configs.feature = '{
]
},
"WPFFeatureDisableLegacyRecovery": {
+ "Content": "Disable Legacy F8 Boot Recovery",
+ "Description": "Disables Advanced Boot Options screen that lets you start Windows in advanced troubleshooting modes.",
+ "category": "Features",
+ "panel": "1",
+ "Order": "a019_",
"feature": [
],
"InvokeScript": [
@@ -8094,6 +7972,97 @@ $sync.configs.feature = '{
Start-Process -FilePath cmd.exe -ArgumentList ''/c bcdedit /Set {Current} BootMenuPolicy Standard'' -Wait
"
]
+ },
+ "WPFFeaturesandbox": {
+ "Content": "Windows Sandbox",
+ "category": "Features",
+ "panel": "1",
+ "Order": "a021_",
+ "Description": "Windows Sandbox is a lightweight virtual machine that provides a temporary desktop environment to safely run applications and programs in isolation.",
+ },
+ "WPFFeatureInstall": {
+ "Content": "Install Features",
+ "category": "Features",
+ "panel": "1",
+ "Order": "a060_",
+ "Type": "150"
+ },
+ "WPFPanelAutologin": {
+ "Content": "Set Up Autologin",
+ "category": "Fixes",
+ "Order": "a040_",
+ "panel": "1",
+ "Type": "300"
+ },
+ "WPFFixesUpdate": {
+ "Content": "Reset Windows Update",
+ "category": "Fixes",
+ "panel": "1",
+ "Order": "a041_",
+ "Type": "300"
+ },
+ "WPFFixesNetwork": {
+ "Content": "Reset Network",
+ "category": "Fixes",
+ "Order": "a042_",
+ "panel": "1",
+ "Type": "300"
+ },
+ "WPFPanelDISM": {
+ "Content": "System Corruption Scan",
+ "category": "Fixes",
+ "panel": "1",
+ "Order": "a043_",
+ "Type": "300"
+ },
+ "WPFFixesWinget": {
+ "Content": "WinGet Reinstall",
+ "category": "Fixes",
+ "panel": "1",
+ "Order": "a044_",
+ "Type": "300"
+ },
+ "WPFPanelnetwork": {
+ "Content": "Network Connections",
+ "category": "Legacy Windows Panels",
+ "panel": "2",
+ "Type": "200"
+ },
+ "WPFPanelcontrol": {
+ "Content": "Control Panel",
+ "category": "Legacy Windows Panels",
+ "panel": "2",
+ "Type": "200"
+ },
+ "WPFPanelpower": {
+ "Content": "Power Panel",
+ "category": "Legacy Windows Panels",
+ "panel": "2",
+ "Type": "200"
+ },
+ "WPFPanelregion": {
+ "Content": "Region",
+ "category": "Legacy Windows Panels",
+ "panel": "2",
+ "Type": "200"
+ },
+ "WPFPanelsound": {
+ "Content": "Sound Settings",
+ "category": "Legacy Windows Panels",
+ "panel": "2",
+ "Type": "200"
+ },
+ "WPFPanelsystem": {
+ "Content": "System Properties",
+ "category": "Legacy Windows Panels",
+ "panel": "2",
+ "Type": "200"
+ },
+ "WPFPaneluser": {
+ "Content": "User Accounts",
+ "category": "Legacy Windows Panels",
+ "panel": "2",
+ "Type": "200"
}
}' | convertfrom-json
$sync.configs.preset = '{
@@ -8195,6 +8164,11 @@ $sync.configs.themes = '{
}' | convertfrom-json
$sync.configs.tweaks = '{
"WPFTweaksAH": {
+ "Content": "Disable Activity History",
+ "Description": "This erases recent docs, clipboard, and run history.",
+ "category": "Essential Tweaks",
+ "panel": "1",
+ "Order": "a005_",
"registry": [
{
"Path": "HKLM:\\SOFTWARE\\Policies\\Microsoft\\Windows\\System",
@@ -8220,6 +8194,11 @@ $sync.configs.tweaks = '{
]
},
"WPFTweaksHiber": {
+ "Content": "Disable Hibernation",
+ "Description": "Hibernation is really meant for laptops as it saves what''s in memory before turning the pc off. It really should never be used, but some people are lazy and rely on it. Don''t be like Bob. Bob likes hibernation.",
+ "category": "Essential Tweaks",
+ "panel": "1",
+ "Order": "a011_",
"registry": [
{
"Path": "HKLM:\\System\\CurrentControlSet\\Control\\Session Manager\\Power",
@@ -8241,6 +8220,11 @@ $sync.configs.tweaks = '{
]
},
"WPFTweaksHome": {
+ "Content": "Disable Homegroup",
+ "Description": "Disables HomeGroup - HomeGroup is a password-protected home networking service that lets you share your stuff with other PCs that are currently running and connected to your network.",
+ "category": "Essential Tweaks",
+ "panel": "1",
+ "Order": "a009_",
"service": [
{
"Name": "HomeGroupListener",
@@ -8255,6 +8239,11 @@ $sync.configs.tweaks = '{
]
},
"WPFTweaksLoc": {
+ "Content": "Disable Location Tracking",
+ "Description": "Disables Location Tracking...DUH!",
+ "category": "Essential Tweaks",
+ "panel": "1",
+ "Order": "a008_",
"registry": [
{
"Path": "HKLM:\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\CapabilityAccessManager\\ConsentStore\\location",
@@ -8287,6 +8276,11 @@ $sync.configs.tweaks = '{
]
},
"WPFTweaksServices": {
+ "Content": "Set Services to Manual",
+ "Description": "Turns a bunch of system services to manual that don''t need to be running all the time. This is pretty harmless as if the service is needed, it will simply start on demand.",
+ "category": "Essential Tweaks",
+ "panel": "1",
+ "Order": "a014_",
"service": [
{
"Name": "AJRouter",
@@ -9706,6 +9700,11 @@ $sync.configs.tweaks = '{
]
},
"WPFTweaksTele": {
+ "Content": "Disable Telemetry",
+ "Description": "Disables Microsoft Telemetry. Note: This will lock many Edge Browser settings. Microsoft spies heavily on you when using the Edge browser.",
+ "category": "Essential Tweaks",
+ "panel": "1",
+ "Order": "a003_",
"ScheduledTask": [
{
"Name": "Microsoft\\Windows\\Application Experience\\Microsoft Compatibility Appraiser",
@@ -10093,6 +10092,11 @@ $sync.configs.tweaks = '{
]
},
"WPFTweaksWifi": {
+ "Content": "Disable Wifi-Sense",
+ "Description": "Wifi Sense is a spying service that phones home all nearby scanned wifi networks and your current geo location.",
+ "category": "Essential Tweaks",
+ "panel": "1",
+ "Order": "a004_",
"registry": [
{
"Path": "HKLM:\\Software\\Microsoft\\PolicyManager\\default\\WiFi\\AllowWiFiHotSpotReporting",
@@ -10111,6 +10115,11 @@ $sync.configs.tweaks = '{
]
},
"WPFTweaksUTC": {
+ "Content": "Set Time to UTC (Dual Boot)",
+ "Description": "Essential for computers that are dual booting. Fixes the time sync with Linux Systems.",
+ "category": "z__Advanced Tweaks - CAUTION",
+ "panel": "1",
+ "Order": "a022_",
"registry": [
{
"Path": "HKLM:\\SYSTEM\\CurrentControlSet\\Control\\TimeZoneInformation",
@@ -10122,6 +10131,11 @@ $sync.configs.tweaks = '{
]
},
"WPFTweaksDisplay": {
+ "Content": "Set Display for Performance",
+ "Description": "Sets the system preferences to performance. You can do this manually with sysdm.cpl as well.",
+ "category": "z__Advanced Tweaks - CAUTION",
+ "panel": "1",
+ "Order": "a021_",
"registry": [
{
"Path": "HKCU:\\Control Panel\\Desktop",
@@ -10223,6 +10237,11 @@ $sync.configs.tweaks = '{
]
},
"WPFTweaksDeBloat": {
+ "Content": "Remove ALL MS Store Apps - NOT RECOMMENDED",
+ "Description": "USE WITH CAUTION!!!!! This will remove ALL Microsoft store apps other than the essentials to make winget work. Games installed by MS Store ARE INCLUDED!",
+ "category": "z__Advanced Tweaks - CAUTION",
+ "panel": "1",
+ "Order": "a025_",
"appx": [
"Microsoft.Microsoft3DViewer",
"Microsoft.AppConnector",
@@ -10337,6 +10356,12 @@ $sync.configs.tweaks = '{
]
},
"WPFTweaksRestorePoint": {
+ "Content": "Create Restore Point",
+ "Description": "Creates a restore point at runtime in case a revert is needed from WinUtil modifications",
+ "category": "Essential Tweaks",
+ "panel": "1",
+ "Checked": "True",
+ "Order": "a001_",
"InvokeScript": [
"
# Check if the user has administrative privileges
@@ -10374,6 +10399,13 @@ $sync.configs.tweaks = '{
]
},
"WPFTweaksOO": {
+ "Content": "Run OO Shutup",
+ "Description": "Runs OO Shutup from https://www.oo-software.com/en/shutup10",
+ "category": "Essential Tweaks",
+ "panel": "1",
+ "Order": "a002_",
+ "Content": "Run OO Shutup",
+ "ToolTip": "Runs OO Shutup from https://www.oo-software.com/en/shutup10",
"InvokeScript": [
"curl.exe -s \"https://raw.githubusercontent.com/ChrisTitusTech/winutil/main/ooshutup10_winutil_settings.cfg\" -o $ENV:temp\\ooshutup10.cfg
curl.exe -s \"https://dl5.oo-software.com/files/ooshutup10/OOSU10.exe\" -o $ENV:temp\\OOSU10.exe
@@ -10382,6 +10414,11 @@ $sync.configs.tweaks = '{
]
},
"WPFTweaksStorage": {
+ "Content": "Disable Storage Sense",
+ "Description": "Storage Sense deletes temp files automatically.",
+ "category": "Essential Tweaks",
+ "panel": "1",
+ "Order": "a010_",
"InvokeScript": [
"Remove-Item -Path \"HKCU:\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\StorageSense\\Parameters\\StoragePolicy\" -Recurse -ErrorAction SilentlyContinue"
],
@@ -10391,6 +10428,11 @@ $sync.configs.tweaks = '{
]
},
"WPFTweaksRemoveEdge": {
+ "Content": "Remove Microsoft Edge - NOT RECOMMENDED",
+ "Description": "Removes MS Edge when it gets reinstalled by updates.",
+ "category": "z__Advanced Tweaks - CAUTION",
+ "panel": "1",
+ "Order": "a026_",
"InvokeScript": [
"
#:: Standalone script by AveYo Source: https://raw.githubusercontent.com/AveYo/fox/main/Edge_Removal.bat
@@ -10408,6 +10450,11 @@ $sync.configs.tweaks = '{
]
},
"WPFTweaksRemoveOnedrive": {
+ "Content": "Remove OneDrive",
+ "Description": "Copies OneDrive files to Default Home Folders and Uninstalls it.",
+ "category": "z__Advanced Tweaks - CAUTION",
+ "panel": "1",
+ "Order": "a027_",
"InvokeScript": [
"
@@ -10485,6 +10532,11 @@ $sync.configs.tweaks = '{
]
},
"WPFTweaksDisableNotifications": {
+ "Content": "Disable Notification Tray/Calendar",
+ "Description": "Disables all Notifications INCLUDING Calendar",
+ "category": "z__Advanced Tweaks - CAUTION",
+ "panel": "1",
+ "Order": "a024_",
"registry": [
{
"Path": "HKCU:\\Software\\Policies\\Microsoft\\Windows\\Explorer",
@@ -10503,6 +10555,11 @@ $sync.configs.tweaks = '{
]
},
"WPFTweaksRightClickMenu": {
+ "Content": "Set Classic Right-Click Menu ",
+ "Description": "Great Windows 11 tweak to bring back good context menus when right clicking things in explorer.",
+ "category": "z__Advanced Tweaks - CAUTION",
+ "panel": "1",
+ "Order": "a028_",
"InvokeScript": [
"New-Item -Path \"HKCU:\\Software\\Classes\\CLSID\\{86ca1aa0-34aa-4e8b-a509-50c905bae2a2}\" -Name \"InprocServer32\" -force -value \"\" "
],
@@ -10514,6 +10571,11 @@ $sync.configs.tweaks = '{
]
},
"WPFTweaksDiskCleanup": {
+ "Content": "Run Disk Cleanup",
+ "Description": "Runs Disk Cleanup on Drive C: and removes old Windows Updates.",
+ "category": "Essential Tweaks",
+ "panel": "1",
+ "Order": "a007_",
"InvokeScript": [
"
cleanmgr.exe /d C: /VERYLOWDISK
@@ -10522,6 +10584,11 @@ $sync.configs.tweaks = '{
]
},
"WPFTweaksDisableUAC": {
+ "Content": "Disable UAC",
+ "Description": "Disables User Account Control. Only recommended for Expert Users.",
+ "category": "z__Advanced Tweaks - CAUTION",
+ "panel": "1",
+ "Order": "a023_",
"registry": [
{
"Path": "HKLM:\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Policies\\System",
@@ -10533,12 +10600,22 @@ $sync.configs.tweaks = '{
]
},
"WPFTweaksDeleteTempFiles": {
+ "Content": "Delete Temporary Files",
+ "Description": "Erases TEMP Folders",
+ "category": "Essential Tweaks",
+ "panel": "1",
+ "Order": "a006_",
"InvokeScript": [
"Get-ChildItem -Path \"C:\\Windows\\Temp\" *.* -Recurse | Remove-Item -Force -Recurse
Get-ChildItem -Path $env:TEMP *.* -Recurse | Remove-Item -Force -Recurse"
]
},
"WPFTweaksDVR": {
+ "Content": "Disable GameDVR",
+ "Description": "GameDVR is a Windows App that is a dependency for some Store Games. I''ve never met someone that likes it, but it''s there for the XBOX crowd.",
+ "category": "Essential Tweaks",
+ "panel": "1",
+ "Order": "a012_",
"registry": [
{
"Path": "HKCU:\\System\\GameConfigStore",
@@ -10585,6 +10662,12 @@ $sync.configs.tweaks = '{
]
},
"WPFTweaksTeredo": {
+ "Content": "Disable Teredo",
+ "Description": "Teredo network tunneling is a ipv6 feature that can cause additional latency.",
+ "category": "Essential Tweaks",
+ "panel": "1",
+ "Order": "a029_",
+ "Order": "a013_",
"registry": [
{
"Path": "HKLM:\\SYSTEM\\CurrentControlSet\\Services\\Tcpip6\\Parameters",
@@ -10601,18 +10684,11 @@ $sync.configs.tweaks = '{
"netsh interface teredo set state default"
]
},
- "WPFBingSearch": {
- "registry": [
- {
- "OriginalValue": "1",
- "Name": "BingSearchEnabled",
- "Path": "HKCU:\\Software\\Microsoft\\Windows\\CurrentVersion\\Search",
- "Type": "DWord",
- "Value": "0"
- }
- ]
- },
"WPFTweaksDisableipsix": {
+ "Content": "Disable IPv6",
+ "Description": "Disables IPv6.",
+ "category": "z__Advanced Tweaks - CAUTION",
+ "panel": "1",
"InvokeScript": [
"Disable-NetAdapterBinding -Name \"*\" -ComponentID ms_tcpip6"
],
@@ -10621,12 +10697,116 @@ $sync.configs.tweaks = '{
]
},
"WPFTweaksEnableipsix": {
+ "Content": "Enable IPv6",
+ "Description": "Enables IPv6.",
+ "category": "z__Advanced Tweaks - CAUTION",
+ "panel": "1",
+ "Order": "a030_",
"InvokeScript": [
"Enable-NetAdapterBinding -Name \"*\" -ComponentID ms_tcpip6"
],
"UndoScript": [
"Disable-NetAdapterBinding -Name \"*\" -ComponentID ms_tcpip6"
]
+ },
+ "WPFToggleDarkMode": {
+ "Content": "Dark Theme",
+ "Description": "Enable/Disable Dark Mode.",
+ "category": "Customize Preferences",
+ "panel": "2",
+ "Order": "a060_",
+ "Type": "Toggle"
+ },
+ "WPFToggleBingSearch": {
+ "Content": "Bing Search in Start Menu",
+ "Description": "If enable then includes web search results from Bing in your Start Menu search.",
+ "category": "Customize Preferences",
+ "panel": "2",
+ "Order": "a061_",
+ "Type": "Toggle"
+ },
+ "WPFToggleNumLock": {
+ "Content": "NumLock on Startup",
+ "Description": "Toggle the Num Lock key state when your computer starts.",
+ "category": "Customize Preferences",
+ "panel": "2",
+ "Order": "a062_",
+ "Type": "Toggle"
+ },
+ "WPFToggleVerboseLogon": {
+ "Content": "Verbose Logon Messages",
+ "Description": "Show detailed messages during the login process for troubleshooting and diagnostics.",
+ "category": "Customize Preferences",
+ "panel": "2",
+ "Order": "a063_",
+ "Type": "Toggle"
+ },
+ "WPFToggleShowExt": {
+ "Content": "Show File Extensions",
+ "Description": "If enabled then File extensions (e.g., .txt, .jpg) are visible.",
+ "category": "Customize Preferences",
+ "panel": "2",
+ "Order": "a064_",
+ "Type": "Toggle"
+ },
+ "WPFToggleSnapFlyout": {
+ "Content": "Snap Assist Flyout",
+ "Description": "If enabled then Snap preview is disabled when maximize button is hovered.",
+ "category": "Customize Preferences",
+ "panel": "2",
+ "Order": "a065_",
+ "Type": "Toggle"
+ },
+ "WPFToggleMouseAcceleration": {
+ "Content": "Mouse Acceleration",
+ "Description": "If Enabled then Cursor movement is affected by the speed of your physical mouse movements.",
+ "category": "Customize Preferences",
+ "panel": "2",
+ "Order": "a066_",
+ "Type": "Toggle"
+ },
+ "WPFchangedns": {
+ "Content": "DNS",
+ "category": "z__Advanced Tweaks - CAUTION",
+ "panel": "1",
+ "Order": "a040_",
+ "Type": "Combobox",
+ "ComboItems": "Default DHCP Google Cloudflare Cloudflare_Malware Cloudflare_Malware_Adult Level3 Open_DNS Quad9"
+ },
+ "WPFTweaksbutton": {
+ "Content": "Run Tweaks",
+ "category": "z__Advanced Tweaks - CAUTION",
+ "panel": "1",
+ "Order": "a041_",
+ "Type": "160"
+ },
+ "WPFUndoall": {
+ "Content": "Undo Selected Tweaks",
+ "category": "z__Advanced Tweaks - CAUTION",
+ "panel": "1",
+ "Order": "a042_",
+ "Type": "160"
+ },
+ "WPFAddUltPerf": {
+ "Content": "Add and Activate Ultimate Performance Profile",
+ "category": "Performance Plans",
+ "panel": "2",
+ "Order": "a080_",
+ "Type": "300"
+ },
+ "WPFRemoveUltPerf": {
+ "Content": "Remove Ultimate Performance Profile",
+ "category": "Performance Plans",
+ "panel": "2",
+ "Order": "a081_",
+ "Type": "300"
+ },
+ "WPFWinUtilShortcut": {
+ "Content": "Create WinUtil Shortcut",
+ "category": "Shortcuts",
+ "panel": "2",
+ "Order": "a082_",
+ "Type": "300"
}
}' | convertfrom-json
# SPDX-License-Identifier: MIT
@@ -10683,57 +10863,97 @@ $sync.runspace.Open()
$inputXML = $inputXML -replace 'mc:Ignorable="d"', '' -replace "x:N", 'N' -replace '^`n"
- $sortedApps = $organizedData[$panel][$category].Keys | Sort-Object
- foreach ($appName in $sortedApps) {
- $appInfo = $organizedData[$panel][$category][$appName]
- if ($null -eq $appInfo.Link)
- {
- $blockXml += "`n"
- }
- else
- {
- $blockXml += "`n"
+ $panelcount=0
+ # add ColumnDefinitions to evenly draw colums
+ $blockXml="`n"+("`n"*($organizedData.Keys.Count))+"`n"
+ # Iterate through organizedData by panel, category, and application
+ foreach ($panel in ($organizedData.Keys | Sort-Object)) {
+ $blockXml += "`n`n"
+ $panelcount++
+ foreach ($category in ($organizedData[$panel].Keys | Sort-Object)) {
+ $blockXml += "`n"
+ $sortedApps = $organizedData[$panel][$category].Keys | Sort-Object
+ foreach ($appName in $sortedApps) {
+ $appInfo = $organizedData[$panel][$category][$appName]
+ if ("Toggle" -eq $appInfo.Type) {
+ $blockXml += "`n`n"
+ $blockXml += "`n`n"
+ } elseif ("Combobox" -eq $appInfo.Type) {
+ $blockXml += "`n"
+ # If it is a digit, type is button and button length is digits
+ } elseif ($appInfo.Type -match "^[\d\.]+$") {
+ $blockXml += "`n"
+ # else it is a checkbox
+ } else {
+ $checkedStatus = If ($null -eq $appInfo.Checked) {""} Else {"IsChecked=`"$($appInfo.Checked)`" "}
+ if ($null -eq $appInfo.Link)
+ {
+ $blockXml += "`n"
+ }
+ else
+ {
+ $blockXml += "`n`n`n"
+ }
+ }
}
}
+ $blockXml +="`n`n`n"
}
-
- $inputXML = $inputXML -replace "{{InstallPanel$panel}}", $blockXml
- $blockXml = ""
+ return ($blockXml)
}
+$tabcolums=Get-TabXaml "applications"
+$inputXML = $inputXML -replace "{{InstallPanel_applications}}", ($tabcolums)
+$tabcolums=Get-TabXaml "tweaks"
+$inputXML = $inputXML -replace "{{InstallPanel_tweaks}}", ($tabcolums)
+$tabcolums=Get-TabXaml "feature"
+$inputXML = $inputXML -replace "{{InstallPanel_features}}", ($tabcolums)
+
if ((Get-WinUtilToggleStatus WPFToggleDarkMode) -eq $True) {
$ctttheme = 'Matrix'
}
diff --git a/xaml/inputXML.xaml b/xaml/inputXML.xaml
index 2e70a3d4..91e3338a 100644
--- a/xaml/inputXML.xaml
+++ b/xaml/inputXML.xaml
@@ -700,38 +700,7 @@
-
-
-
-
-
-
-
-
-
- {{InstallPanel0}}
-
-
-
-
- {{InstallPanel1}}
-
-
-
-
- {{InstallPanel2}}
-
-
-
-
- {{InstallPanel3}}
-
-
-
-
- {{InstallPanel4}}
-
-
+ {{InstallPanel_applications}}
@@ -740,15 +709,12 @@
-
-
-
-
+ {{InstallPanel_tweaks}}
@@ -766,151 +732,13 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+ {{InstallPanel_features}}