Compare commits

...

21 Commits

Author SHA1 Message Date
Chris Titus
e0237642c8 commit for removal of user scope progs and user scope winget (#3727) 2025-11-17 13:10:44 -06:00
Gabi
aedaa2f789 Update-WPFTweaksStorage (#3717)
* Update tweaks.json

* Syntax fix for WPFTweaksStorage

* Merge branch 'ChrisTitusTech:main' into Update-WPFTweaksStorage
2025-11-17 12:52:14 -06:00
Gabi
8c2f9075a0 Rename-WPFTweaksAH (#3715)
* Update tweaks.json

* Update preset.json

* Merge branch 'ChrisTitusTech:main' into Rename-WPFTweaksAH
2025-11-17 12:51:29 -06:00
Chris Titus Tech
c9e6861ad4 final fix for tweaks order 2025-11-17 06:50:06 -06:00
Chris Titus Tech
43ec73684e fix up ordering for tweaks 2025-11-17 06:46:54 -06:00
Gabi
bfbb643543 Update-WPFTweaksEndTaskOnTaskbar (#3714)
* Update tweaks.json

* Syntax fix on WPFTweaksEndTaskOnTaskbar

* Merge branch 'ChrisTitusTech:main' into Update-WPFTweaksEndTaskOnTaskbar
2025-11-17 12:11:39 -06:00
Gabi
067ec31086 Update-WPFTweaksBlockAdobeNet (#3708)
* Update tweaks.json

* Fix

* Final Fix

* Added comments to WPFTweaksBlockAdobeNet

* Syntax change for WPFTweaksBlockAdobeNet

* Removed double \ from WPFTweaksBlockAdobeNet

* Added back double \ for WPFTweaksBlockAdobeNet

* Syntax fix for WPFTweaksBlockAdobeNet

* Syntax fix for WPFTweaksBlockAdobeNet again

* Fix for WPFTweaksBlockAdobeNet

* Merge branch 'ChrisTitusTech:main' into Update-WPFTweaksBlockAdobeNet
2025-11-17 12:07:23 -06:00
Gabi
63221a7cb9 Remove-WPFFeatureSearchSuggestions (#3706)
* Update feature.json

* Merge branch 'ChrisTitusTech:main' into Remove-WPFFeatureSearchSuggestions
2025-11-17 12:04:31 -06:00
Gabi
7e40d379d8 Update-WPFTweaksDeleteTempFiles (#3705)
* Update tweaks.json

* Add -Path for better syntax

* Fix

* Merge branch 'ChrisTitusTech:main' into Update-WPFTweaksDeleteTempFiles
2025-11-17 12:00:21 -06:00
Myles Markevich
c766c974cf Fix typo in oscdimg.exe message box text (#3701) 2025-11-17 11:55:42 -06:00
Gabi
7d2804c706 Remove WPFTweaksHome (#3687)
* Remove WPFTweaksHome from tweaks.jsom

* Remove WPFTweaksHome from preset.json

* Merge branch 'ChrisTitusTech:main' into Remove-WPFTweaksHome

* Merge branch 'ChrisTitusTech:main' into Remove-WPFTweaksHome
2025-11-17 11:54:58 -06:00
Gabi
2ee9047dd6 Duplicates and Typos (#3660)
* Rename m to M

* Update tweaks.json

* Update tweaks.json

* Update tweaks.json

* Merge branch 'ChrisTitusTech:main' into Typo-Fix

* Merge branch 'ChrisTitusTech:main' into Typo-Fix

* Extra space

* From Tweaks to Toggle

* Merge branch 'ChrisTitusTech:main' into Typo-Fix
2025-11-17 11:48:07 -06:00
Ivan Lepekha
21c49d6a75 Fix explanation logic in 'WPFToggleSnapFlyout' (#3648) 2025-11-17 11:44:53 -06:00
Chris Titus Tech
351a77043e fix application errors from hyphens 2025-11-17 05:42:43 -06:00
Cube1ber
c8bb38f3a9 Added Proton Authenticator to applications.json (#3643)
* Added Proton Authenticator to applications.json

Proton Authenticator is a popular open source 2fa app from proton.

* Update name in applications.json

---------

Co-authored-by: CyberSphinx <202843220+CyberSphonx@users.noreply.github.com>
2025-11-17 11:33:49 -06:00
Ivan Lepekha
5fb5e43cc7 [Applications] Adding Ente Auth (#3635)
* Applications: Added Ente Auth

* Applications: Added Kando

* Revert "Applications: Added Kando"

This reverts commit 6a3e22f868.
2025-11-17 11:32:53 -06:00
Akhil Kumar Achanta
eeb410e985 fix(tweaks): Correct operator for checking tweak type in Invoke-WinUtilTweaks (#3625)
The Invoke-WinUtilTweaks function was using the '-contains' operator on a string variable to check for toggle-type tweaks. This operator is intended for collections (arrays), not for substring matching within a string, leading to incorrect logic flow.

This caused an issue where selecting one tweak (e.g., WPFTweaksRightClickMenu) could erroneously trigger the action of another (e.g., WPFTweaksDisableCrossDeviceResume).

This commit replaces the incorrect '-contains' operator with the '-like' operator and appropriate wildcards ('*Toggle*'). This ensures that tweak types are identified correctly, resolving the bug and preventing unintended system modifications.
2025-11-17 11:29:56 -06:00
Akhil Kumar Achanta
8eaf6ddd9c feat: Add Beeper to Messaging applications (#3617)
* feat: Add Beeper to Messaging applications

This commit adds the Beeper desktop application to the list of installable packages in the "Messaging" category.

The entry has been added to `config/applications.json` with the official download URL and the correct silent installation arguments.

Fixes #3608

* Fix job failure: ensure excluded directory exists before processing

This commit updates the Invoke-Preprocessing function to prevent workflow failures caused by missing excluded directories.
Previously, the script would attempt to recursively list files in excluded paths, resulting in an error if a directory did not exist.
The updated logic checks if the excluded path refers to a directory (ends with a backslash) and creates it if necessary before proceeding. This avoids "Cannot find path" errors and ensures smoother preprocessing, especially for jobs that depend on directory existence for exclusion logic.
No changes are made for excluded files or wildcard patterns.
2025-11-17 11:24:28 -06:00
Brian
3c54e0ea3f Fix Multiplane Overlay toggle (#3632) 2025-11-17 11:19:12 -06:00
Gabi
d17e8bcd98 Remove dns0.eu (#3682)
* Update dns.json

* Forgot one

* Forgot this
2025-11-17 11:18:31 -06:00
ChrisTitusTech
ef1fc2ae59 Deploying to main from @ ChrisTitusTech/winutil@7d1fb52277 🚀 2025-11-17 15:35:22 +00:00
10 changed files with 91 additions and 271 deletions

View File

@@ -79,7 +79,7 @@ You'll see a new file named `winutil.ps1`, which's created by `Compile.ps1` scri
These are the sponsors that help keep this project alive with monthly contributions.
<!-- sponsors --><a href="https://github.com/TriHydera"><img src="https:&#x2F;&#x2F;github.com&#x2F;TriHydera.png" width="60px" alt="User avatar: TriHydera" /></a><a href="https://github.com/markamos"><img src="https:&#x2F;&#x2F;github.com&#x2F;markamos.png" width="60px" alt="User avatar: Mark Amos" /></a><a href="https://github.com/dwelfusius"><img src="https:&#x2F;&#x2F;github.com&#x2F;dwelfusius.png" width="60px" alt="User avatar: " /></a><a href="https://github.com/mews-se"><img src="https:&#x2F;&#x2F;github.com&#x2F;mews-se.png" width="60px" alt="User avatar: Martin Stockzell" /></a><a href="https://github.com/jdiegmueller"><img src="https:&#x2F;&#x2F;github.com&#x2F;jdiegmueller.png" width="60px" alt="User avatar: Jason A. Diegmueller" /></a><a href="https://github.com/robertsandrock"><img src="https:&#x2F;&#x2F;github.com&#x2F;robertsandrock.png" width="60px" alt="User avatar: RMS" /></a><a href="https://github.com/KenichiQaz"><img src="https:&#x2F;&#x2F;github.com&#x2F;KenichiQaz.png" width="60px" alt="User avatar: Stefan" /></a><a href="https://github.com/paulsheets"><img src="https:&#x2F;&#x2F;github.com&#x2F;paulsheets.png" width="60px" alt="User avatar: Paul" /></a><a href="https://github.com/djones369"><img src="https:&#x2F;&#x2F;github.com&#x2F;djones369.png" width="60px" alt="User avatar: Dave J (WhamGeek)" /></a><a href="https://github.com/anthonymendez"><img src="https:&#x2F;&#x2F;github.com&#x2F;anthonymendez.png" width="60px" alt="User avatar: Anthony Mendez" /></a><a href="https://github.com/FatBastard0"><img src="https:&#x2F;&#x2F;github.com&#x2F;FatBastard0.png" width="60px" alt="User avatar: " /></a><a href="https://github.com/DursleyGuy"><img src="https:&#x2F;&#x2F;github.com&#x2F;DursleyGuy.png" width="60px" alt="User avatar: DursleyGuy" /></a><a href="https://github.com/realmuddy"><img src="https:&#x2F;&#x2F;github.com&#x2F;realmuddy.png" width="60px" alt="User avatar: Phillip Waters" /></a><a href="https://github.com/quaszi"><img src="https:&#x2F;&#x2F;github.com&#x2F;quaszi.png" width="60px" alt="User avatar: " /></a><a href="https://github.com/DwayneTheRockLobster1"><img src="https:&#x2F;&#x2F;github.com&#x2F;DwayneTheRockLobster1.png" width="60px" alt="User avatar: " /></a><a href="https://github.com/KieraKujisawa"><img src="https:&#x2F;&#x2F;github.com&#x2F;KieraKujisawa.png" width="60px" alt="User avatar: Kiera Meredith" /></a><a href="https://github.com/novello-dev"><img src="https:&#x2F;&#x2F;github.com&#x2F;novello-dev.png" width="60px" alt="User avatar: João Pedro Novello" /></a><!-- sponsors -->
<!-- sponsors --><a href="https://github.com/markamos"><img src="https:&#x2F;&#x2F;github.com&#x2F;markamos.png" width="60px" alt="User avatar: Mark Amos" /></a><a href="https://github.com/dwelfusius"><img src="https:&#x2F;&#x2F;github.com&#x2F;dwelfusius.png" width="60px" alt="User avatar: " /></a><a href="https://github.com/mews-se"><img src="https:&#x2F;&#x2F;github.com&#x2F;mews-se.png" width="60px" alt="User avatar: Martin Stockzell" /></a><a href="https://github.com/jdiegmueller"><img src="https:&#x2F;&#x2F;github.com&#x2F;jdiegmueller.png" width="60px" alt="User avatar: Jason A. Diegmueller" /></a><a href="https://github.com/robertsandrock"><img src="https:&#x2F;&#x2F;github.com&#x2F;robertsandrock.png" width="60px" alt="User avatar: RMS" /></a><a href="https://github.com/KenichiQaz"><img src="https:&#x2F;&#x2F;github.com&#x2F;KenichiQaz.png" width="60px" alt="User avatar: Stefan" /></a><a href="https://github.com/paulsheets"><img src="https:&#x2F;&#x2F;github.com&#x2F;paulsheets.png" width="60px" alt="User avatar: Paul" /></a><a href="https://github.com/djones369"><img src="https:&#x2F;&#x2F;github.com&#x2F;djones369.png" width="60px" alt="User avatar: Dave J (WhamGeek)" /></a><a href="https://github.com/anthonymendez"><img src="https:&#x2F;&#x2F;github.com&#x2F;anthonymendez.png" width="60px" alt="User avatar: Anthony Mendez" /></a><a href="https://github.com/FatBastard0"><img src="https:&#x2F;&#x2F;github.com&#x2F;FatBastard0.png" width="60px" alt="User avatar: " /></a><a href="https://github.com/DursleyGuy"><img src="https:&#x2F;&#x2F;github.com&#x2F;DursleyGuy.png" width="60px" alt="User avatar: DursleyGuy" /></a><a href="https://github.com/realmuddy"><img src="https:&#x2F;&#x2F;github.com&#x2F;realmuddy.png" width="60px" alt="User avatar: Phillip Waters" /></a><a href="https://github.com/quaszi"><img src="https:&#x2F;&#x2F;github.com&#x2F;quaszi.png" width="60px" alt="User avatar: " /></a><a href="https://github.com/DwayneTheRockLobster1"><img src="https:&#x2F;&#x2F;github.com&#x2F;DwayneTheRockLobster1.png" width="60px" alt="User avatar: " /></a><a href="https://github.com/KieraKujisawa"><img src="https:&#x2F;&#x2F;github.com&#x2F;KieraKujisawa.png" width="60px" alt="User avatar: Kiera Meredith" /></a><a href="https://github.com/novello-dev"><img src="https:&#x2F;&#x2F;github.com&#x2F;novello-dev.png" width="60px" alt="User avatar: João Pedro Novello" /></a><!-- sponsors -->
## 🏅 Thanks to all Contributors
Thanks a lot for spending your time helping Winutil grow. Thanks a lot! Keep rocking 🍻.

View File

@@ -143,6 +143,15 @@
"link": "https://github.com/sharkdp/bat",
"winget": "sharkdp.bat"
},
"beeper": {
"category": "Communications",
"choco": "na",
"content": "Beeper",
"description": "All your chats in one app",
"link": "https://www.beeper.com/",
"winget": "Beeper.Beeper"
},
"bitwarden": {
"category": "Utilities",
"choco": "bitwarden",
@@ -511,6 +520,14 @@
"link": "https://emulationstation.org/",
"winget": "Emulationstation.Emulationstation"
},
"enteauth": {
"category": "Utilities",
"choco": "ente-auth",
"content": "Ente Auth",
"description": "Ente Auth is a free, cross-platform, end-to-end encrypted authenticator app.",
"link": "https://ente.io/auth/",
"winget": "ente-io.auth-desktop"
},
"epicgames": {
"category": "Games",
"choco": "epicgameslauncher",
@@ -1703,13 +1720,13 @@
"link": "https://bitsum.com/",
"winget": "BitSum.ProcessLasso"
},
"spotify": {
"category": "Multimedia Tools",
"choco": "spotify",
"content": "Spotify",
"description": "Spotify is a digital music service that gives you access to millions of songs, podcasts, and videos from artists all over the world.",
"link": "https://www.spotify.com/",
"winget": "Spotify.Spotify"
"protonauth": {
"category": "Utilities",
"choco": "protonauth",
"content": "Proton Authenticator",
"description": "2FA app from Proton to securely sync and backup 2FA codes.",
"link": "https://proton.me/authenticator",
"winget": "Proton.ProtonAuthenticator"
},
"processmonitor": {
"category": "Microsoft Tools",

View File

@@ -46,23 +46,5 @@
"Secondary": "94.140.15.16",
"Primary6": "2a10:50c0::bad1:ff",
"Secondary6": "2a10:50c0::bad2:ff"
},
"dns0.eu_Open":{
"Primary": "193.110.81.254",
"Secondary": "185.253.5.254",
"Primary6": "2a0f:fc80::ffff",
"Secondary6": "2a0f:fc81::ffff"
},
"dns0.eu_ZERO":{
"Primary": "193.110.81.9",
"Secondary": "185.253.5.9",
"Primary6": "2a0f:fc80::9",
"Secondary6": "2a0f:fc81::9"
},
"dns0.eu_KIDS":{
"Primary": "193.110.81.1",
"Secondary": "185.253.5.1",
"Primary6": "2a0f:fc80::1",
"Secondary6": "2a0f:fc81::1"
}
}

View File

@@ -81,42 +81,6 @@
],
"link": "https://winutil.christitus.com/dev/features/features/nfs"
},
"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": [
"
If (!(Test-Path 'HKCU:\\SOFTWARE\\Policies\\Microsoft\\Windows\\Explorer')) {
New-Item -Path 'HKCU:\\SOFTWARE\\Policies\\Microsoft\\Windows\\Explorer' -Force | Out-Null
}
New-ItemProperty -Path 'HKCU:\\SOFTWARE\\Policies\\Microsoft\\Windows\\Explorer' -Name 'DisableSearchBoxSuggestions' -Type DWord -Value 0 -Force
Stop-Process -name explorer -force
"
],
"link": "https://winutil.christitus.com/dev/features/features/enablesearchsuggestions"
},
"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": [
"
If (!(Test-Path 'HKCU:\\SOFTWARE\\Policies\\Microsoft\\Windows\\Explorer')) {
New-Item -Path 'HKCU:\\SOFTWARE\\Policies\\Microsoft\\Windows\\Explorer' -Force | Out-Null
}
New-ItemProperty -Path 'HKCU:\\SOFTWARE\\Policies\\Microsoft\\Windows\\Explorer' -Name 'DisableSearchBoxSuggestions' -Type DWord -Value 1 -Force
Stop-Process -name explorer -force
"
],
"link": "https://winutil.christitus.com/dev/features/features/disablesearchsuggestions"
},
"WPFFeatureRegBackup": {
"Content": "Enable Daily Registry Backup Task 12.30am",
"Description": "Enables daily registry backup, previously disabled by Microsoft in Windows 10 1803.",
@@ -306,7 +270,6 @@
"ButtonWidth": "300",
"link": "https://winutil.christitus.com/dev/features/legacy-windows-panels/user"
},
"WPFPanelSystem": {
"Content": "System Properties",
"category": "Legacy Windows Panels",

View File

@@ -1,10 +1,9 @@
{
"Standard": [
"WPFTweaksAH",
"WPFTweaksActivity",
"WPFTweaksConsumerFeatures",
"WPFTweaksDisableExplorerAutoDiscovery",
"WPFTweaksDVR",
"WPFTweaksHome",
"WPFTweaksLoc",
"WPFTweaksServices",
"WPFTweaksStorage",
@@ -19,7 +18,6 @@
"Minimal": [
"WPFTweaksConsumerFeatures",
"WPFTweaksDisableExplorerAutoDiscovery",
"WPFTweaksHome",
"WPFTweaksServices",
"WPFTweaksTele"
]

View File

@@ -1,5 +1,5 @@
{
"WPFTweaksAH": {
"WPFTweaksActivity": {
"Content": "Disable Activity History",
"Description": "This erases recent docs, clipboard, and run history.",
"category": "Essential Tweaks",
@@ -63,9 +63,9 @@
"WPFTweaksLaptopHibernation": {
"Content": "Set Hibernation as default (good for laptops)",
"Description": "Most modern laptops have connected standby enabled which drains the battery, this sets hibernation as default which will not drain the battery. See issue https://github.com/ChrisTitusTech/winutil/issues/1399",
"category": "Essential Tweaks",
"category": "z__Advanced Tweaks - CAUTION",
"panel": "1",
"Order": "a014_",
"Order": "a027_",
"registry": [
{
"Path": "HKLM:\\SYSTEM\\CurrentControlSet\\Control\\Power\\PowerSettings\\238C9FA8-0AAD-41ED-83F4-97BE242C8F20\\7bc4a2f9-d8fc-4469-b07b-33eb785aaca0",
@@ -108,26 +108,6 @@
],
"link": "https://winutil.christitus.com/dev/tweaks/essential-tweaks/laptophibernation"
},
"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": "a005_",
"service": [
{
"Name": "HomeGroupListener",
"StartupType": "Manual",
"OriginalType": "Automatic"
},
{
"Name": "HomeGroupProvider",
"StartupType": "Manual",
"OriginalType": "Automatic"
}
],
"link": "https://winutil.christitus.com/dev/tweaks/essential-tweaks/home"
},
"WPFTweaksLoc": {
"Content": "Disable Location Tracking",
"Description": "Disables Location Tracking...DUH!",
@@ -1552,11 +1532,11 @@
"link": "https://winutil.christitus.com/dev/tweaks/essential-tweaks/services"
},
"WPFTweaksBraveDebloat": {
"Content": "Debloat Brave",
"Content": "Brave Debloat",
"Description": "Disables various annoyances like Brave Rewards,Leo AI,Crypto Wallet and VPN",
"category": "Essential Tweaks",
"category": "z__Advanced Tweaks - CAUTION",
"panel": "1",
"Order": "a016_",
"Order": "a022_",
"registry": [
{
"Path":"HKLM:\\SOFTWARE\\Policies\\BraveSoftware\\Brave",
@@ -1589,11 +1569,11 @@
]
},
"WPFTweaksEdgeDebloat": {
"Content": "Debloat Edge",
"Content": "Edge Debloat",
"Description": "Disables various telemetry options, popups, and other annoyances in Edge.",
"category": "Essential Tweaks",
"category": "z__Advanced Tweaks - CAUTION",
"panel": "1",
"Order": "a016_",
"Order": "a022_",
"registry": [
{
"Path": "HKLM:\\SOFTWARE\\Policies\\Microsoft\\EdgeUpdate",
@@ -2323,9 +2303,8 @@
"Microsoft.MinecraftUWP",
"Microsoft.GamingServices",
"Microsoft.GetHelp",
"Microsoft.Getstarted",
"Microsoft.GetStarted",
"Microsoft.Messaging",
"Microsoft.Microsoft3DViewer",
"Microsoft.MicrosoftSolitaireCollection",
"Microsoft.NetworkSpeedTest",
"Microsoft.News",
@@ -2339,7 +2318,7 @@
"Microsoft.Wallet",
"Microsoft.Whiteboard",
"Microsoft.WindowsAlarms",
"microsoft.windowscommunicationsapps",
"Microsoft.WindowsCommunicationsApps",
"Microsoft.WindowsFeedbackHub",
"Microsoft.WindowsMaps",
"Microsoft.WindowsSoundRecorder",
@@ -2348,7 +2327,6 @@
"Microsoft.MixedReality.Portal",
"Microsoft.ZuneMusic",
"Microsoft.ZuneVideo",
"Microsoft.Getstarted",
"Microsoft.MicrosoftOfficeHub",
"*EclipseManager*",
"*ActiproSoftwareLLC*",
@@ -2369,7 +2347,7 @@
"*ACGMediaPlayer*",
"*Netflix*",
"*OneCalendar*",
"*LinkedInforWindows*",
"*LinkedInForWindows*",
"*HiddenCityMysteryofShadows*",
"*Hulu*",
"*HiddenCity*",
@@ -2472,40 +2450,23 @@
"category": "Essential Tweaks",
"panel": "1",
"Order": "a006_",
"InvokeScript": [
"$path = \"HKCU:\\Software\\Microsoft\\Windows\\CurrentVersion\\Explorer\\Advanced\\TaskbarDeveloperSettings\"
$name = \"TaskbarEndTask\"
$value = 1
# Ensure the registry key exists
if (-not (Test-Path $path)) {
New-Item -Path $path -Force | Out-Null
"registry": [
{
"Path": "HKCU:\\Software\\Microsoft\\Windows\\CurrentVersion\\Explorer\\Advanced\\TaskbarDeveloperSettings",
"Name": "TaskbarEndTask",
"Type": "DWord",
"Value": "1",
"OriginalValue": "<RemoveEntry>"
}
# Set the property, creating it if it doesn't exist
New-ItemProperty -Path $path -Name $name -PropertyType DWord -Value $value -Force | Out-Null"
],
"UndoScript": [
"$path = \"HKCU:\\Software\\Microsoft\\Windows\\CurrentVersion\\Explorer\\Advanced\\TaskbarDeveloperSettings\"
$name = \"TaskbarEndTask\"
$value = 0
# Ensure the registry key exists
if (-not (Test-Path $path)) {
New-Item -Path $path -Force | Out-Null
}
# Set the property, creating it if it doesn't exist
New-ItemProperty -Path $path -Name $name -PropertyType DWord -Value $value -Force | Out-Null"
],
"link": "https://winutil.christitus.com/dev/tweaks/essential-tweaks/endtaskontaskbar"
},
"WPFTweaksPowershell7": {
"Content": "Change Windows Terminal default: PowerShell 5 -> PowerShell 7",
"Description": "This will edit the config file of the Windows Terminal replacing PowerShell 5 with PowerShell 7 and installing PS7 if necessary",
"category": "Essential Tweaks",
"category": "z__Advanced Tweaks - CAUTION",
"panel": "1",
"Order": "a009_",
"Order": "a022_",
"InvokeScript": [
"Invoke-WPFTweakPS7 -action \"PS7\""
],
@@ -2534,11 +2495,14 @@
"category": "Essential Tweaks",
"panel": "1",
"Order": "a005_",
"InvokeScript": [
"Set-ItemProperty -Path \"HKCU:\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\StorageSense\\Parameters\\StoragePolicy\" -Name \"01\" -Value 0 -Type Dword -Force"
],
"UndoScript": [
"Set-ItemProperty -Path \"HKCU:\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\StorageSense\\Parameters\\StoragePolicy\" -Name \"01\" -Value 1 -Type Dword -Force"
"registry": [
{
"Path": "HKCU:\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\StorageSense\\Parameters\\StoragePolicy",
"Name": "01",
"Type": "DWord",
"Value": "0",
"OriginalValue": "1"
}
],
"link": "https://winutil.christitus.com/dev/tweaks/essential-tweaks/storage"
},
@@ -2626,9 +2590,9 @@
"WPFTweaksRecallOff": {
"Content": "Disable Recall",
"Description": "Turn Recall off",
"category": "Essential Tweaks",
"category": "z__Advanced Tweaks - CAUTION",
"panel": "1",
"Order": "a011_",
"Order": "a025_",
"registry": [
{
"Path": "HKLM:\\SOFTWARE\\Policies\\Microsoft\\Windows\\WindowsAI",
@@ -2854,7 +2818,7 @@
"Description": "Blocks ALL Razer Software installations. The hardware works fine without any software. WARNING: this will also block all Windows third-party driver installations.",
"category": "z__Advanced Tweaks - CAUTION",
"panel": "1",
"Order": "a032_",
"Order": "a021_",
"registry": [
{
"Path": "HKLM:\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\DriverSearching",
@@ -3072,102 +3036,26 @@
"Order": "a021_",
"InvokeScript": [
"
# Define the URL of the remote HOSTS file and the local paths
$remoteHostsUrl = \"https://raw.githubusercontent.com/Ruddernation-Designs/Adobe-URL-Block-List/master/hosts\"
$localHostsPath = \"C:\\Windows\\System32\\drivers\\etc\\hosts\"
$tempHostsPath = \"C:\\Windows\\System32\\drivers\\etc\\temp_hosts\"
$hostsUrl = \"https://github.com/Ruddernation-Designs/Adobe-URL-Block-List/raw/refs/heads/master/hosts\"
$hosts = \"$env:SystemRoot\\System32\\drivers\\etc\\hosts\"
# Download the remote HOSTS file to a temporary location
try {
Invoke-WebRequest -Uri $remoteHostsUrl -OutFile $tempHostsPath
Write-Output \"Downloaded the remote HOSTS file to a temporary location.\"
} catch {
Write-Error \"Failed to download the HOSTS file. Error: $_\"
}
Copy-Item $hosts \"$hosts.bak\"
Invoke-WebRequest $hostsUrl -OutFile $hosts
ipconfig flushdns
# Check if the AdobeNetBlock has already been started
try {
$localHostsContent = Get-Content $localHostsPath -ErrorAction Stop
# Check if AdobeNetBlock markers exist
$blockStartExists = $localHostsContent -like \"*#AdobeNetBlock-start*\"
if ($blockStartExists) {
Write-Output \"AdobeNetBlock-start already exists. Skipping addition of new block.\"
} else {
# Load the new block from the downloaded file
$newBlockContent = Get-Content $tempHostsPath -ErrorAction Stop
$newBlockContent = $newBlockContent | Where-Object { $_ -notmatch \"^\\s*#\" -and $_ -ne \"\" } # Exclude empty lines and comments
$newBlockHeader = \"#AdobeNetBlock-start\"
$newBlockFooter = \"#AdobeNetBlock-end\"
# Combine the contents, ensuring new block is properly formatted
$combinedContent = $localHostsContent + $newBlockHeader, $newBlockContent, $newBlockFooter | Out-String
# Write the combined content back to the original HOSTS file
$combinedContent | Set-Content $localHostsPath -Encoding ASCII
Write-Output \"Successfully added the AdobeNetBlock.\"
}
} catch {
Write-Error \"Error during processing: $_\"
}
# Clean up temporary file
Remove-Item $tempHostsPath -ErrorAction Ignore
# Flush the DNS resolver cache
try {
Invoke-Expression \"ipconfig /flushdns\"
Write-Output \"DNS cache flushed successfully.\"
} catch {
Write-Error \"Failed to flush DNS cache. Error: $_\"
}
Write-Host \"Added Adobe url block list from host file\"
"
],
"UndoScript": [
"
# Define the local path of the HOSTS file
$localHostsPath = \"C:\\Windows\\System32\\drivers\\etc\\hosts\"
$hosts = \"$env:SystemRoot\\System32\\drivers\\etc\\hosts\"
$backup = \"$hosts.bak\"
# Load the content of the HOSTS file
try {
$hostsContent = Get-Content $localHostsPath -ErrorAction Stop
} catch {
Write-Error \"Failed to load the HOSTS file. Error: $_\"
return
}
Copy-Item $backup $hosts
Remove-Item $backup
ipconfig flushdns
# Initialize flags and buffer for new content
$recording = $true
$newContent = @()
# Iterate over each line of the HOSTS file
foreach ($line in $hostsContent) {
if ($line -match \"#AdobeNetBlock-start\") {
$recording = $false
}
if ($recording) {
$newContent += $line
}
if ($line -match \"#AdobeNetBlock-end\") {
$recording = $true
}
}
# Write the filtered content back to the HOSTS file
try {
$newContent | Set-Content $localHostsPath -Encoding ASCII
Write-Output \"Successfully removed the AdobeNetBlock section from the HOSTS file.\"
} catch {
Write-Error \"Failed to write back to the HOSTS file. Error: $_\"
}
# Flush the DNS resolver cache
try {
Invoke-Expression \"ipconfig /flushdns\"
Write-Output \"DNS cache flushed successfully.\"
} catch {
Write-Error \"Failed to flush DNS cache. Error: $_\"
}
Write-Host \"Removed Adobe url block list from host file\"
"
],
"link": "https://winutil.christitus.com/dev/tweaks/z--advanced-tweaks---caution/blockadobenet"
@@ -3216,8 +3104,10 @@
"panel": "1",
"Order": "a002_",
"InvokeScript": [
"Get-ChildItem -Path \"C:\\Windows\\Temp\" *.* -Recurse | Remove-Item -Force -Recurse
Get-ChildItem -Path $env:TEMP *.* -Recurse | Remove-Item -Force -Recurse"
"
Remove-Item -Path \"$Env:Temp\\*\" -Recurse -Force
Remove-Item -Path \"$Env:SystemRoot\\Temp\\*\" -Recurse -Force
"
],
"link": "https://winutil.christitus.com/dev/tweaks/essential-tweaks/deletetempfiles"
},
@@ -3271,7 +3161,7 @@
"Description": "To set the IPv4 preference can have latency and security benefits on private networks where IPv6 is not configured.",
"category": "z__Advanced Tweaks - CAUTION",
"panel": "1",
"Order": "a023_",
"Order": "a024_",
"registry": [
{
"Path": "HKLM:\\SYSTEM\\CurrentControlSet\\Services\\Tcpip6\\Parameters",
@@ -3288,7 +3178,7 @@
"Description": "Teredo network tunneling is a ipv6 feature that can cause additional latency, but may cause problems with some games",
"category": "z__Advanced Tweaks - CAUTION",
"panel": "1",
"Order": "a023_",
"Order": "a024_",
"registry": [
{
"Path": "HKLM:\\SYSTEM\\CurrentControlSet\\Services\\Tcpip6\\Parameters",
@@ -3311,7 +3201,7 @@
"Description": "Disables IPv6.",
"category": "z__Advanced Tweaks - CAUTION",
"panel": "1",
"Order": "a023_",
"Order": "a024_",
"registry": [
{
"Path": "HKLM:\\SYSTEM\\CurrentControlSet\\Services\\Tcpip6\\Parameters",
@@ -3545,7 +3435,7 @@
},
"WPFToggleSnapFlyout": {
"Content": "Snap Assist Flyout",
"Description": "If enabled then Snap preview is disabled when maximize button is hovered.",
"Description": "If disabled then Snap preview is disabled when maximize button is hovered.",
"category": "Customize Preferences",
"panel": "2",
"Order": "a107_",
@@ -3700,7 +3590,7 @@
},
"WPFToggleMultiplaneOverlay": {
"Content": "Multiplane Overlay",
"Content": "Disable Multiplane Overlay",
"Description": "Disable the Multiplane Overlay which can sometimes cause issues with Graphics Cards.",
"category": "Customize Preferences",
"panel": "2",
@@ -3712,7 +3602,7 @@
"Name": "OverlayTestMode",
"Value": "5",
"OriginalValue": "<RemoveEntry>",
"DefaultState": "true",
"DefaultState": "false",
"Type": "DWord"
}
],
@@ -3911,7 +3801,7 @@
"panel": "1",
"Order": "a040_",
"Type": "Combobox",
"ComboItems": "Default DHCP Google Cloudflare Cloudflare_Malware Cloudflare_Malware_Adult Open_DNS Quad9 AdGuard_Ads_Trackers AdGuard_Ads_Trackers_Malware_Adult dns0.eu_Open dns0.eu_ZERO dns0.eu_KIDS",
"ComboItems": "Default DHCP Google Cloudflare Cloudflare_Malware Cloudflare_Malware_Adult Open_DNS Quad9 AdGuard_Ads_Trackers AdGuard_Ads_Trackers_Malware_Adult",
"link": "https://winutil.christitus.com/dev/tweaks/z--advanced-tweaks---caution/changedns"
},
"WPFAddUltPerf": {
@@ -3987,7 +3877,7 @@
"
]
},
"WPFTweaksDisableCrossDeviceResume": {
"WPFToggleDisableCrossDeviceResume": {
"Content": "Cross-Device Resume",
"Description": "This tweak controls the Resume function in Windows 11 24H2 and later, which allows you to resume an activity from a mobile device and vice-versa.",
"category": "Customize Preferences",

View File

@@ -132,7 +132,7 @@ function Invoke-MicrowinGetIso {
if (!$downloadFromGitHub) {
# only show the message to people who did check the box to download from github, if you check the box
# you consent to downloading it, no need to show extra dialogs
[System.Windows.MessageBox]::Show("oscdimge.exe is not found on the system, winutil will now attempt do download and install it using choco. This might take a long time.")
[System.Windows.MessageBox]::Show("oscdimg.exe is not found on the system, winutil will now attempt do download and install it using choco. This might take a long time.")
# the step below needs choco to download oscdimg
# Install Choco if not already present
Install-WinUtilChoco
@@ -149,7 +149,7 @@ function Invoke-MicrowinGetIso {
[System.Windows.MessageBox]::Show($msg)
return
} else {
[System.Windows.MessageBox]::Show("oscdimge.exe is not found on the system, winutil will now attempt do download and install it from github. This might take a long time.")
[System.Windows.MessageBox]::Show("oscdimg.exe is not found on the system, winutil will now attempt do download and install it from github. This might take a long time.")
Invoke-MicrowinBusyInfo -action "wip" -message "Downloading oscdimg.exe..." -interactive $false
Microwin-GetOscdimg -oscdimgPath $oscdimgPath
$oscdImgFound = Test-Path $oscdimgPath -PathType Leaf

View File

@@ -30,24 +30,16 @@ Function Install-WinUtilProgramWinget {
.PARAMETER wingetId
The Id of the Program that Winget should Install/Uninstall
.PARAMETER scope
Determines the installation mode. Can be "user" or "machine" (For more info look at the winget documentation)
.PARAMETER credential
The PSCredential Object of the user that should be used to run winget
.NOTES
Invoke Winget uses the public variable $Action defined outside the function to determine if a Program should be installed or removed
#>
param (
[string]$wingetId,
[string]$scope = "",
[PScredential]$credential = $null
[string]$wingetId
)
$commonArguments = "--id $wingetId --silent"
$arguments = if ($Action -eq "Install") {
"install $commonArguments --accept-source-agreements --accept-package-agreements $(if ($scope) {" --scope $scope"})"
"install $commonArguments --accept-source-agreements --accept-package-agreements"
} else {
"uninstall $commonArguments"
}
@@ -60,10 +52,6 @@ Function Install-WinUtilProgramWinget {
NoNewWindow = $true
}
if ($credential) {
$processParams.credential = $credential
}
return (Start-Process @processParams).ExitCode
}
@@ -87,28 +75,6 @@ Function Install-WinUtilProgramWinget {
return $true
}
Write-Host "Attempt installation of $($Program) with User scope"
$status = Invoke-Winget -wingetId $Program -scope "user"
if ($status -eq 0) {
Write-Host "$($Program) installed successfully with User scope."
return $true
} elseif ($status -eq -1978335189) {
Write-Host "$($Program) No applicable update found"
return $true
}
$userAcknowledgment = [System.Windows.MessageBox]::Show("You need to input your password to install $($Program) with specific user credentials.", "User credential Prompt", [System.Windows.MessageBoxButton]::Ok)
if ($userAcknowledgment -eq 'Ok') {
$getcreds = Get-Credential $env:USERNAME
$status = Invoke-Winget -wingetId $Program -credential $getcreds
if ($status -eq 0) {
Write-Host "$($Program) installed successfully with User prompt."
return $true
}
} else {
Write-Host "Skipping installation with specific user credentials."
}
Write-Host "Failed to install $($Program)."
return $false
}

View File

@@ -21,7 +21,7 @@ function Invoke-WinUtilTweaks {
$KeepServiceStartup = $true
)
if ($Checkbox -contains "Toggle") {
if ($Checkbox -like "*Toggle*") {
$CheckBox = $sync.configs.tweaks.$CheckBox
}

View File

@@ -63,6 +63,10 @@ function Invoke-Preprocessing {
if ($ExcludedFiles.Count -gt 0) {
ForEach ($excludedFile in $ExcludedFiles) {
$filePath = "$(($WorkingDir -replace ('\\$', '')) + '\' + ($excludedFile -replace ('\.\\', '')))"
# Only attempt to create the directory if the excludedFile ends with '\'
if ($excludedFile -match '\\$' -and -not (Test-Path "$filePath")) {
New-Item -Path "$filePath" -ItemType Directory -Force | Out-Null
}
$files = Get-ChildItem -Recurse -Path "$filePath" -File -Force
if ($files.Count -gt 0) {
ForEach ($file in $files) {