Compare commits

..

64 Commits

Author SHA1 Message Date
Gabi
c71fad54dc Change formating in WPFTweaksRemoveCopilot (#3808) 2025-12-15 10:17:47 -06:00
Gabi
4eb76a9099 Cleanup-WPFTweaksServices (#3806)
* Remove unneccary services from WPFTweaksServices

* Update tweaks.json
2025-12-15 10:16:59 -06:00
Gabi
95d8660b3a Update WPFToggleStartMenuRecommendations (#3805) 2025-12-15 10:16:19 -06:00
ChrisTitusTech
4bd25e62e1 Deploying to main from @ ChrisTitusTech/winutil@da6b105573 🚀 2025-12-15 15:37:23 +00:00
Gabi
da6b105573 Remove Services from WPFTweaksServices (#3732) 2025-12-12 09:00:51 -06:00
Gabi
64022cc08d Remove unneccary ScheduledTasks from WPFTweaksTele (#3764) 2025-12-12 09:00:02 -06:00
Gabi
401f7f384a Remove-WPFTweaksWifi (#3765)
* Remove WPFTweaksWifi From Standart preset

* Remove WPFTweaksWifi
2025-12-12 08:59:29 -06:00
Gabi
e2efb3a483 Update WPFTweaksRemoveCopilot (#3768) 2025-12-12 08:58:59 -06:00
Gabi
4dc0fd6a6e Delete-WPFTweaksRecallOff (#3769)
Co-authored-by: Chris Titus <dfm.titus@gmail.com>
2025-12-12 08:58:01 -06:00
Gabi
f671ad4518 Update-WPFTweaksRazerBlock (#3770)
* Update WPFTweaksRazerBlock's InvokeScript

* Format fix for WPFTweaksRazerBlock

* Update WPFTweaksRazerBlock

* Update WPFTweaksRazerBlock

* Update WPFTweaksRazerBlock

* Better format for WPFTweaksRazerBlock's InvokeScript

* Better format for WPFTweaksRazerBlock's InvokeScript

* Fomat fix on WPFTweaksRazerBlock
2025-12-12 08:55:27 -06:00
Gabi
c2cb00fc68 Remove-WPFTweaksDebloatAdobe (#3771)
* Remove WPFTweaksDebloatAdobe

* Delete functions/public/Invoke-WPFRunAdobeCCCleanerTool.ps1

* Update feature.json

* Update feature.json

* Create Invoke-WPFRunAdobeCCCleanerTool.ps1
2025-12-12 08:48:43 -06:00
Gabi
7503444e2b Rename-WPFTweaksLoc (#3773)
* Rename WPFTweaksLoc

* Rename WPFTweaksLoc
2025-12-12 08:47:35 -06:00
Gabi
80ab6ba005 Description update for WPFTweaksConsumerFeatures (#3774) 2025-12-12 08:47:15 -06:00
Gabi
2e0073af75 Update-WPFTweaksTele (#3775)
* Update WPFTweaksTele's InvokeScript

* Update WPFTweaksTele's InvokeScript
2025-12-12 08:46:54 -06:00
Gabi
3cb0a4b664 Deleted WPFTweaksDisableLMS1 (#3776)
Co-authored-by: Chris Titus <dfm.titus@gmail.com>
2025-12-11 14:33:01 -06:00
Gabi
e9b40ae710 Description Update for WPFTweaksDisableEdge (#3778) 2025-12-11 14:25:32 -06:00
Gabi
408327daec Delete-WPFTweaksStorage (#3779)
* Remove WPFTweaksStorage from Standart Preset

* Remove WPFTweaksStorage

* move to advanced tweaks
2025-12-11 14:22:49 -06:00
Gabi
7f7424406f Rename WPFTweaksDisableWpbtExecution (#3780) 2025-12-11 14:18:04 -06:00
Gabi
ccc44414a2 Rename WPFTweaksDisableipsix (#3782) 2025-12-11 14:09:26 -06:00
Gabi
06ea48dd01 Delete-WPFTweaksRemoveOnedrive (#3785)
* Update tweaks.json

* Update-WPFTweaksRemoveOnedrive

* Update-WPFTweaksRemoveOnedrive

* Update tweaks.json

* Update tweaks.json

* Update tweaks.json

* Delete WPFTweaksRemoveOnedrive
2025-12-11 14:03:54 -06:00
Gabi
5a6b1ef086 Update-WPFTweaksLaptopHibernation (#3786)
* Update WPFTweaksLaptopHibernation's InvokeScript

* Update WPFTweaksLaptopHibernation's Script
2025-12-11 14:01:16 -06:00
Gabi
aba3d786bc Update applications.json (#3791) 2025-12-11 13:58:41 -06:00
Gabi
7765c1032b Add-WPFTweaksMakeEdgeUninstallable (#3792)
* Add WPFTweaksMakeEdgeUninstallable

* Update tweaks.json

* Update tweaks.json

* Update tweaks.json

* Update tweaks.json

* Update tweaks.json

* formating fix
2025-12-11 13:55:34 -06:00
Gabi
015f1b0709 Replace-System.IO.Directory (#3794)
* Update main.ps1

* Update start.ps1

* Update main.ps1

* Update main.ps1
2025-12-11 13:34:03 -06:00
Gabi
19b6f8abfa Remove-Reg.exe (#3798)
* Update WPFTweaksRemoveHome to use powershell

* Fix WPFTweaksRemoveGallery format

* Format fix for WPFTweaksRemoveHome

* Update tweaks.json

* fix my f up

* Update tweaks.json to use registry modifications

Replaced InvokeScript and UndoScript with registry modifications for removing Home from Explorer and setting This PC as default.

* fix missing comma from twitch chat
2025-12-11 13:13:16 -06:00
ChrisTitusTech
80e872aa60 Deploying to main from @ ChrisTitusTech/winutil@cfaf139a6a 🚀 2025-12-02 15:36:46 +00:00
CodingWonders
cfaf139a6a [Tweaks] Conditionally determine when to use sc and Set-Service (#3761)
* [Tweaks] Conditionally determine when to use sc and Set-Service

* Clean up comments in Set-WinUtilService.ps1

Removed comments explaining the handling of auto delayed start for PWSH 5.

---------

Co-authored-by: Chris Titus <contact@christitus.com>
2025-12-01 14:29:27 -06:00
Chris Titus Tech
becfba603d clean up spacing 2025-12-01 07:49:40 -06:00
makhlwf
2b68976e7b feat(accessibility): add accessibility labels to tweaks ui (#3731) 2025-12-01 13:45:58 -06:00
Gabi
5369d9d99b Add Create Issue (#3729) 2025-12-01 13:41:59 -06:00
Gabi
8b3e1280df Update-WPFTweaksDeBloat (#3709)
* Update tweaks.json

* Update tweaks.json

* Update tweaks.json

* Update tweaks.json

* Update tweaks.json

* Added comments to InvokeScript of WPFTweaksDeBloat

* Update tweaks.json

* Update tweaks.json
2025-12-01 13:41:28 -06:00
Alvaro Parker
ce77be324b Add zed to applications (#3734) 2025-12-01 13:31:44 -06:00
Soumyadip Nayak
6168e93d4c Remove deprecated CryptoWalletEnabled policy from Edge debloat tweaks (#3737) 2025-12-01 13:29:59 -06:00
Younes Aassila
d98118e322 Fix #3736 (#3748) 2025-12-01 13:26:21 -06:00
dependabot[bot]
f69f107d9d Bump actions/checkout from 5 to 6 (#3745)
Bumps [actions/checkout](https://github.com/actions/checkout) from 5 to 6.
- [Release notes](https://github.com/actions/checkout/releases)
- [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md)
- [Commits](https://github.com/actions/checkout/compare/v5...v6)

---
updated-dependencies:
- dependency-name: actions/checkout
  dependency-version: '6'
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-12-01 13:20:16 -06:00
Gabi
f3c3613d26 OneDrive Removal Updated, read description (#3659)
* Update tweaks.json

* Update tweaks.json

* Update tweaks.json

* Remove Unneccary -ErrorAction in OneDrive-Removal

* Format fixes for WPFTweaksRemoveOnedrive
2025-12-01 13:18:08 -06:00
Chris Titus Tech
b265675560 Removal of more winget user scope code 2025-11-17 07:37:29 -06:00
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
ChrisTitusTech
7d1fb52277 Deploying to main from @ ChrisTitusTech/winutil@95988fca80 🚀 2025-11-15 15:31:46 +00:00
ChrisTitusTech
95988fca80 Deploying to main from @ ChrisTitusTech/winutil@451040b5b1 🚀 2025-11-14 15:33:01 +00:00
ChrisTitusTech
451040b5b1 Deploying to main from @ ChrisTitusTech/winutil@47cb6b9273 🚀 2025-11-08 15:31:28 +00:00
ChrisTitusTech
47cb6b9273 Deploying to main from @ ChrisTitusTech/winutil@69233b1d8a 🚀 2025-11-01 15:30:51 +00:00
Gabi
69233b1d8a Update Disable Edge Tweak (#3649)
* Update tweaks.json

* Update tweaks.json

* Update tweaks.json

* Remove Disable edge invoke script

Removed scripts for disabling and enabling Microsoft Edge Update tasks.

* Update tweaks.json

* Update tweaks.json
2025-10-23 13:55:52 -05:00
ChrisTitusTech
b621d9104e Deploying to main from @ ChrisTitusTech/winutil@1f81eec8f1 🚀 2025-10-20 15:33:21 +00:00
21 changed files with 227 additions and 1264 deletions

View File

@@ -9,7 +9,7 @@ jobs:
runs-on: ubuntu-latest
steps:
- name: Checkout repository
uses: actions/checkout@v5
uses: actions/checkout@v6
- name: Check if PR was merged
if: github.event.pull_request.merged == true

View File

@@ -13,7 +13,7 @@ jobs:
runs-on: windows-latest
steps:
- name: Checkout Sources
uses: actions/checkout@v5
uses: actions/checkout@v6
- name: Compile and Syntaxcheck winutil.ps1
shell: pwsh

View File

@@ -14,7 +14,7 @@ jobs:
CERTIFICATE_BASE64: ${{ secrets.CERTIFICATE_BASE64 }}
steps:
- name: Checkout Repository
uses: actions/checkout@v5
uses: actions/checkout@v6
- name: Compile project
shell: pwsh

View File

@@ -11,7 +11,7 @@ jobs:
steps:
- name: Checkout code
uses: actions/checkout@v5
uses: actions/checkout@v6
- name: Check if winutil.ps1 exists
id: check_existence

View File

@@ -11,7 +11,7 @@ jobs:
if: (github.event_name == 'schedule' && github.repository == 'ChrisTitusTech/winutil') || (github.event_name != 'schedule')
steps:
- name: Checkout 🛎️
uses: actions/checkout@v5
uses: actions/checkout@v6
- name: Generate Sponsors 💖
uses: JamesIves/github-sponsors-readme-action@v1

View File

@@ -8,7 +8,7 @@ jobs:
name: PS Script Analyzer
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v5
- uses: actions/checkout@v6
- name: lint
uses: devblackops/github-action-psscriptanalyzer@master
with:
@@ -22,7 +22,7 @@ jobs:
steps:
- name: Checkout code
uses: actions/checkout@v5
uses: actions/checkout@v6
- name: Install Pester
run: |

View File

@@ -35,7 +35,7 @@ irm "https://christitus.com/win" | iex
irm "https://christitus.com/windev" | iex
```
If you have Issues, refer to [Known Issues](https://winutil.christitus.com/knownissues/)
If you have Issues, refer to [Known Issues](https://winutil.christitus.com/knownissues/) or [Create Issue](https://github.com/ChrisTitusTech/winutil/issues)
## 🎓 Documentation
@@ -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/DelDongo"><img src="https:&#x2F;&#x2F;github.com&#x2F;DelDongo.png" width="60px" alt="User avatar: " /></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/danhively"><img src="https:&#x2F;&#x2F;github.com&#x2F;danhively.png" width="60px" alt="User avatar: Dan Hively" /></a><a href="https://github.com/ADS-Fund"><img src="https:&#x2F;&#x2F;github.com&#x2F;ADS-Fund.png" width="60px" alt="User avatar: ADS Fund" /></a><a href="https://github.com/partybrasil"><img src="https:&#x2F;&#x2F;github.com&#x2F;partybrasil.png" width="60px" alt="User avatar: Miguel Diaz" /></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/IsaacThoman"><img src="https:&#x2F;&#x2F;github.com&#x2F;IsaacThoman.png" width="60px" alt="User avatar: Isaac Thoman" /></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",
@@ -983,6 +1000,14 @@
"link": "https://aws.amazon.com/corretto",
"winget": "Amazon.Corretto.21.JDK"
},
"java25": {
"category": "Development",
"choco": "corretto25jdk",
"content": "Amazon Corretto 25 (LTS)",
"description": "Amazon Corretto is a no-cost, multiplatform, production-ready distribution of the Open Java Development Kit (OpenJDK).",
"link": "https://aws.amazon.com/corretto",
"winget": "Amazon.Corretto.25.JDK"
},
"jdownloader": {
"category": "Utilities",
"choco": "jdownloader",
@@ -1703,13 +1728,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",
@@ -2910,5 +2935,13 @@
"description": "The modern, privacy-focused, performance-driven browser built on Firefox",
"link": "https://zen-browser.app/",
"winget": "Zen-Team.Zen-Browser"
},
"Zed": {
"category": "Development",
"choco": "na",
"content": "Zed",
"description": "Zed is a modern, high-performance code editor designed from the ground up for speed and collaboration.",
"link": "https://zed.dev/",
"winget": "Zed.Zed"
}
}

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,15 +1,12 @@
{
"Standard": [
"WPFTweaksAH",
"WPFTweaksActivity",
"WPFTweaksConsumerFeatures",
"WPFTweaksDisableExplorerAutoDiscovery",
"WPFTweaksDVR",
"WPFTweaksHome",
"WPFTweaksLoc",
"WPFTweaksLocation",
"WPFTweaksServices",
"WPFTweaksStorage",
"WPFTweaksTele",
"WPFTweaksWifi",
"WPFTweaksDiskCleanup",
"WPFTweaksDeleteTempFiles",
"WPFTweaksEndTaskOnTaskbar",
@@ -19,7 +16,6 @@
"Minimal": [
"WPFTweaksConsumerFeatures",
"WPFTweaksDisableExplorerAutoDiscovery",
"WPFTweaksHome",
"WPFTweaksServices",
"WPFTweaksTele"
]

File diff suppressed because it is too large Load Diff

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,10 +21,6 @@ function Invoke-WinUtilTweaks {
$KeepServiceStartup = $true
)
if ($Checkbox -contains "Toggle") {
$CheckBox = $sync.configs.tweaks.$CheckBox
}
Write-Debug "Tweaks: $($CheckBox)"
if($undo) {
$Values = @{

View File

@@ -24,8 +24,12 @@ Function Set-WinUtilService {
# Check if the service exists
$service = Get-Service -Name $Name -ErrorAction Stop
# Service exists, proceed with changing properties
$service | Set-Service -StartupType $StartupType -ErrorAction Stop
# Service exists, proceed with changing properties -- while handling auto delayed start for PWSH 5
if (($PSVersionTable.PSVersion.Major -lt 7) -and ($StartupType -eq "AutomaticDelayedStart")) {
sc.exe config $Name start=delayed-auto
} else {
$service | Set-Service -StartupType $StartupType -ErrorAction Stop
}
} catch [System.ServiceProcess.ServiceNotFoundException] {
Write-Warning "Service $Name was not found"
} catch {

View File

@@ -33,62 +33,6 @@ function Invoke-WPFInstall {
try {
$sync.ProcessRunning = $true
if($packagesWinget.Count -gt 0 -and $packagesWinget -ne "0") {
Add-Type -AssemblyName System.DirectoryServices.AccountManagement
Add-Type -assembly System.Windows.Forms
$PrincipalContext = New-Object System.DirectoryServices.AccountManagement.PrincipalContext('Machine')
$user = $env:USERNAME
Get-LocalUser | Where-Object Enabled -eq $true | ForEach-Object {
$validPassword = $false
while (-not $validPassword) {
try {
$myPasswordIsBlank = $PrincipalContext.ValidateCredentials($user, $null)
$validPassword = $true
} catch {
$form = New-Object System.Windows.Forms.Form
$form.Text = "Set password for $user"
$form.Size = New-Object System.Drawing.Size(500, 200)
$label = New-Object System.Windows.Forms.Label
$label.Text = 'Admin mode install failed. Set a USER password for login and user-based installation.'
$label.Size = New-Object System.Drawing.Size(480, 60)
$label.Location = New-Object System.Drawing.Point(10, 10)
$form.Controls.Add($label)
$passwordBox = New-Object System.Windows.Forms.TextBox
$passwordBox.Size = New-Object System.Drawing.Size(380, 20)
$passwordBox.UseSystemPasswordChar = $true
$passwordBox.Location = New-Object System.Drawing.Point(10, 125)
$form.Controls.Add($passwordBox)
$button = New-Object System.Windows.Forms.Button
$button.Text = 'Submit'
$button.Size = New-Object System.Drawing.Size(75, 23)
$button.Location = New-Object System.Drawing.Point(400, 125)
$button.Add_Click({
$password = $passwordBox.Text | ConvertTo-SecureString -AsPlainText -Force
if ($password) {
try {
Set-LocalUser -Name $user -Password $password
$validPassword = $PrincipalContext.ValidateCredentials($user, $passwordBox.Text)
if ($validPassword) {
$form.Close()
} else {
[System.Windows.Forms.MessageBox]::Show('Invalid password! Please try again.')
}
} catch {
[System.Windows.Forms.MessageBox]::Show('Error setting password!')
}
} else {
[System.Windows.Forms.MessageBox]::Show('No password entered!')
}
})
$form.Controls.Add($button)
$form.ShowDialog() | Out-Null
}
}
}
Show-WPFInstallAppBusy -text "Installing apps..."
Install-WinUtilWinget
Install-WinUtilProgramWinget -Action Install -Programs $packagesWinget

View File

@@ -156,6 +156,7 @@ function Invoke-WPFUIElements {
$checkBox.Name = $entryInfo.Name
$checkBox.HorizontalAlignment = "Right"
$checkBox.UseLayoutRounding = $true
[System.Windows.Automation.AutomationProperties]::SetName($checkBox, $entryInfo.Content)
$dockPanel.Children.Add($checkBox) | Out-Null
$checkBox.Style = $ColorfulToggleSwitchStyle
@@ -191,6 +192,7 @@ function Invoke-WPFUIElements {
$toggleButton.ToolTip = $entryInfo.Description
$toggleButton.HorizontalAlignment = "Left"
$toggleButton.Style = $ToggleButtonStyle
[System.Windows.Automation.AutomationProperties]::SetName($toggleButton, $entryInfo.Content[0])
$toggleButton.Tag = @{
contentOn = if ($entryInfo.Content.Count -ge 1) { $entryInfo.Content[0] } else { "" }
@@ -232,6 +234,7 @@ function Invoke-WPFUIElements {
$comboBox.SetResourceReference([Windows.Controls.Control]::MarginProperty, "ButtonMargin")
$comboBox.SetResourceReference([Windows.Controls.Control]::FontSizeProperty, "ButtonFontSize")
$comboBox.UseLayoutRounding = $true
[System.Windows.Automation.AutomationProperties]::SetName($comboBox, $entryInfo.Content)
foreach ($comboitem in ($entryInfo.ComboItems -split " ")) {
$comboBoxItem = New-Object Windows.Controls.ComboBoxItem
@@ -273,6 +276,7 @@ function Invoke-WPFUIElements {
$baseWidth = [int]$entryInfo.ButtonWidth
$button.Width = [math]::Max($baseWidth, 350)
}
[System.Windows.Automation.AutomationProperties]::SetName($button, $entryInfo.Content)
$itemsControl.Items.Add($button) | Out-Null
$sync[$entryInfo.Name] = $button
@@ -303,6 +307,7 @@ function Invoke-WPFUIElements {
$radioButton.SetResourceReference([Windows.Controls.Control]::FontSizeProperty, "ButtonFontSize")
$radioButton.ToolTip = $entryInfo.Description
$radioButton.UseLayoutRounding = $true
[System.Windows.Automation.AutomationProperties]::SetName($radioButton, $entryInfo.Content)
if ($entryInfo.Checked -eq $true) {
$radioButton.IsChecked = $true
@@ -324,6 +329,7 @@ function Invoke-WPFUIElements {
$checkBox.ToolTip = $entryInfo.Description
$checkBox.SetResourceReference([Windows.Controls.Control]::MarginProperty, "CheckBoxMargin")
$checkBox.UseLayoutRounding = $true
[System.Windows.Automation.AutomationProperties]::SetName($checkBox, $entryInfo.Content)
if ($entryInfo.Checked -eq $true) {
$checkBox.IsChecked = $entryInfo.Checked
}

View File

@@ -451,13 +451,11 @@ $NavLogoPanel.Children.Add((Invoke-WinUtilAssets -Type "logo" -Size 25)) | Out-N
$winutildir = @{}
# Set the path for the winutil directory
$winutildir["path"] = "$env:LOCALAPPDATA\winutil\"
[System.IO.Directory]::CreateDirectory($winutildir["path"]) | Out-Null
$winutildir = "$env:LocalAppData\winutil\"
New-Item $winutildir -ItemType Directory -Force | Out-Null
$winutildir["logo.ico"] = $winutildir["path"] + "cttlogo.ico"
if (Test-Path $winutildir["logo.ico"]) {
$sync["logorender"] = $winutildir["logo.ico"]
if (Test-Path "$winutildir\logo.ico") {
$sync["logorender"] = "$winutildir\logo.ico"
} else {
$sync["logorender"] = (Invoke-WinUtilAssets -Type "Logo" -Size 90 -Render)
}

View File

@@ -80,7 +80,7 @@ if (!([Security.Principal.WindowsPrincipal][Security.Principal.WindowsIdentity]:
$dateTime = Get-Date -Format "yyyy-MM-dd_HH-mm-ss"
$logdir = "$env:localappdata\winutil\logs"
[System.IO.Directory]::CreateDirectory("$logdir") | Out-Null
New-Item $logdir -ItemType Directory -Force | Out-Null
Start-Transcript -Path "$logdir\winutil_$dateTime.log" -Append -NoClobber | Out-Null
# Set PowerShell window title

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) {