Compare commits

...

380 Commits

Author SHA1 Message Date
Gabi e83033a122 Update KnownIssues.md (#4537)
* Update KnownIssues.md

* Update KnownIssues.md

* Update KnownIssues.md
2026-06-03 16:12:02 -05:00
Chris Titus 5832f0df81 chore: Update generated dev docs (#4631) 2026-06-03 16:09:54 -05:00
Gabi 26f3284919 Show ctt logo instantly (#4603)
* Update main.ps1

* Delete functions/public/Show-CTTLogo.ps1

* Update main.ps1

* Update main.ps1
2026-06-03 16:09:44 -05:00
Gabi 1f8455e90d Removed WPFTweaksWidget's UndoScript (#4608) 2026-06-03 16:08:12 -05:00
Chris Titus 62c43e6e82 chore: Update generated dev docs (#4630) 2026-06-03 16:07:49 -05:00
Gabi a1949ed917 Update feature.json (#4612) 2026-06-03 16:07:01 -05:00
Chris Titus 74a3ddad1c chore: Update generated dev docs (#4629) 2026-06-03 16:06:49 -05:00
Gabi d7b0389a93 Removed WPFTweaksPowershell7Tele and added it to WPFTweaksTelemetry (#4613)
* Update tweaks.json

* Update preset.json
2026-06-03 16:06:03 -05:00
Gabi 23f197b644 Update main.ps1 (#4604) 2026-06-03 13:50:51 -05:00
Chris Titus b2eeda9eb2 chore: Update generated dev docs (#4627) 2026-06-03 13:46:17 -05:00
Gabi ceec8aeb53 Update Invoke-WPFPanelAutologin.ps1 (#4596) 2026-06-03 13:45:16 -05:00
Gabi 6b125346cd Simplify Invoke-WPFFixesNetwork.ps1 (#4594)
* Update Invoke-WPFFixesNetwork.ps1

* Update Invoke-WPFFixesNetwork.ps1
2026-06-03 13:44:21 -05:00
Chris Titus 5f8e493536 chore: Update generated dev docs (#4626) 2026-06-03 13:43:59 -05:00
Gabi 4db0248911 Simplify Invoke-WPFOOSU.ps1 (#4593)
* Simplify Invoke-WPFOOSU.ps1

* Update Invoke-WPFOOSU.ps1
2026-06-03 13:43:15 -05:00
Gabi 2bee0d6f2c Update Invoke-WinUtilSponsors.ps1 (#4589) 2026-06-03 13:36:42 -05:00
Chris Titus 58df36841f chore: Update generated dev docs (#4625) 2026-06-03 13:35:59 -05:00
Gabi 5ba840f87f refactor WPFTweaksBlockAdobeNet (#4585)
* Update tweaks.json

* Update tweaks.json
2026-06-03 13:35:21 -05:00
Gabi fe2dd829b8 Removed RustDesk from applications.json (#4584) 2026-06-03 13:33:07 -05:00
Alfyus 5cdb6c6e22 Italian README in ".github" (#4623)
* Create READMEITALIAN.md for Italian users

Added Italian translation for the README file, detailing the functionality and usage of WinUtil.

* Fix formatting in READMEITALIAN.md

* Rename READMEITALIAN.md to .github/READMEITALIAN.md
2026-06-03 13:29:51 -05:00
Chris Titus 4bda00ec2d chore: Update generated dev docs (#4624) 2026-06-03 13:29:11 -05:00
Gabi 462cc40a6a better explanation for toggle description (#4577)
* Update tweaks.json

* Update tweaks.json

* Update tweaks.json

* Update tweaks.json

* Update tweaks.json

---------

Co-authored-by: Chris Titus <contact@christitus.com>
2026-06-03 13:28:32 -05:00
Gabi 0e061692ba Made "Upgrade all applications" not exit after completion (#4575)
* Update Invoke-WPFInstallUpgrade.ps1

* Update Test-WinUtilPackageManager.ps1

* Update Test-WinUtilPackageManager.ps1
2026-06-03 13:23:46 -05:00
Gabi ffec7a8a8f Added nomacs to applications.json (#4566) 2026-06-03 13:18:29 -05:00
Gabi 6e4b1d26c6 Removed WPFTweaksDVR from preset.json (#4565) 2026-06-03 13:15:30 -05:00
Chris Titus 32cec06ed6 chore: Update generated dev docs (#4622) 2026-06-03 13:15:11 -05:00
Gabi a24193ce18 Update tweaks.json (#4564) 2026-06-03 13:14:20 -05:00
PChaicot 8f919be14b Add Playnite to applications.json (#4588) 2026-06-03 13:13:12 -05:00
Gabi ad5d103df9 Cleanup .gitignore (#4563)
* Update .gitignore

* Update .gitignore

* Update .gitignore

* Update .gitignore

* Update .gitignore
2026-06-03 13:11:49 -05:00
Chris Titus b5160d9e24 chore: Update generated dev docs (#4621) 2026-06-03 13:09:04 -05:00
Gabi 614eb949db Remove OneDrive left overs (#4561)
* Update tweaks.json

* Update tweaks.json
2026-06-03 13:08:18 -05:00
Gabi d1edd5b2ba Delete overrides directory (#4554) 2026-06-03 13:07:34 -05:00
Gabi 333937d2fa Made Compile.ps1 not load the script into memory and use -Raw (#4536)
* Made Compile.ps1 not load the script into memory

* Update Compile.ps1

* Update Compile.ps1

* Update Compile.ps1
2026-06-03 13:04:04 -05:00
Chris Titus 3ca87648b4 chore: Update generated dev docs (#4619) 2026-06-03 13:01:02 -05:00
Jarosław Drzewiecki de Ogańczyk 4894a545f0 Fixed Json for Scrollbars Always Visible (#4528) 2026-06-03 13:00:22 -05:00
Jarosław Drzewiecki de Ogańczyk 9f55bced01 Added Delivery Optimization tweak to Standard-Advanced Tweaks preset (#4548)
* Added Delivery Optimization tweak to Standard Tweaks preset

* Added Delivery Optimization tweak to Standard Tweaks preset and Advanced preset to match Gabi PR
2026-06-03 12:59:05 -05:00
Chris Titus 56e0541113 chore: Update generated dev docs (#4618) 2026-06-03 12:59:00 -05:00
Jarosław Drzewiecki de Ogańczyk 7607b92e21 Added Delivery Optimization disable tweak (#4527) 2026-06-03 12:58:23 -05:00
Sean (ANGRYxScotsman) 153900a77b fix pics not loading in app page (#4614) 2026-06-03 12:57:33 -05:00
Gabi 691224f465 Rework README.md (#4586)
* Update README.md

* Update README.md

* Update README.md

* Update README.md

* Update README.md

* Update README.md

* Update README.md

* Update README.md

* Update README.md

* Update README.md

* Update README.md

* Update README.md

* Update README.md

* Update README.md
2026-06-03 12:56:58 -05:00
Chris Titus 893dca4055 chore: Update generated dev docs (#4579) 2026-05-28 13:14:28 -05:00
Gabi 2ebc9bd6c4 fix WPFTweaksWindowsAI (#4578) 2026-05-28 13:13:54 -05:00
Gabi 076ef02b2c Rework contributing.md (#4567)
* Delete docs/assets/images/Complie.png

* Delete docs/assets/images/Commit-GHD.png

* Delete docs/assets/images/Discard-GHD.png

* Delete docs/assets/images/Push-Commit.png

* Delete docs/assets/images/Fork-Button-Dark.png

* Delete docs/assets/images/Fork-Button-Light.png

* Update CONTRIBUTING.md

* Update CONTRIBUTING.md

* Update CONTRIBUTING.md

* Update CONTRIBUTING.md

* Update CONTRIBUTING.md

* Update CONTRIBUTING.md
2026-05-28 12:32:27 -05:00
Gabi c99114e9e1 Added -Preset for automation (#4539)
* Update start.ps1

* Update main.ps1

* Update start.ps1

* Update start.ps1

* Update main.ps1

* Update main.ps1

* Update _index.md

* Update _index.md

* Update _index.md

* Update README.md

* Update main.ps1

* Update start.ps1

* Update main.ps1

* Update main.ps1

* Update start.ps1

* Update main.ps1

* Update main.ps1

* Update main.ps1

* Update main.ps1
2026-05-26 15:22:28 -05:00
Gabi 9b72c1e2de Added advanced preset to tweaks (#4538)
* Update preset.json

* Update Invoke-WPFButton.ps1

* Update inputXML.xaml
2026-05-26 15:21:12 -05:00
Chris Titus b379574574 chore: Update generated dev docs (#4558) 2026-05-26 15:17:54 -05:00
Sean (ANGRYxScotsman) 565597a906 Update documentation and images across multiple pages (#4549)
* Update CONTRIBUTING.md

* updated the apps page and pics

* updated tweaks tab pic

* updated features page with pic

* updated update page with pic

* update win 11 page with pic

* update pics for app page

* deleted old pics

* fix favicon from not showing

* added forums link in help

* Update hugo.toml

* updated title screen pic and added it to the main screen

* Update _index.md

* added the recommended section to the user guild tweeks

* Update _index.md

* added the new advance preset

* clean up pages

* fix links

* fixed wikipedia link

* Update _index.md
2026-05-26 15:17:26 -05:00
Gabi 62ccf80856 Cleanup gitignore (#4526)
* Clean Up .gitignore

* Update .gitignore

* Clean Up .gitignore

* Update .gitignore

* Update .gitignore

* Update .gitignore
2026-05-26 15:14:35 -05:00
Gabi 70cdacb9f9 replaced some choco "na" packages with there package name in applications.json (#4523) 2026-05-26 15:08:58 -05:00
Gabi 459d0fd1b2 Fixed Get-WinUtilToggleStatus.ps1 displaying incorrect infromation for tweaks (#4522)
* Fixed Get-WinUtilToggleStatus.ps1 displaying incorrect infromation of tweaks

* Update Get-WinUtilToggleStatus.ps1

* Update Get-WinUtilToggleStatus.ps1

* Update Get-WinUtilToggleStatus.ps1

* Update Get-WinUtilToggleStatus.ps1
2026-05-26 15:05:25 -05:00
Chris Titus 48e94f71bc chore: Update generated dev docs (#4555) 2026-05-26 15:01:09 -05:00
Gabi 2582f094ff Powerplan fix (#4521)
* Update Invoke-WPFUltimatePerformance.ps1

* Update Invoke-WPFButton.ps1

* Update Invoke-WPFUltimatePerformance.ps1

* Update KnownIssues.md

* Update KnownIssues.md

* Update Invoke-WPFUltimatePerformance.ps1

* Update Invoke-WPFUltimatePerformance.ps1

* Update Invoke-WPFUltimatePerformance.ps1

* Update tweaks.json
2026-05-26 15:00:33 -05:00
Chris Titus 5aa099f6e2 Fix missing dism metadata (#4516)
* Fix product key invalid and missing metadata on some isos

* Fix Gabi's broken light mode pr
2026-05-19 14:11:27 -05:00
github-actions[bot] 9d85eea4e5 Update sponsors in README (#4489)
Co-authored-by: ChrisTitusTech <7896101+ChrisTitusTech@users.noreply.github.com>
2026-05-19 13:27:33 -05:00
Sree Sankar S c765ffb317 Add minimize button to WinUtil window (#4508) 2026-05-19 13:26:54 -05:00
Chris Titus 82f51b4bf1 chore: Update generated dev docs (#4515) 2026-05-19 13:26:45 -05:00
Gabi d44c013464 Changes windev.ps1's syntax (#4506)
* Changes windev.ps1's syntax

* Update windev.ps1
2026-05-19 13:26:32 -05:00
Chris Titus 753d47b9bc Merge branch 'main' into pr/gepardjaro/4503 (#4514) 2026-05-19 13:26:07 -05:00
Gabi 8034e85521 Remove Write-Debug (#4498)
* Update Invoke-WinUtilCurrentSystem.ps1

* Update Invoke-WinUtilFontScaling.ps1

* Update Invoke-WinUtilTweaks.ps1

* Update Reset-WPFCheckBoxes.ps1

* Update Set-Preferences.ps1

* Update Update-WinUtilSelections.ps1

* Update Invoke-WPFSelectedCheckboxesUpdate.ps1

* Update Invoke-WPFtweaksbutton.ps1

* Update main.ps1

* Update main.ps1

* Update main.ps1

* Update main.ps1

* Update main.ps1

* Merge branch 'main' into Remove-Write-Debug
2026-05-19 13:16:06 -05:00
Gabi a09736f9a8 Cleanup Get-WinUtilToggleStatus.ps1 (#4497)
* Cleanup Get-WinUtilToggleStatus.ps1

* Update Get-WinUtilToggleStatus.ps1

* Merge branch 'main' into patch-9

* Update Get-WinUtilToggleStatus.ps1
2026-05-19 13:13:27 -05:00
Gabi 24aaf9a3cf Cleanup Get-WinUtilSelectedPackages.ps1 and remove annoying messages (#4496)
* Cleanup Get-WinUtilSelectedPackages.ps1 and remove annoying messages

* Update Get-WinUtilSelectedPackages.ps1

* Update Get-WinUtilSelectedPackages.ps1

* Update Get-WinUtilSelectedPackages.ps1

* Merge branch 'main' into patch-8

* Update Get-WinUtilSelectedPackages.ps1

* Update Get-WinUtilSelectedPackages.ps1

* Update Get-WinUtilSelectedPackages.ps1

* Update Get-WinUtilSelectedPackages.ps1
2026-05-19 13:07:10 -05:00
Chris Titus f57b5f4ffa chore: Update generated dev docs (#4513) 2026-05-19 13:01:00 -05:00
Pinak Dhabu 32d24c8024 Add Game Mode toggle and fix MPO overlay for 25H2 (#4495) 2026-05-19 13:00:07 -05:00
Nazrul Islam 743f9e3783 Refactor: Secure literal search and defensive scope handling (#4492)
* Refactor: Secure literal search and defensive scope handling

* Refactor: Secure literal search for Tweaks Tab

* Merge branch 'ChrisTitusTech:main' into fix-search-security
2026-05-19 12:56:58 -05:00
Chris Titus 522c4471c0 chore: Update generated dev docs (#4512) 2026-05-19 12:42:19 -05:00
Gabi ea698f3791 Added WPFTweaksDisableBitLocker to tweaks.json (#4486)
* Added WPFTweaksDisableBitLocker to tweaks.json

* Update tweaks.json

* Update tweaks.json

* Update tweaks.json

* Merge branch 'main' into patch-6
2026-05-19 12:41:49 -05:00
Gabi 8ffd15c9f3 simplify Compile.ps1 by alot (#4484)
* Update Compile.ps1

* Delete tools/Invoke-Preprocessing.ps1

* Update .gitignore

* Update Compile.ps1

* Update Compile.ps1

* Update Compile.ps1

* Update Compile.ps1

* Update Compile.ps1

* Update .gitignore

* Update Compile.ps1

* Update Compile.ps1

* Update Compile.ps1

* Merge branch 'main' into patch-5
2026-05-19 12:40:02 -05:00
Gabi 6c1cb0caab Deleted unused functions (#4482)
* Delete functions/private/Get-LocalizedYesNo.ps1

* Delete functions/private/Get-WPFObjectName.ps1

* Merge branch 'main' into patch-4
2026-05-19 12:36:49 -05:00
Gabi bcafbe6234 CleanUp Invoke-WinUtilFeatureInstall.ps1 and fix typo (#4481)
* CleanUp Invoke-WinUtilFeatureInstall.ps1

* Update Invoke-WinUtilFeatureInstall.ps1

* Update feature.json
2026-05-19 12:34:04 -05:00
dependabot[bot] fb54380b8b Bump actions/github-script from 7 to 9 (#4510)
Bumps [actions/github-script](https://github.com/actions/github-script) from 7 to 9.
- [Release notes](https://github.com/actions/github-script/releases)
- [Commits](https://github.com/actions/github-script/compare/v7...v9)

---
updated-dependencies:
- dependency-name: actions/github-script
  dependency-version: '9'
  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>
2026-05-19 10:56:12 -05:00
Gabi 39f26133f4 Update pre-release.yaml (#4487) 2026-05-15 09:02:05 -05:00
Gabi 09695f10aa Fixed mpc-qt's description in applications.json (#4480) 2026-05-15 08:54:44 -05:00
tacostrange d1becc5310 Fixed typo - 'there' to 'their' (#4477)
* Fixed typo - 'there' to 'their'

* fix typo in tweaks.json from 'there' to 'their'
2026-05-15 08:54:03 -05:00
Copilot 543b8958ef Fix Actions script injection vulnerability in issue-slash-commands.yaml (#4493)
* Initial plan

* Fix Actions script injection vulnerability in issue-slash-commands.yaml

Agent-Logs-Url: https://github.com/ChrisTitusTech/winutil/sessions/94895aac-198f-40b6-af42-27fe0c646587

Co-authored-by: ChrisTitusTech <7896101+ChrisTitusTech@users.noreply.github.com>

---------

Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: ChrisTitusTech <7896101+ChrisTitusTech@users.noreply.github.com>
2026-05-14 18:13:02 -05:00
Sean (ANGRYxScotsman) c39c54c7c1 update theme (#4490) 2026-05-14 14:22:33 -05:00
Chris Titus d8193fd8ac chore: Update generated dev docs (#4475) 2026-05-12 13:07:48 -05:00
Chris Titus 25adabd622 update bug 2026-05-12 13:07:27 -05:00
Gabi 2d605f1875 Make WPFTweaksServices do what it says (#4466)
* Update tweaks.json

* Update tweaks.json
2026-05-12 13:06:46 -05:00
Gabi d46d324df8 Cleanup programs install (#4465)
* Cleanup programs install

* Update Install-WinUtilProgramChoco.ps1
2026-05-12 13:06:13 -05:00
Chris Titus 3e16817640 chore: Update generated dev docs (#4474) 2026-05-12 13:03:58 -05:00
Chris Titus d0b91d190a chore: Update generated dev docs (#4473) 2026-05-12 13:03:01 -05:00
Gabi bdbfdb6681 Fixed WPFTweaksRemoveGallery and WPFTweaksRemoveHome (#4464)
* Fixed WPFTweaksRemoveGallery not setting explorer launchto

* Update tweaks.json

* Update tweaks.json
2026-05-12 13:02:54 -05:00
Gabi 0154b749a4 Added WPFTweaksWindowsAI (#4461)
* Added WPFTweaksWindowsAI

* Update tweaks.json
2026-05-12 13:02:26 -05:00
jb49088 e6e44e3e04 Add Deskflow to applications (#4450)
* Add Deskflow to applications

* add: Include Deskflow in applications list

---------

Co-authored-by: Chris Titus <contact@christitus.com>
2026-05-12 13:01:42 -05:00
Gabi e6d8fdff75 fix import (#4447)
* Made -Config use Runspaces main.ps1

* Fix no-UI config autorun

* Skip empty no-UI autorun sections

* Update Invoke-WinUtilAutoRun.ps1

* Ignore blank DNS selection during autorun

* Update main.ps1

* Update Invoke-WPFRunspace.ps1

* Update Invoke-WPFRunspace.ps1

* Update Invoke-WinUtilAutoRun.ps1

* Update Invoke-WinUtilAutoRun.ps1

* Update Invoke-WPFtweaksbutton.ps1

* Update start.ps1

* Update main.ps1

* Update Invoke-WPFtweaksbutton.ps1

* Update Invoke-WPFRunspace.ps1

* Update _index.md

* Merge branch 'ChrisTitusTech:main' into patch-3

* Merge branch 'ChrisTitusTech:main' into patch-3
2026-05-12 12:58:46 -05:00
Gabi 6ba184bdeb Hide Windows Updates from setting menu when disabling updates (#4445)
* Update Invoke-WPFUpdatesdisable.ps1

* Update Invoke-WPFUpdatesdefault.ps1

* Update Invoke-WPFUpdatesdefault.ps1

* Merge branch 'ChrisTitusTech:main' into patch-1

* Merge branch 'ChrisTitusTech:main' into patch-1

* Update Invoke-WPFUpdatesdisable.ps1

* Update Invoke-WPFUpdatesdisable.ps1
2026-05-12 12:57:07 -05:00
Ivan Lepekha 6d6defc206 improve: Clearing Applications list (#4451)
* Less radical removal of apps

* Moving some applications to Selfhosted category

* Some more chess-boxing

* Document section is too small

* TG forks are too niche

* Floorp should be good

* feat: Add new multimedia tools and update existing application entries in applications.json

---------

Co-authored-by: Chris Titus <contact@christitus.com>
2026-05-12 12:54:23 -05:00
Chris Titus fa073f8475 chore: Update generated dev docs (#4472) 2026-05-12 12:19:19 -05:00
Gabi 63aecc0bee Make WPFTweaksDeBloat an essential tweak and add it to presets (#4458)
* Update tweaks.json

* Update preset.json
2026-05-12 12:18:42 -05:00
Gabi a0887783f8 fix allowing everyone to close issues (#4454)
* Update issue-slash-commands.yaml

* Update issue-slash-commands.yaml

* Update issue-slash-commands.yaml
2026-05-07 16:23:43 -05:00
Ivan Lepekha f3880b66bb feat: Update GH issue template for known issues (#4455)
* Add checkbox for known issues acknowledgment

Some people do not check the link

* typo fix

Updated checkbox type to checkboxes in bug report template.

* :zombie_sound:

* :zombie_sound_2:

* AAAAAAAAAAAAAAA

* I'm tired of testing commits

* :zombie_sound_1337:

Added a description to the read issues checkbox.

* my bad
2026-05-07 15:56:01 -05:00
Chris Titus aa636926fa chore: Update generated dev docs (#4457) 2026-05-07 15:53:01 -05:00
Gabi ec3166bdc6 Update Invoke-WinUtilInstallPSProfile.ps1 (#4456)
* Update Invoke-WinUtilInstallPSProfile.ps1

* Update Invoke-WinUtilUninstallPSProfile.ps1

* Update Invoke-WinUtilInstallPSProfile.ps1

* Update Invoke-WinUtilUninstallPSProfile.ps1
2026-05-07 15:52:20 -05:00
Gabi a3f57532b6 Cleanup winget upgrade (#4410)
* Update Update-WinUtilProgramWinget.ps1

* Delete functions/private/Update-WinUtilProgramWinget.ps1

* Delete functions/private/Get-WinUtilInstallerProcess.ps1

* Update Invoke-WPFInstallUpgrade.ps1

* Update Invoke-WPFInstallUpgrade.ps1

* Update Invoke-WPFInstallUpgrade.ps1

* Update Invoke-WPFInstallUpgrade.ps1

* Update Invoke-WPFInstallUpgrade.ps1

* Update Invoke-WPFInstallUpgrade.ps1
2026-05-05 15:16:39 -05:00
github-actions[bot] 3a7851b0f4 Update sponsors in README (#4387)
Co-authored-by: ChrisTitusTech <7896101+ChrisTitusTech@users.noreply.github.com>
2026-04-30 15:19:09 -05:00
Gabi 6fa73db245 Removed anythingllm from applications.json (#4428) 2026-04-30 15:18:07 -05:00
Chris Titus 184fe22a35 Cleanup: Delete all Scheduled Tasks related things (#4435)
* Delete functions/private/Set-WinUtilScheduledTask.ps1

* Update Invoke-WinUtilTweaks.ps1

* Update Invoke-WinUtilCurrentSystem.ps1

* waste of time

---------

Co-authored-by: Gabi <218829269+GabiNun2@users.noreply.github.com>
2026-04-30 15:16:27 -05:00
Gabi 9d4613d838 Strip unneccary surpassion from win11 creator (#4422)
* Update Invoke-WinUtilISO.ps1

* Update Invoke-WinUtilISOScript.ps1

* Update Invoke-WinUtilISOUSB.ps1

* Merge branch 'ChrisTitusTech:main' into patch-8
2026-04-30 14:58:07 -05:00
Gabi 10d83c5b20 Added tweaks_applied to issue temeplate (#4416)
* Update bug_report.yaml

* Merge branch 'ChrisTitusTech:main' into patch-5
2026-04-30 14:37:34 -05:00
Chris Titus 4065759ca0 chore: Update generated dev docs (#4434) 2026-04-30 12:46:57 -05:00
Chris Titus 97d5f7b850 feat: Add Brave debloat settings to tweaks.json (#4427)
Co-authored-by: Copilot <copilot@github.com>
2026-04-30 12:46:12 -05:00
Gabi bf542af426 Fix TranslucentTB not installing (#4424) 2026-04-29 12:26:07 -05:00
Gabi ea9c7de722 Add a reminder that docs are auto-generated (#4421)
* Update PULL_REQUEST_TEMPLATE.md

* Update PULL_REQUEST_TEMPLATE.md
2026-04-29 12:24:24 -05:00
Gabi d2e5886b02 Update docs images (#4419)
* Delete docs/assets/images/Install/Install-apps.png

* Add files via upload

* Delete docs/assets/images/Tweaks-Tab-Light.png

* Delete docs/assets/images/Tweaks-Tab-Dark.png

* Delete docs/assets/images/Settings-Export-Light.png

* Delete docs/assets/images/Settings-Export-Dark.png

* Delete docs/assets/images/Install-Tab-Light.png

* Delete docs/assets/images/Install-Tab-Dark.png

* Delete docs/assets/images/Get-Installed-Light.png

* Delete docs/assets/images/Get-Installed-Dark.png

* Add files via upload
2026-04-29 12:22:26 -05:00
Chris Titus d43c26e314 chore: Update generated dev docs (#4433) 2026-04-29 12:18:13 -05:00
Gabi 4297d69f2c Added WPFToggleBatteryPercentage to tweaks.json (#4412)
* Added `WPFTweaksBatteryPercentage` to tweaks.json

* Update tweaks.json

* Update tweaks.json

* Update tweaks.json

* Update tweaks.json
2026-04-29 12:17:16 -05:00
Gabi 36e4b27872 Update autounattend.xml (#4409) 2026-04-29 12:00:54 -05:00
Chris Titus ec5c7a4639 chore: Update generated dev docs (#4432) 2026-04-29 11:59:52 -05:00
Gabi f2ca10e8c9 Changed Some names (#4406)
* Changed Some names in tweaks.json

* Update feature.json

* Update tweaks.json

* Update tweaks.json
2026-04-29 11:59:03 -05:00
Chris Titus 51cf62cdba chore: Update generated dev docs (#4403) 2026-04-21 15:32:37 -05:00
Jarosław Drzewiecki de Ogańczyk 415d1864d7 Add WPFToggleScrollbars tweak to Always show scrollbars (#4402) 2026-04-21 15:32:05 -05:00
Gabi b463d9d460 Make sure to disable AppCaptureEnabled (#4401) 2026-04-21 15:20:04 -05:00
adakkusu-san 8fa354dec2 added IrfanView to applications.json (#4393) 2026-04-21 14:57:26 -05:00
Graham David 683f9ee811 Added Dangerzone to Utilities (#4392) 2026-04-21 14:56:44 -05:00
dependabot[bot] 31d3c29447 Bump actions/upload-pages-artifact from 4 to 5 (#4391)
Bumps [actions/upload-pages-artifact](https://github.com/actions/upload-pages-artifact) from 4 to 5.
- [Release notes](https://github.com/actions/upload-pages-artifact/releases)
- [Commits](https://github.com/actions/upload-pages-artifact/compare/v4...v5)

---
updated-dependencies:
- dependency-name: actions/upload-pages-artifact
  dependency-version: '5'
  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>
2026-04-21 14:50:23 -05:00
Vaso 68aa6e31bd Added BlurAutoClicker (#4383)
* Added YASB and Modrinth

* Added BlurAutoClicker
2026-04-21 14:50:03 -05:00
Chris Titus cdf8727911 chore: Update generated dev docs (#4399) 2026-04-21 14:40:29 -05:00
CodingWonders 21273bd3a8 [Tweaks] New tweak for unsigned RDP files (#4374)
* [Tweaks] New tweak for unsigned RDP

* Merge branch 'main' into tweaks-unsigned-rdp
2026-04-21 14:39:58 -05:00
potato 67910df019 style: normalize themes.json spacing & uppercase hex values (#4346)
* style: normalize themes.json spacing

* style: uppercase theme hex values

* Merge branch 'main' into fix/themes-json-spacing
2026-04-21 14:37:02 -05:00
Chris Titus dee694b166 Merge branch 'main' of https://github.com/ChrisTitusTech/winutil 2026-04-21 14:20:14 -05:00
Chris Titus 87a5779f0b tweak service reduction 2026-04-21 14:20:08 -05:00
Gabi 9d777842f7 Changes policyplus category to Utilities (#4375) 2026-04-17 09:05:15 -05:00
github-actions[bot] 99b7d94b08 Update sponsors in README (#4361)
Co-authored-by: ChrisTitusTech <7896101+ChrisTitusTech@users.noreply.github.com>
2026-04-17 09:04:52 -05:00
Chris Titus f31e5eb2ac chore: Update generated dev docs (#4382) 2026-04-17 09:04:35 -05:00
Gabi a8efcc9c96 Rename (and reorder) everything (#4372)
* Standardize tweak names to 'Target - Action' format

* Rename Microsoft Store Apps tweak to Unwanted Pre-Installed Apps - Remove

* Update tweaks.json

* Rename and reorder customize preference tweaks

* Standardize config feature labels

* Update feature.json
2026-04-17 09:04:03 -05:00
Gabi 747b6f8ca1 Added restriction policy error (#4370)
* Added restriction policy error

* Update KnownIssues.md

* Update KnownIssues.md

* Update KnownIssues.md

* Update KnownIssues.md
2026-04-17 09:02:27 -05:00
Chris Titus 26959b0e63 chore: Update generated dev docs (#4381) 2026-04-17 09:01:16 -05:00
Sean (ANGRYxScotsman) c5fc9490a8 fixed a lie (#4368) 2026-04-17 09:01:04 -05:00
Gabi 5902b0bd64 Move SvcHostSplitThresholdInKB tweak into WPFTweaksServices tweak (#4364) 2026-04-17 09:00:39 -05:00
Vaso 5dc8547dad Added YASB and Modrinth (#4353) 2026-04-17 08:58:47 -05:00
Chris Titus d736bc4305 chore: Update generated dev docs (#4380) 2026-04-17 08:58:38 -05:00
Vaso a4d0f36ed5 Add toggler for Acrylic effect on login screen (#4348)
* Update applications.json

* Remove Borderless Gaming

* Update UniGetUI code for their link and winget

* Add login blur toggler

* hidden -> removed / sorry!

---------

Co-authored-by: Vaso <92270244+VasoHD@users.noreply.github.com>
2026-04-17 08:58:06 -05:00
Gabi e1e077c69b Added Notion and Todoist and Morgen and Helium to applications.json (#4345)
* Added Notion and Todoist and Morgen to applications.json

* Update applications.json

* Update applications.json

* Update applications.json

* Update applications.json

* Update applications.json

* Update applications.json

* Added helium to applications.json

* Update applications.json

* Added netspeedtray to applications.json
2026-04-17 08:57:01 -05:00
Gabi 8e2dc21823 Update Invoke-WinUtilRemoveEdge.ps1 (#4358)
* Replce Get-ChildItem with Resolve-Path inside of Invoke-WinUtilRemoveEdge.ps1

* Update Invoke-WinUtilRemoveEdge.ps1

* Update Invoke-WinUtilRemoveEdge.ps1
2026-04-14 11:03:07 -05:00
Gabi 8378fd5377 Removed onedrivesetup removal from Invoke-WinUtilISOScript.ps1 (#4350)
* Removed onedrivesetup removal Invoke-WinUtilISOScript.ps1

* Added OneDrive removal to autounattend.xml
2026-04-14 10:04:16 -05:00
Tommi Pöntinen eb08eae357 Remove Xtreme Download Manager from applications.json (#4352)
Removed Xtreme Download Manager entry from applications.
2026-04-14 09:39:56 -05:00
dependabot[bot] 4783e71750 Bump softprops/action-gh-release from 2 to 3 (#4355)
Bumps [softprops/action-gh-release](https://github.com/softprops/action-gh-release) from 2 to 3.
- [Release notes](https://github.com/softprops/action-gh-release/releases)
- [Changelog](https://github.com/softprops/action-gh-release/blob/master/CHANGELOG.md)
- [Commits](https://github.com/softprops/action-gh-release/compare/v2...v3)

---
updated-dependencies:
- dependency-name: softprops/action-gh-release
  dependency-version: '3'
  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>
2026-04-14 09:39:29 -05:00
dependabot[bot] 805a004a3a Bump actions/github-script from 8 to 9 (#4356)
Bumps [actions/github-script](https://github.com/actions/github-script) from 8 to 9.
- [Release notes](https://github.com/actions/github-script/releases)
- [Commits](https://github.com/actions/github-script/compare/v8...v9)

---
updated-dependencies:
- dependency-name: actions/github-script
  dependency-version: '9'
  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>
2026-04-14 09:39:06 -05:00
github-actions[bot] 780ea84e9e Update sponsors in README (#4359)
Co-authored-by: ChrisTitusTech <7896101+ChrisTitusTech@users.noreply.github.com>
2026-04-14 09:38:39 -05:00
YusufKhalifadev f47dcb01d2 Fix a ton of typos and still (#4347) 2026-04-14 09:38:16 -05:00
Gabi 4ab1681eb8 Added dorion to applications.json (#4340) 2026-04-08 12:33:12 -05:00
Gabi ed6ee897d5 Added language support warning to CONTRIBUTING.md (#4342) 2026-04-08 11:19:10 -05:00
Chris Titus 5516be2464 chore: Update generated dev docs (#4338) 2026-04-07 14:10:34 -05:00
Chris Titus 9f972fdac1 Merge branch 'main' of https://github.com/ChrisTitusTech/winutil 2026-04-07 14:09:40 -05:00
Chris Titus c453f260cf Revert "Revert "Simplfy Invoke-WPFUltimatePerformance.ps1"" (#4335)
* Revert "Revert "Simplfy Invoke-WPFUltimatePerformance.ps1 (#4319)" (#4333)"

This reverts commit 419b150220.

* Refactor Invoke-WPFUltimatePerformance function to use "ChrisTitus - Ultimate Power Plan" naming and improve power plan management

* add message for laptop users

* Remove activation of "ChrisTitus - Ultimate Power Plan" during setup
2026-04-07 14:09:31 -05:00
Chris Titus 98eba09986 formatting 2026-04-07 13:07:36 -05:00
Chris Titus 61bce6afda chore: Update generated dev docs (#4334) 2026-04-07 13:04:43 -05:00
Chris Titus 419b150220 Revert "Simplfy Invoke-WPFUltimatePerformance.ps1 (#4319)" (#4333)
This reverts commit e30c0a4c27.
2026-04-07 13:04:02 -05:00
Chris Titus 372fa0159a chore: Update generated dev docs (#4332) 2026-04-07 13:00:56 -05:00
Gabi 406d6fdfc4 oopsy (#4330) 2026-04-07 12:59:59 -05:00
Gabi e30c0a4c27 Simplfy Invoke-WPFUltimatePerformance.ps1 (#4319)
* Simplfy Invoke-WPFUltimatePerformance.ps1

* Update Invoke-WPFButton.ps1

* Update Invoke-WPFUltimatePerformance.ps1

* Update Invoke-WPFUltimatePerformance.ps1

* Update Invoke-WPFButton.ps1

* Update Invoke-WPFUltimatePerformance.ps1

* Update Invoke-WPFUltimatePerformance.ps1

* Update Invoke-WPFUltimatePerformance.ps1

* Update Invoke-WPFUltimatePerformance.ps1
2026-04-07 12:59:37 -05:00
Chris Titus 3d300f6634 chore: Update generated dev docs (#4331) 2026-04-07 12:58:59 -05:00
Sean (ANGRYxScotsman) a72c0770dd removed redundant appx packages (#4308)
* updated appx list

* kept camera

* kept dolby

* removed copilot as we have another tweak for this

* Update tweaks.json

* undo last commits

* removed likedin

* other tweaks do this.

* remove copilot tweak does this

* Update tweaks.json

* removed redundant packages

* removed AppUp.IntelManagementandSecurityStatus

* updated content

* Update tweaks.json

* Update tweaks.json

* Update tweaks.json

* Update tweaks.json

* Update tweaks.json

* Update tweaks.json

* Update tweaks.json
2026-04-07 12:58:27 -05:00
Chris Titus 811cc126e6 chore: Update generated dev docs (#4329) 2026-04-07 12:51:25 -05:00
Gabi 3ceea1b9c1 Disable GeoLocation service in WPFTweaksLocation (#4307)
* Disable GeoLocation service in WPFTweaksLocation

* Update tweaks.json

* Update tweaks.json
2026-04-07 12:50:50 -05:00
Gabi 0cd971d992 Update Install-WinUtilWinget.ps1 (#4302)
* Update Install-WinUtilWinget.ps1

* Update Install-WinUtilWinget.ps1

* Update Install-WinUtilWinget.ps1

* Update Install-WinUtilWinget.ps1

* Update Install-WinUtilWinget.ps1
2026-04-07 12:50:05 -05:00
Chris Titus e077fc7e21 chore: Update generated dev docs (#4328) 2026-04-07 12:47:42 -05:00
Jarosław Drzewiecki de Ogańczyk 0abac833ce Fixed InitialKeyboardIndicators to be String instead of Dword (#4306) 2026-04-07 12:47:12 -05:00
Sean (ANGRYxScotsman) a0fdf2cb80 removed redundant appx packages from win11 creator (#4321)
* redundant

* Update Invoke-WinUtilISOScript.ps1

* Update Invoke-WinUtilISOScript.ps1

* Update Invoke-WinUtilISOScript.ps1

* Update Invoke-WinUtilISOScript.ps1

* Update Invoke-WinUtilISOScript.ps1

* Update Invoke-WinUtilISOScript.ps1

* Update Invoke-WinUtilISOScript.ps1

* Update Invoke-WinUtilISOScript.ps1

* removed notes aswell
2026-04-07 10:48:52 -05:00
Gabi b8f1671ff7 Removed some old code from Invoke-WPFButton.ps1 (#4318) 2026-04-07 10:47:42 -05:00
Gabi 0536047200 Fix: onedrivesetup not being removed (#4317)
* Removed onedrive removal from Invoke-WinUtilISOScript.ps1

* Update autounattend.xml

* Update Invoke-WinUtilISOScript.ps1
2026-04-07 10:47:24 -05:00
dependabot[bot] 2a4bff017d Bump actions/download-artifact from 4 to 8 (#4316)
Bumps [actions/download-artifact](https://github.com/actions/download-artifact) from 4 to 8.
- [Release notes](https://github.com/actions/download-artifact/releases)
- [Commits](https://github.com/actions/download-artifact/compare/v4...v8)

---
updated-dependencies:
- dependency-name: actions/download-artifact
  dependency-version: '8'
  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>
2026-04-07 10:46:57 -05:00
dependabot[bot] 68d6ca7edc Bump actions/upload-artifact from 4 to 7 (#4315)
Bumps [actions/upload-artifact](https://github.com/actions/upload-artifact) from 4 to 7.
- [Release notes](https://github.com/actions/upload-artifact/releases)
- [Commits](https://github.com/actions/upload-artifact/compare/v4...v7)

---
updated-dependencies:
- dependency-name: actions/upload-artifact
  dependency-version: '7'
  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>
2026-04-07 10:46:37 -05:00
Chris Titus 00fbd0e86d chore: Update generated dev docs (#4326) 2026-04-07 10:46:13 -05:00
Gabi c24ea5e53b Update Invoke-WinUtilISO.ps1 (#4314) 2026-04-07 10:46:11 -05:00
Gabi 786c7c677d Make WPFTweaksRemoveCopilot only remove copilot (#4310) 2026-04-07 10:45:44 -05:00
Sean (ANGRYxScotsman) c9e9214fd6 added next and previous (#4323)
Co-authored-by: Chris Titus <contact@christitus.com>
2026-04-07 10:38:37 -05:00
Sean (ANGRYxScotsman) b7f6a8cebe fixed more 404 errors (#4322)
* fixed 404 errors

* updated page

* Update _index.md
2026-04-07 10:37:37 -05:00
Gabi 355bd17b88 Added veravrypt and cryptomator and hugo to applications.json (#4305)
* Added veravrypt to applications.json

* Added hugo to applications.json

* Update applications.json
2026-04-07 10:36:14 -05:00
potato 6198bb2cdd feat: add uv to installable applications (#4304) 2026-04-07 10:35:37 -05:00
Chris Titus 6a495411e8 chore: Update generated dev docs (#4325) 2026-04-07 10:31:58 -05:00
Gabi 8f830a59df Update tweaks.json (#4303) 2026-04-07 10:31:25 -05:00
Chris Titus e4dd305084 fix release drafter 2026-04-02 15:49:39 -05:00
Gabi 01c808ab42 Fixed AmbieWhiteNoise's id (#4298)
* Removed AmbieWhiteNoise from applications.json

* Update applications.json
2026-04-02 15:31:40 -05:00
Chris Titus d2c9bc8751 formatting fixes 2026-04-02 15:30:12 -05:00
Gabi 7f105a58bb Update Invoke-WinUtilRemoveEdge.ps1 (#4291)
* Update Invoke-WinUtilRemoveEdge.ps1

* Update Invoke-WinUtilRemoveEdge.ps1

* Merge branch 'ChrisTitusTech:main' into patch-12
2026-04-02 15:24:18 -05:00
Chris Titus 838b0c1a1b chore: Update generated dev docs (#4301) 2026-04-02 15:17:58 -05:00
Gabi e0118aabe5 Added WPFFixesNTPPool (#4290)
* Added WPFFixesNTPPool

* Create Invoke-WPFFixesNTPPool.ps1

* Update Invoke-WPFFixesNTPPool.ps1

* Update Invoke-WPFFixesNTPPool.ps1

* Update Invoke-WPFFixesNTPPool.ps1

* Merge branch 'ChrisTitusTech:main' into patch-11

* Update NTP server to pool.ntp.org for improved synchronization
2026-04-02 15:17:27 -05:00
Gabi 9535302e6d Fix issue #4285 (#4289)
* Update Invoke-WPFFeatureInstall.ps1

* Merge branch 'ChrisTitusTech:main' into patch-10
2026-04-02 15:08:51 -05:00
Gabi 1eba305fab Update Invoke-WPFUpdatesdisable.ps1 to not require a restart (#4288)
* Update Invoke-WPFUpdatesdisable.ps1 to not require a restart

* Update Invoke-WPFUpdatesdisable.ps1

* Update Invoke-WPFUpdatesdefault.ps1

* Merge branch 'ChrisTitusTech:main' into patch-9
2026-04-02 15:07:34 -05:00
makhlwf 74f990028f fix: improve screen reader accessibility by naming control containers (#4287) 2026-04-02 15:06:39 -05:00
Chris Titus e94742a77d chore: Update generated dev docs (#4300) 2026-04-02 14:53:03 -05:00
Gabi fb6ef49a83 Remove not recommended from WPFTweaksDeBloat tweak (#4276)
* Update tweaks.json

* Update tweaks.json

* fix typo

* Merge branch 'ChrisTitusTech:main' into patch-2
2026-04-02 14:52:37 -05:00
Pere Gomila ab00ff2710 Add 'foss' key to NodeJS LTS in applications.json (#4272)
Added 'foss' key to NodeJS LTS application entry.
2026-04-02 14:51:05 -05:00
Gabi 50d8a8656b Make Security Updates tell the truth (#4269)
* Make Security Updates tell the truth

* Merge branch 'ChrisTitusTech:main' into patch-6
2026-04-02 14:36:26 -05:00
Gabi 1cd918cbe1 Remove OneDrive startup entry (#4253)
* Remove Onedrive startup entry

* Merge branch 'ChrisTitusTech:main' into patch-1

* Merge branch 'ChrisTitusTech:main' into patch-1

* Merge branch 'main' into patch-1
2026-04-02 14:28:06 -05:00
Sean (ANGRYxScotsman) bc2f6ce8f7 fix win11 Creator 404 error and site update (#4296)
* Update _index.md

* theme update
2026-04-02 14:23:20 -05:00
github-actions[bot] c1fe9c6b88 Update sponsors in README (#4283)
Co-authored-by: ChrisTitusTech <7896101+ChrisTitusTech@users.noreply.github.com>
2026-03-31 10:40:09 -05:00
dependabot[bot] d0899b4f29 Bump actions/configure-pages from 5 to 6 (#4281)
Bumps [actions/configure-pages](https://github.com/actions/configure-pages) from 5 to 6.
- [Release notes](https://github.com/actions/configure-pages/releases)
- [Commits](https://github.com/actions/configure-pages/compare/v5...v6)

---
updated-dependencies:
- dependency-name: actions/configure-pages
  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>
2026-03-31 10:39:41 -05:00
dependabot[bot] 3c8459f31f Bump actions/deploy-pages from 4 to 5 (#4280)
Bumps [actions/deploy-pages](https://github.com/actions/deploy-pages) from 4 to 5.
- [Release notes](https://github.com/actions/deploy-pages/releases)
- [Commits](https://github.com/actions/deploy-pages/compare/v4...v5)

---
updated-dependencies:
- dependency-name: actions/deploy-pages
  dependency-version: '5'
  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>
2026-03-31 10:39:16 -05:00
Gabi 0c38d420ee Removed WaaSMedicSvc from Invoke-WPFUpdatesdisable.ps1 (#4267) 2026-03-31 10:38:49 -05:00
Chris Titus e63d75e398 chore: Update generated dev docs (#4293) 2026-03-31 10:35:12 -05:00
Gabi 01d24bdf31 They added more widget services so... (#4262) 2026-03-31 10:34:33 -05:00
Vaso 12abc7f281 Removing Borderless Gaming and updating UnigetUI (#4259)
* Update applications.json

* Remove Borderless Gaming

* Update UniGetUI code for their link and winget

---------

Co-authored-by: Vaso <92270244+VasoHD@users.noreply.github.com>
2026-03-31 10:33:47 -05:00
Chris Titus 10906e037e chore: Update generated dev docs (#4292) 2026-03-31 10:33:09 -05:00
Paweł Gwozdowski b43a712e9b Update UniGetUI winget id (#4231)
* Update applications.json

* Update applications.json

* Update applications.json

* Update applications.json

* Update applications.json
2026-03-31 10:32:51 -05:00
B1ack3ye ed74dc51b5 Update tweaks.json (#4256)
Disable Edge default browser campaign via policy
2026-03-31 10:32:32 -05:00
Paweł Gwozdowski 6b83f1da51 Update UniGetUI winget id (#4231)
* Update applications.json

* Update applications.json

* Update applications.json

* Update applications.json

* Update applications.json
2026-03-31 10:29:33 -05:00
Gabi 24c6706ab2 Update Invoke-WinUtilSSHServer.ps1 (#4254)
* Update Invoke-WinUtilSSHServer.ps1

* fix: correct ssh-agent restart, use USERPROFILE path, add sshd_config idempotency check

* Cleanup for Invoke-WinUtilSSHServer.ps1

* Update Invoke-WinUtilSSHServer.ps1

* Merge branch 'ChrisTitusTech:main' into patch-2

* Update Invoke-WinUtilSSHServer.ps1

* Update Invoke-WinUtilSSHServer.ps1

* Merge branch 'main' into patch-2

* Update Invoke-WinUtilSSHServer.ps1

* typo
2026-03-27 08:26:36 -05:00
Chris Titus f4703284ef chore: Update generated dev docs (#4264) 2026-03-26 15:26:48 -05:00
Paweł Gwozdowski 0028e439b5 Cleaned up typos, fixes grammatical errors and other related fixes (#4215)
* cleaned up typo, fixes, grammatical and other related fixes (#2)

* typo in Lightshot app name

* remove trailing comma in applications.json

* consistent capitalization of Windows, WinGet - only user-facing text

	- includes update to devdocs-generator.ps1, so docs for tweaks modifying registry will have `Windows settings` rather than `windows settings`

* various fixes for typos, style, punctuation and capitalization

* capitalize 'AM'

* Update README.md

change formatting for GitHub UI interaction form code format (` `) to bold md

Co-authored-by: Jay <65828559+Jay-o-Way@users.noreply.github.com>

* typos and wording in docs

---------

Co-authored-by: Jay <65828559+Jay-o-Way@users.noreply.github.com>
2026-03-26 15:26:21 -05:00
Gabi 37529a5659 Added mpc-qt and qview and TeamSpeak 3 and ecm to applications.json (#4211)
* Added mpc-qt and qview to applications.json

* Update applications.json

* Added teamspeak3

* added ecm
2026-03-26 15:23:35 -05:00
Chris Titus 2dbf3d71c0 chore: Update generated dev docs (#4258) 2026-03-25 21:29:07 -05:00
Chris Titus ef226ac272 chore: Update generated dev docs (#4257) 2026-03-25 21:22:41 -05:00
Ivan Lepekha 1f7f653568 Typo fix WPFTweaksXboxRemoval (#4248) 2026-03-25 21:22:06 -05:00
Mochi 9bd5a2541d Add Ruby and Lua entries (#4240)
* Add Opera, OperaGX, Ruby and Lua entries

Update applications.json to include two new browser entries (Opera, OperaGX) and two development runtime entries (Ruby, Lua).

* Remove Opera and OperaGX from applications.json

Removed entries for Opera and OperaGX from applications list.
2026-03-25 21:21:35 -05:00
github-actions[bot] c2dbcda2d5 Update sponsors in README (#4238)
Co-authored-by: ChrisTitusTech <7896101+ChrisTitusTech@users.noreply.github.com>
2026-03-25 21:20:39 -05:00
Vaso 0bd333dd47 Update applications.json (#4217) 2026-03-25 21:17:46 -05:00
Sean (ANGRYxScotsman) 6188447348 updated docs (#4203)
* updated docs

* Update KnownIssues.md

* Update faq.md

* Update _index.md

* Update _index.md

* Update _index.md

* Update faq.md

* Update faq.md

* Update faq.md
2026-03-25 21:17:09 -05:00
dependabot[bot] edfed488e8 Bump release-drafter/release-drafter from 6 to 7 (#4226)
Bumps [release-drafter/release-drafter](https://github.com/release-drafter/release-drafter) from 6 to 7.
- [Release notes](https://github.com/release-drafter/release-drafter/releases)
- [Commits](https://github.com/release-drafter/release-drafter/compare/v6...v7)

---
updated-dependencies:
- dependency-name: release-drafter/release-drafter
  dependency-version: '7'
  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>
2026-03-19 23:30:33 -05:00
Chris Titus 8d1f7d509a chore: Update generated dev docs (#4234) 2026-03-19 23:29:25 -05:00
Gabi 0a642be3b4 opps (#4220) 2026-03-19 23:28:56 -05:00
github-actions[bot] d3f9584892 Update sponsors in README (#4212)
Co-authored-by: ChrisTitusTech <7896101+ChrisTitusTech@users.noreply.github.com>
2026-03-19 23:22:54 -05:00
Gabi a05034381d Update Win11 Creator (#4196)
* Update autounattend.xml

* Update autounattend.xml

* Updated autounattend.xml to disable reccomened section

* Update autounattend.xml
2026-03-13 10:18:36 -05:00
Chris Titus b1d4eb022c Fix mount disk error (#4204)
* wait for mounting to assign disk letter

* update

* Gabi fixing my slop with a comment
2026-03-12 15:45:42 -05:00
Gabi 3dbd993cb4 Update bug_report.yaml (#4206) 2026-03-12 15:27:37 -05:00
Gabi ec17c085df Fix: Prevent Win11 Creator UI reset when switching tabs during ISO Creation (#4199)
* Fix: Prevent Win11 Creator UI reset when switching tabs during ISO modification

* Update Invoke-WinUtilISO.ps1
2026-03-12 15:09:52 -05:00
Chris Titus 7da4e78d4b chore: Update generated dev docs (#4205) 2026-03-12 15:09:30 -05:00
Gabi 1943b30ec9 Make WPFTweaksRevertStartMenu more understandable and move it to essential tweaks (#4202)
* Make WPFTweaksRevertStartMenu more understandable

* Update tweaks.json
2026-03-12 15:08:56 -05:00
Chris Titus 6df8ae900c chore: Update generated dev docs (#4192) 2026-03-11 16:30:50 -05:00
Gabi a16f4b7d07 Update WPFTweaksXboxRemoval (#4170)
* Update WPFTweaksXboxRemoval

* Update tweaks.json
2026-03-11 16:30:00 -05:00
Chris Titus adaab0ab36 chore: Update generated dev docs (#4191) 2026-03-11 16:26:43 -05:00
Gabi c270d25460 Added WPFTweaksDisableStoreSearch (#4173)
* Added WPFTweaksDisableStoreSearch

* Update tweaks.json
2026-03-11 16:26:06 -05:00
Eren 2bb007b6ff Fix import / export config issue (#4189)
* apply toggle fix

* apply fix that disables all toggles outside of config
2026-03-11 16:23:32 -05:00
Garratt 34f29dd04c - Added AI-Automation download section. (#4159)
* - Added AI-Automation download section
- Fixed typo in CONTRIBUTING.md teminal -> terminal

* Move Cursor to Development

* Move AutoHotkey back to Utilities
2026-03-11 10:31:33 -05:00
Gabi ccb43bfe91 Added some apps to applications.json (#4146)
* Add Overwolf and Logitech G Hub to applications.json

* Added citrixworkspaceapp and pdf-xchange to applications.json

* Added visualstudio2026
2026-03-11 10:30:15 -05:00
Chris Titus 1d401b2e02 initial fix (#4178) 2026-03-11 10:29:38 -05:00
Gabi d8f6a8c50b Cleanup alot of old issues in KnownIssues.md (#4181)
* Cleanup alot of old issues in KnownIssues.md and add Windows Version

* Update KnownIssues.md

* Update KnownIssues.md
2026-03-11 10:25:34 -05:00
Sean (ANGRYxScotsman) 3da0221fb4 removed windows 10 reference and pages edits (#4185)
* removed any windows 10 reference

* update links

* page clean up

* Update _index.md

* clean up getting started page

* clean up more pages

* Update faq.md

* Update _index.md

* more clean up
2026-03-11 10:24:46 -05:00
Sean (ANGRYxScotsman) a30664002b added doc link to settings menu (#4156) 2026-03-06 08:29:20 -06:00
Chris Titus 5e78391518 chore: Update generated dev docs (#4163) 2026-03-06 08:29:10 -06:00
Sean (ANGRYxScotsman) 2d2497408f Website updated to latest version (#4157)
* updated theme to latest version

* updated tabs to the new way

* added missing frontmatter to pages

* updated hugo version

* edited the file structure

* revert back to old way

* Update _index.md

* fix typo and made sure it was upto date

* updated docs

* clean up navbar

* Update en.yaml
2026-03-06 08:28:34 -06:00
Gabi d2dbf03572 Update Invoke-WPFFixesWinget.ps1 (#4160) 2026-03-05 16:39:50 -06:00
Chris Titus 88c68fd411 update bug report 2026-03-04 15:50:00 -06:00
Chris Titus e82aaf03f0 update bug report 2026-03-04 15:46:18 -06:00
Chris Titus 9a77fed09b minimize feature request template 2026-03-04 15:29:48 -06:00
Chris Titus 336ac6fb8f remove key flag from unattended (#4154) 2026-03-04 15:14:16 -06:00
Gabi 72ad35bbd8 Remove product key from autounattend.xml (#4152) 2026-03-04 12:26:53 -06:00
Chris Titus df17ca4695 Fix offline mode (#4153)
* Fix usb error on drive with no existing partitions

* fix offline mode

* Add offline banner
2026-03-04 12:21:18 -06:00
Chris Titus 7f46e8d60d Fix usb error on drive with no existing partitions (#4151) 2026-03-04 11:44:10 -06:00
Chris Titus 9769cafa7d change willshow ui (#4150) 2026-03-04 09:25:54 -06:00
Chris Titus 42dfc8c82b fix write failure on letter assignment from failed usb format 2026-03-04 09:21:39 -06:00
Gabi d13295bdd8 Update start.ps1 (#4141) 2026-03-03 14:25:14 -06:00
Sean (ANGRYxScotsman) 5fc566b46f Winutil website edit (#4140)
* updated the iso creator docs

* added creator info to the arch docs
2026-03-03 09:17:19 -06:00
Chris Titus b493737982 Win11 Creator USB and Log Fixes (#4139)
* initial usb fixes

* fix full button width

* Cleanup and Verbose output for copy

* expand ui and fix clean and reset

* Add minimal driver injection

* initial driver support

* fix verbage

* fix syntax error

* create log file on iso generation

* inject to boot.wim for install

* fix single driver install issues

* fix first run probs

* cleanup injection

* improve clean up

* Fix OSCDIMG output and cleanup comments

* Fix Scrollviewer in Status Log

* large drive support and change to Exfat

* Fix BOOT for older UEFI and Add error checks for small usb drives

* fix single usb drive error
2026-03-03 00:19:37 -06:00
Chris Titus 7ceb303f00 chore: Update generated dev docs (#4138) 2026-03-02 13:08:27 -06:00
Paweł Gwozdowski 30c9812d37 Fix typos and inconsistent punctuation in tweaks & apps descriptions (#4136)
* Update tweaks.json

* Update applications.json

* Update feature.json

* Update tweaks.json

* Update tweaks.json

* more typos

* Update applications.json
2026-03-02 13:07:54 -06:00
KamaleiZestri ddc10b0935 Unite preferences (#4133)
* One preference file

* Set default before converting types
2026-03-02 13:05:43 -06:00
Chris Titus a2e2395ce9 chore: Update generated dev docs (#4137) 2026-03-02 13:05:08 -06:00
Gabi ce5e407a76 Add WPFToggleStandbyFix (#4132)
* Add WPFToggleStandbyFix

* Update config/tweaks.json

Co-authored-by: Paweł Gwozdowski <kernea.g@proton.me>

---------

Co-authored-by: Paweł Gwozdowski <kernea.g@proton.me>
2026-03-02 13:04:34 -06:00
Eren 3fb5c04693 Fix import/export functionality (#4131)
* fix: cast selections to string to prevent PSCustomObject type issues

* fix(presets): clear existing selections before importing to replace state instead of merging

* refactor(impex): warn user when exporting empty selections or importing empty config
2026-03-02 13:02:48 -06:00
Sean (ANGRYxScotsman) 58dacd5b0b New win 11 Creator page (#4115)
* made Win 11 Creator page

* update store to application
2026-02-25 13:50:36 -06:00
Chris Titus 14ad9f7fea Win11 iso (#4113)
* Tab creation

* scaffold outline for the iso tab

* autounattended creation

* inital modification success

* iso save success

* cleanup and iso improvements

* fix startmenu on new 26h2

* remove old first startup

* Fix run for use

* fix unapproved verb

* Keep step 4 output expanded

* update auto-merge

* Cleanup

* remove out-null and trailing whitespace

* explain modify and creator button

* fix scroll to end

* remove workflow change

* fix home updates
2026-02-24 15:50:41 -06:00
Gabi 52afab2252 Remove edge (#4112) 2026-02-24 15:40:41 -06:00
Chris Titus 2ba3a5d324 Win11 ISO Creator (#4110)
* Tab creation

* scaffold outline for the iso tab

* autounattended creation

* inital modification success

* iso save success

* cleanup and iso improvements

* fix startmenu on new 26h2

* remove old first startup

* Fix run for use

* fix unapproved verb

* Keep step 4 output expanded

* update auto-merge

* Cleanup

* remove out-null and trailing whitespace

* explain modify and creator button

* fix scroll to end

* remove workflow change
2026-02-24 15:28:49 -06:00
Chris Titus f854d14117 chore: Update generated dev docs (#4105) 2026-02-23 18:28:56 -06:00
Chris Titus 19204534a2 Add --admin flag to auto-merge command 2026-02-23 18:28:25 -06:00
Chris Titus a9d9b148db Change GH_TOKEN to use AUTO_MERGE secret 2026-02-23 18:26:20 -06:00
Chris Titus Tech d5d0bf25f0 automerge docs 2026-02-23 14:53:46 -06:00
Chris Titus Tech da3fd87f9a revise approval 2026-02-23 14:46:15 -06:00
Chris Titus Tech 9e8cefc973 fix automerge 2026-02-23 14:43:52 -06:00
Gabi a532e9ec9d Remove WPFTweaksDisableExplorerAutoDiscovery From Minimal Preset (#4081)
* WPFTweaksDisableExplorerAutoDiscovery Shouldn't not be deafult

* Update preset.json

* Update tweaks.json

* Update config/tweaks.json

Co-authored-by: Paweł Gwozdowski <kernea.g@proton.me>

---------

Co-authored-by: Paweł Gwozdowski <kernea.g@proton.me>
2026-02-23 10:17:01 -06:00
dependabot[bot] 844979fee7 Bump peter-evans/create-pull-request from 6 to 8 (#4104)
Bumps [peter-evans/create-pull-request](https://github.com/peter-evans/create-pull-request) from 6 to 8.
- [Release notes](https://github.com/peter-evans/create-pull-request/releases)
- [Commits](https://github.com/peter-evans/create-pull-request/compare/v6...v8)

---
updated-dependencies:
- dependency-name: peter-evans/create-pull-request
  dependency-version: '8'
  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>
2026-02-23 09:23:33 -06:00
Sean (ANGRYxScotsman) 78302934ef updated workflows for automation (#4102)
* updated workflows for automation

* added back the debug logs

* Update docs.yaml

* Update pre-release.yaml
2026-02-22 21:25:59 -06:00
Gabi 349889b194 Minor format changes for Invoke-WPFSystemRepair.ps1 (#4100)
* Format changes

* Update Invoke-WPFSystemRepair.ps1
2026-02-22 17:31:54 -06:00
Raphaël c619f3a830 Add more development tools to applications.json (#4093)
* Add .NET Desktop Runtime 10 to applications.json

* Add LLVM to applications.json

* Add NASM to applications.json
2026-02-22 17:30:43 -06:00
KamaleiZestri d005a225a2 NoUI mode and Concurrency edits (#4092)
* Autorun changes

* Missed a handle

* Remove todo

---------

Co-authored-by: Chris Titus <dfm.titus@gmail.com>
2026-02-22 17:28:55 -06:00
Gabi e79e946e76 Remove incorrect infromaiton from WPFTweaksRazerBlock (#4082) 2026-02-22 17:23:19 -06:00
github-actions[bot] 3b957e1a77 Update sponsors in README (#4095)
Co-authored-by: ChrisTitusTech <7896101+ChrisTitusTech@users.noreply.github.com>
2026-02-22 17:21:52 -06:00
Gabi d078d67b1d Remove debug option (#4094)
* Remove debug option

* Remove debug option
2026-02-22 17:21:32 -06:00
Gabi 191fe95572 Update-KnownIssues.md (#4096)
* Update KnownIssues.md

* Update KnownIssues.md
2026-02-22 17:20:39 -06:00
Sean (ANGRYxScotsman) d10c9413ac Update devdocs-generator (#4091)
* Update devdocs-generator.ps1

* made new dir

* Update devdocs-generator.ps1

* Update devdocs-generator.ps1
2026-02-22 17:19:43 -06:00
Chris Titus e93753e5c9 Json-Cleanup-Expansion (#4090)
* initial cleanup

* remove winutilgpu
2026-02-22 17:19:04 -06:00
Gabi 5eec99df1c Fix title screen image url (#4087) 2026-02-18 15:29:41 -06:00
Gabi 7e2ba41b8b Update inputXML.xaml (#4089) 2026-02-18 15:29:14 -06:00
Chris Titus d3dc3e7976 Merge branches 'main' and 'main' of https://github.com/ChrisTitusTech/winutil 2026-02-18 14:44:33 -06:00
Gabi 5a4d822710 Fix more images in CONTRIBUTING.md (#4086) 2026-02-18 14:44:19 -06:00
Chris Titus 2625478ef3 assign docs label 2026-02-18 14:41:00 -06:00
github-actions[bot] 956a544c2e Update generated documentation (#4084)
Co-authored-by: ChrisTitusTech <7896101+ChrisTitusTech@users.noreply.github.com>
2026-02-18 14:33:39 -06:00
Gabi 50dbf5bd05 Fix fork image (#4085) 2026-02-18 14:32:29 -06:00
Gabi 338c3e7e57 Add warning to WPFToggleStartMenuRecommendations (#4083) 2026-02-18 14:31:38 -06:00
Gabi 1a0e084d7e Add Undoscript to WPFToggleTaskbarAlignment (#4079) 2026-02-18 14:23:09 -06:00
Gabi 89147414a0 Fix WPFTweaksRemoveCopilot's InvokeScript (#4077) 2026-02-18 14:22:23 -06:00
Gabi ae4b3f3ac7 Remove file missing error from running complie.ps1 (#4078)
* Remove Validatsion of the ExcludedItems List From complie.ps1 and remove annoying warning

* Update Invoke-Preprocessing.ps1
2026-02-18 14:21:45 -06:00
Chris Titus 043ec9abe0 Merge branch 'main' of https://github.com/ChrisTitusTech/winutil 2026-02-18 14:18:55 -06:00
Chris Titus 5c92fcbde5 delete branch after it merges 2026-02-18 14:18:53 -06:00
github-actions[bot] b1094c9177 chore: Update Generated Dev Docs (#4076)
* Update generated documentation

* trigger workflow

---------

Co-authored-by: ChrisTitusTech <7896101+ChrisTitusTech@users.noreply.github.com>
Co-authored-by: Chris Titus <contact@christitus.com>
2026-02-18 20:17:33 +00:00
Chris Titus 9ab1c6bbd3 automerge pat 2026-02-18 14:16:07 -06:00
Chris Titus 97d3ada895 update auto merge 2026-02-18 14:11:15 -06:00
Chris Titus 8212b3ed5e Merge branch 'main' of https://github.com/ChrisTitusTech/winutil 2026-02-18 13:57:50 -06:00
Chris Titus d410667c6d auto approve docs 2026-02-18 13:57:48 -06:00
Gabi e51e345438 Update tweaks.json (#4074) 2026-02-18 12:40:53 -06:00
github-actions[bot] 3404f185f1 Update generated documentation (#4075)
Co-authored-by: ChrisTitusTech <7896101+ChrisTitusTech@users.noreply.github.com>
2026-02-18 12:37:09 -06:00
Chris Titus f15c212df5 no persist on perms workflow 2026-02-18 12:34:23 -06:00
Chris Titus 152c157b51 fix docs to create pr 2026-02-18 12:31:08 -06:00
Sean (ANGRYxScotsman) 80e54a0ea5 updated doc workflow (#4069)
* updated workflow

* changed the commit message

* fixed spacing in copyright

i will notice these issues before committing in future lol

* Update devdocs-generator.md
2026-02-18 11:51:44 -06:00
Gabi 7fb1643378 Someone touched my perfect code for WPFTweaksRemoveCopilot (#4068) 2026-02-18 11:45:05 -06:00
Eren f6c0c9682c apply escaping (#4071) 2026-02-18 11:44:42 -06:00
github-actions[bot] b7ef73cb10 Update sponsors in README (#4073)
Co-authored-by: ChrisTitusTech <7896101+ChrisTitusTech@users.noreply.github.com>
2026-02-18 11:17:51 -06:00
Chris Titus 0b76ab3aa4 verbose checks for if PR is needed 2026-02-18 11:14:52 -06:00
Chris Titus 436e3c353e persist creds 2026-02-18 11:10:57 -06:00
Chris Titus 50ca97575b update perms 2026-02-18 11:08:56 -06:00
Chris Titus 618561e5cf update to pr for sponsors 2026-02-18 10:59:30 -06:00
Chris Titus 725244c28e change to issue pr 2026-02-18 10:52:46 -06:00
Chris Titus d4c768315b update sponsors 2026-02-18 10:45:21 -06:00
Gabi e909d1a847 Delete WPFTweaksLaptopHibernation (#4066) 2026-02-17 14:24:29 -06:00
Gabi dcfa68476a Add-WPFTweaksRevertStartMenu (#4023)
* Add WPFTweaksRevertStartMenu

* Create revertstartmenu.md

* Update tweaks.json

* Update tweaks.json

* Update tweaks.json

* Update revertstartmenu.md

* Update tweaks.json

* Update tweaks.json

* Update revertstartmenu.md

* Update tweaks.json
2026-02-17 13:49:54 -06:00
Eren 60d31a1fe0 Hightlight FOSS Apps (#4065)
* add foss tag functionality

* update applications

* update

* update

* fix

* update

* update

* fix formatting
2026-02-17 13:35:26 -06:00
Gabi 5476cd928f Fix WPFTweaksEdgeDebloat block copilot not working (#4063)
* Fix WPFTweaksEdgeDebloat block copilot not working

* Update tweaks.json

* Update tweaks.json

* Update tweaks.json
2026-02-17 13:31:44 -06:00
Gabi 84f2046912 Update-WPFTweaksWidget (#4058)
* Update WPFTweaksWidget how did you miss this chris?

* Fix WPFTweaksWidget not working
2026-02-17 13:30:37 -06:00
Gabi 586fd56603 Update-Invoke-WPFSystemRepair.ps1 (#4043)
* Update Invoke-WPFSystemRepair.ps1

* Update Invoke-WPFSystemRepair.ps1

* add chkdsk back in to tell users if there disk is broken

* Merge branch 'Update-Invoke-WPFSystemRepair' of https://github.com/gabinun/winutil into pr/GabiNun/4043

* add doc
2026-02-17 12:55:51 -06:00
KamaleiZestri 70a94abe02 Decoupled UI and data (#4051)
* Decoupled UI and data

* Fix bad variable naming

* Fix mistype

* Fix mistype v2

Editing from mobile is hard
2026-02-17 12:39:44 -06:00
KamaleiZestri 0e41122d89 More microwin files to delete (#4050) 2026-02-17 12:31:23 -06:00
Gabi 4e7416a2dc Remove Adobe Creative Cloud (#4048)
* Delete functions/public/Invoke-WPFRunAdobeCCCleanerTool.ps1

* Update feature.json
2026-02-17 12:30:38 -06:00
Gabi 61a6265cf9 Fix WPFTweaksBlockAdobeNet (#4042)
* Fix WPFTweaksBlockAdobeNet

* Update tweaks.json
2026-02-17 12:29:41 -06:00
Sean (ANGRYxScotsman) 5582c3cb44 More winutil docs update (#4038)
* updated the gen to add a blackline under the frontmatter and added .md file in the same location with breakdown on what the script does

* copyright fix.

found out the reason why it rendered correctly on my pc and not with site builder. it was because we use --minify for the site builder and i have not been using that on the local instance

* Update pre-release.yaml

* Update en.yaml
2026-02-17 12:28:36 -06:00
Gabi 08b24c7187 Change 'Get Installed' to 'Show Installed Apps' (#4027)
* Update appnavigation.json

* Update _index.md

* Update inputXML.xaml

* Update Invoke-WinUtilCurrentSystem.ps1

* Update Invoke-WinUtilCurrentSystem.ps1
2026-02-12 14:37:11 -06:00
KamaleiZestri 5fcc288037 Disable Sticky Keys shortcut added to toggle (#4028)
* disable sticky keys shortcut

* Merge branch 'main' into sticky
2026-02-12 14:36:17 -06:00
Gabi 8e8b0bb296 Make WPFToggleTaskbarAlignment restart explorer (#4034) 2026-02-12 14:35:31 -06:00
Eren be8d20d478 export and import toggle switch states in config JSON (#4037)
* feat: add support for importing and exporting WPFToggle checkbox states.

* feat: add export and import

* remove unnecessary buttons from tweaks tab

* Merge branch 'main' into feature/import-export

* Merge branch 'main' into feature/import-export
2026-02-12 14:34:28 -06:00
Sean (ANGRYxScotsman) 9b03b94435 more winutil website update and new features (#4030)
* updated theme to the latest version

* Update en.yaml

* removed all the order from the docs

* add the store link

* update homepage

* add filename and line number to all the code blocks and also removed pages

* auto pull the code from the json files

* Merge branch 'main' into winutil-new-features

* the script updated linenostart=

* Delete LaptopHibernation.md
2026-02-12 14:33:11 -06:00
Eren 9d841687e3 Fix winget package uninstallation issues (#4036)
* refactor: refine Program parameter type to string

* refactor: rename `Invoke-WPFRunspace` parameter `ArgumentList` to `ParameterList`
2026-02-12 13:52:09 -06:00
Gabi 20046d4b73 Delete-WPFTweaksLaptopHibernation (#4031)
* Update tweaks.json

* Delete docs/content/dev/tweaks/Essential-Tweaks/LaptopHibernation.md

---------

Co-authored-by: Chris Titus <dfm.titus@gmail.com>
2026-02-11 09:31:05 -06:00
Eren b2ccb3669b Content-based Automatic Sorting (#4022)
* Implement Auto-sorting instead of manually defining order

* ffix visual bugs
2026-02-11 09:28:09 -06:00
Sean (ANGRYxScotsman) aaed116798 added frontmatter to pages (#4024)
* added frontmatter to widget.md

* update more pages

* updated copyright to automatically pull the year
2026-02-10 17:59:31 -06:00
Gabi 354b09ec0d Fix-WPFTweaksWidget (#4025)
* Fix WPFTweaksWidget

* Update Widget.md
2026-02-10 17:56:10 -06:00
Sean (ANGRYxScotsman) cfde1b5a92 Edited some things i forgot to do (#4019)
* move debloat edge to z--advanced-tweaks---caution

* updated frontmatter on the pages i have the shortcodes
2026-02-10 14:32:17 -06:00
Gabi 4ebe1a3535 Update WPFTweaksRemoveOneDrive to remove OneSyncSvc Service (#3991)
* Update tweaks.json

* Update RemoveOneDrive.md

* Update RemoveOneDrive.md

* Update tweaks.json

* Update RemoveOneDrive.md
2026-02-10 14:22:32 -06:00
Gabi 6708756574 Add xbox removal tweak (#4013)
* Update tweaks.json

* Create XboxRemoval.md

* Update tweaks.json

* Update XboxRemoval.md

* Update tweaks.json
2026-02-10 14:21:33 -06:00
Gabi 301059fd3f Add/remove a few packages to WPFTweaksDeBloat (#4012)
* Add/remove a few packages from WPFTweaksDeBloat

* Update DeBloat.md

* Update DeBloat.md

* Update tweaks.json

* Update tweaks.json

* Update DeBloat.md
2026-02-10 14:19:35 -06:00
dependabot[bot] df8d92cf11 Bump actions/github-script from 7 to 8 (#4011)
Bumps [actions/github-script](https://github.com/actions/github-script) from 7 to 8.
- [Release notes](https://github.com/actions/github-script/releases)
- [Commits](https://github.com/actions/github-script/compare/v7...v8)

---
updated-dependencies:
- dependency-name: actions/github-script
  dependency-version: '8'
  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>
2026-02-10 14:18:42 -06:00
Chris Titus Tech 6cda509604 fix formatting 2026-02-10 14:18:09 -06:00
KamaleiZestri 8a8fed517c Unify $winutildir (#4004) 2026-02-10 14:14:20 -06:00
Gabi 681f0ec3b9 Change WinUtilInstallPSProfile to use pwsh (#3998)
* Update Invoke-WinUtilInstallPSProfile.ps1

* Update Invoke-WinUtilInstallPSProfile.ps1

* Update Invoke-WinUtilInstallPSProfile.ps1

* Update Invoke-WinUtilInstallPSProfile.ps1

* Update Invoke-WinUtilInstallPSProfile.ps1

* Mention that ps profile is pwsh only
2026-02-10 14:10:04 -06:00
Gabi 4a31af4faf Added WSAIFabricSvc to WPFTweaksServices (#3992)
* Added WSAIFabricSvc to WPFTweaksServices

* Update Services.md
2026-02-10 14:07:39 -06:00
Gabi 4ddb2795ff Update-WPFTweaksTelemetry (#3974)
* Update tweaks.json

* Update tweaks.json

* Update tweaks.json

* Update tweaks.json

* Update Telemetry.md

* Update tweaks.json

* Update Telemetry.md

* Update tweaks.json

* Update Telemetry.md

* Update tweaks.json
2026-02-10 14:03:02 -06:00
Gabi d5b5784492 Added More apps (#3961)
* Added sendme

* Update applications.json

* Update applications.json

* Update applications.json

* Added potplayer

* Update applications.json

* Update applications.json
2026-02-10 13:53:39 -06:00
Gabi 15d0b42165 Add links to tweaks without links (#3969)
* Create WPBT.md

* Create RazerBlock.md

* Update tweaks.json

* Update tweaks.json

* Create RemoveEdge.md

* Delete docs/content/dev/tweaks/Essential-Tweaks/RemoveEdge.md

* Create RazerBlock.md

* Delete docs/content/dev/tweaks/Essential-Tweaks/RazerBlock.md
2026-02-10 13:52:59 -06:00
Sean (ANGRYxScotsman) 8fc7d30112 more winutil website updates (#3967)
* changed autolinks to now use frontmatter instead off #heading

* updated all docs with front matter names

* Update DisableLegacyRecovery.md

this was the same as EnableLegacyRecovery file

* made sure pages have got the corrects scripts on them

* Update default.md

updated the archetype default to make sure every new page had the title and description automatically on the front matter

* Create BraveDebloat.md

* added brave debloat link to tweaks.json

* Update tweaks.json

* Update tweaks.json
2026-02-10 13:49:36 -06:00
QuadFeed a12ea71adb Update winget identifier for Zed application (#3966)
Changed from Zed.Zed to Zedindustries.Zed to fix install.
2026-02-10 13:48:00 -06:00
Gabi b00c7b1ea2 Add Remove widgets (#3962)
* Update tweaks.json

* Create Widget.md

* Update tweaks.json

* Update Widget.md

* Update tweaks.json

* Update Widget.md

* Update Widget.md

* Update tweaks.json

* Update tweaks.json

* Update Widget.md
2026-02-10 13:42:45 -06:00
Chris Titus Tech ef29ab9ffc remove hotfix 2026-02-10 13:41:42 -06:00
Chris Titus Tech 7219329d2c fix pr template to be clearer 2026-02-10 13:41:14 -06:00
Chris Titus 27b0a59abb Zeus-toggle-fix (#4017)
* Fix Get Installed toggle detection and multiple config bugs

Fixes the issue where "Get Installed" in the Tweaks tab was not correctly
pulling all toggle states, plus several additional config bugs discovered
during investigation.

Changes:
- Unified toggle detection logic using Get-WinUtilToggleStatus
- Fixed registry value detection (0 values were incorrectly treated as missing)
- Added DefaultState support for missing registry keys
- Fixed WPFTweaksUTC registry type (QWord → DWord)
- Fixed WPFTweaksServices startup types (TermService, VaultSvc: Automatic → Manual)
- Fixed duplicate order collisions in tweaks
- Fixed FFmpeg display name
- Improved OneDrive removal script reliability
- Improved Copilot removal script with wildcard pattern and null check
- Fixed code formatting (added spaces after if/Foreach statements)

Files changed:
- functions/private/Invoke-WinUtilCurrentSystem.ps1
- functions/private/Get-WinUtilToggleStatus.ps1
- config/tweaks.json
- config/applications.json

Fixes #3762
Fixes #3189
Fixes #3876
Potentially fixes #3008
Potentially fixes #3815

* Fix toggles

---------

Co-authored-by: Akhil Achanta <akhilachanta8@gmail.com>
2026-02-10 13:37:37 -06:00
Chris Titus 457f1820c4 Revert "Fix Get Installed toggle detection and multiple config bugs (#3959)" (#4016)
This reverts commit 414cd139e2.
2026-02-10 13:33:07 -06:00
Akhil Kumar Achanta 414cd139e2 Fix Get Installed toggle detection and multiple config bugs (#3959)
Fixes the issue where "Get Installed" in the Tweaks tab was not correctly
pulling all toggle states, plus several additional config bugs discovered
during investigation.

Changes:
- Unified toggle detection logic using Get-WinUtilToggleStatus
- Fixed registry value detection (0 values were incorrectly treated as missing)
- Added DefaultState support for missing registry keys
- Fixed WPFTweaksUTC registry type (QWord → DWord)
- Fixed WPFTweaksServices startup types (TermService, VaultSvc: Automatic → Manual)
- Fixed duplicate order collisions in tweaks
- Fixed FFmpeg display name
- Improved OneDrive removal script reliability
- Improved Copilot removal script with wildcard pattern and null check
- Fixed code formatting (added spaces after if/Foreach statements)

Files changed:
- functions/private/Invoke-WinUtilCurrentSystem.ps1
- functions/private/Get-WinUtilToggleStatus.ps1
- config/tweaks.json
- config/applications.json

Fixes #3762
Fixes #3189
Fixes #3876
Potentially fixes #3008
Potentially fixes #3815
2026-02-10 13:29:50 -06:00
Gabi e68e190ff3 Update-Compile (#3922)
* Update Compile.ps1

* Update Compile.ps1

* Update Compile.ps1

* Update Compile.ps1

* Update Compile.ps1

* Update Compile.ps1
2026-02-10 13:19:46 -06:00
Chris Titus 86097572b0 fix adobe hosts (#3955) 2026-02-10 12:53:16 -06:00
titus 94d45a30fa fix docs to only run on main branch and not forks 2026-02-09 12:30:07 -06:00
Gabi fcc5481477 Remove microwin (#3999)
* Delete microwin functions

* Update main.ps1

* Remove oscdimg.exe which is used by microwin

* Delete config/autounattend.xml

* Update .gitignore

* Update bug_report.yaml

* Update themes.json

* Update Invoke-WinUtilFontScaling.ps1

* Update Invoke-AutoConfigDialog.ps1

* Update Invoke-WPFButton.ps1

* Update inputXML.xaml

* Delete docs/assets/images/microwin directory

* Delete docs/assets/images/MicroWinScreen.png

* Delete docs/assets/images/Microwin-Dark.png

* Delete docs/assets/images/Microwin-Light.png

* Update faq.md

* Update KnownIssues.md

* Update getting-started.md

* Update _index.md

* Delete docs/content/userguide/microwin directory

* Update architecture.md

---------

Co-authored-by: Chris Titus <dfm.titus@gmail.com>
2026-02-06 10:29:10 -06:00
Chris Titus ac116d7083 New install gui (#3995)
* cleanup and checkbox addition

* Make collapsable categories

* finish new install GUI

* Fix search
2026-02-06 10:26:29 -06:00
Pádraic Slattery 68ab69a19c chore: Update outdated GitHub Actions version (#3980) 2026-02-04 18:51:28 -06:00
Gabi 29efb989bd Fix Links (#3965)
* Fix Links

* Update tweaks.json

* Update tweaks.json

* Update tweaks.json
2026-01-30 15:32:11 -06:00
Sean 99eb70d81b Docs, Winutil website update (#3947)
* Updated winutil website

add git ignore to not upload unnecessarily file. i have also updated microwin docs and added a copyright info to the footer

* Update _index.md

* Update KnownIssues.md

* Update links

update all the links for github to the corresponding pages. i have kept the original links aswell but commented out

* update hugo workflow to use version 0.147.0

* Update en.yaml

* update hugo toml to get rid off powered by

* Update docs.yaml

* Update KnownIssues.md

* Update KnownIssues.md

* Update KnownIssues.md

* Update compatibility note for MicroWin and Ventoy

* removed quad 9 dns

* fixed all the incorrect code block in markdown file

* Replace hardcoded page lists with auto-discovery shortcode

Created a new shortcode at docs/layouts/shortcodes/autolinks.html. This enables auto-discovery when creating new Markdown files, streamlining the workflow for future documentation updates.

* updated os requirements
2026-01-29 13:59:26 -06:00
Gabi 9013753d88 Remove snap assists toggles (#3954)
* Remove snap assists toggle

* Remove more snap stuff
2026-01-28 16:03:26 -06:00
Gabi 8ad96a9b6e Update tweaks.json (#3956) 2026-01-28 16:01:35 -06:00
titus 8ed3a31424 auto format and make categories for releases 2026-01-28 12:32:40 -06:00
titus 424d4030c1 add Gabi to close issues command 2026-01-28 12:14:01 -06:00
titus f88c9be70d u 2026-01-28 11:49:50 -06:00
titus bc4cd84127 update label pr 2026-01-28 11:47:41 -06:00
titus 54b4bcdda1 fix perms 2026-01-28 11:44:38 -06:00
Gabi c5c23d8d18 Update Compile.ps1 (#3914) 2026-01-28 11:37:53 -06:00
Gabi 28e84af33d Update tweaks.json (#3910) 2026-01-28 11:33:14 -06:00
Gabi 832af914e9 Update Microwin-NewFirstRun.ps1 (#3938) 2026-01-28 11:26:44 -06:00
Bagus Nugroho Budi Nurtomo 6d9ed9026d Disable Brave Stats Ping (#3951)
Signed-off-by: Bagus Nurtomo <bagusthanatos@gmail.com>
2026-01-28 11:23:33 -06:00
Gabi 9e877afe0e Update Services.md (#3950) 2026-01-28 11:21:56 -06:00
titus 0c0ced381a UPDATE CODEOWNERS 2026-01-28 11:21:06 -06:00
Chris Titus 8ebd127857 add flush dns (#3953) 2026-01-28 11:17:06 -06:00
Sean 25a392877f Update inputXML.xaml (#3943) 2026-01-28 11:09:01 -06:00
Gabi ef2c91b616 Add some apps from #1782 (#3948)
* Add imhex (Hex Editor)

* Add ffmpeg
2026-01-28 11:06:47 -06:00
Gabi b52ead87f4 Delete orig-services.txt (#3949) 2026-01-28 11:05:29 -06:00
titus 2dcfc2b109 auto-label and fix pr template 2026-01-28 11:03:02 -06:00
Akhil Kumar Achanta 59a9c59064 Fix/issue 3815 (#3836)
* Fix: retry password prompt on failure to prevent script halting

* Update Invoke-WPFInstall.ps1

* format fix

* fix: change RealTimeIsUniversal to QWord for correct UTC time sync

---------

Co-authored-by: Chris Titus <contact@christitus.com>
Co-authored-by: Chris Titus Tech <dfm.titus@gmail.com>
2026-01-27 13:31:55 -06:00
Gabi fcc57fde50 Add back Remove OneDrive (#3920)
* Update tweaks.json

* Create RemoveOneDrive.md

* Update _index.md

* Update _index.md

* Update _index.md

* Update tweaks.json

* Update tweaks.json

* Update tweaks.json

* Update RemoveOneDrive.md

* Update tweaks.json

* Update RemoveOneDrive.md

* Update tweaks.json

* Update RemoveOneDrive.md

* Update tweaks.json

* Update RemoveOneDrive.md

* Update tweaks.json

* Update RemoveOneDrive.md
2026-01-27 13:24:17 -06:00
Gabi 06e5477d0e Remove-Edge (#3913)
* Update tweaks.json

* Create Invoke-WinUtilRemoveEdge.ps1

* Update and rename EdgeUninstall.md to RemoveEdge.md

* Update Invoke-WinUtilRemoveEdge.ps1

* Update RemoveEdge.md

* Update Invoke-WinUtilRemoveEdge.ps1

* Update RemoveEdge.md

* Update Invoke-WinUtilRemoveEdge.ps1

* Update RemoveEdge.md

* Update Invoke-WinUtilRemoveEdge.ps1

* Update RemoveEdge.md

* Update Invoke-WinUtilRemoveEdge.ps1

* Update Invoke-WinUtilRemoveEdge.ps1

* Update RemoveEdge.md
2026-01-27 13:11:30 -06:00
CodingWonders a5271597e9 [Fix] Force WinGet source (#3918)
* [Fix] Force WinGet source

* Force WinGet source for uninstall
2026-01-27 13:03:56 -06:00
Chris Titus d841792f8d add orig-services post tweaks 2026-01-27 12:30:40 -06:00
Gabi 132260ab96 Fix #3876 Maybe (#3929)
* Update tweaks.json

* Update tweaks.json

* Update config/tweaks.json

Co-authored-by: Chris Titus <contact@christitus.com>

* Update tweaks.json

---------

Co-authored-by: Chris Titus <contact@christitus.com>
2026-01-27 12:29:21 -06:00
ChrisTitusTech 919b2e0b8f Deploying to main from @ ChrisTitusTech/winutil@22e083182d 🚀 2026-01-22 15:40:54 +00:00
regularentropy 22e083182d fix: change feature update delay from 2 years to 365 days (#3927) 2026-01-21 22:55:50 -06:00
Gabi 2ec37f952a Update _index.md (#3912) 2026-01-21 22:54:20 -06:00
317 changed files with 9774 additions and 14271 deletions
+2 -59
View File
@@ -1,59 +1,2 @@
# This is a comment. # Chris rules EVERYTHING (including paths listed below)
# Each line is a file pattern followed by one or more owners. * @ChrisTitusTech
# These owners will be the default owners for everything in
# the repo. Unless a later match takes precedence,
# @global-owner1 and @global-owner2 will be requested for
# review when someone opens a pull request.
* @ChrisTitusTech
# Order is important; the last matching pattern takes the most
# precedence. When someone opens a pull request that only
# modifies JS files, only @js-owner and not the global
# owner(s) will be requested for a review.
# *.js @js-owner #This is an inline comment.
# You can also use email addresses if you prefer. They'll be
# used to look up users just like we do for commit author
# emails.
# *.go docs@example.com
# Teams can be specified as code owners as well. Teams should
# be identified in the format @org/team-name. Teams must have
# explicit write access to the repository. In this example,
# the octocats team in the octo-org organization owns all .txt files.
# *.txt @octo-org/octocats
# In this example, @doctocat owns any files in the build/logs
# directory at the root of the repository and any of its
# subdirectories.
# /build/logs/ @doctocat
# The `docs/*` pattern will match files like
# `docs/getting-started.md` but not further nested files like
# `docs/build-app/troubleshooting.md`.
# docs/* docs@example.com
# In this example, @octocat owns any file in an apps directory
# anywhere in your repository.
# apps/ @octocat
# In this example, @doctocat owns any file in the `/docs`
# directory in the root of your repository and any of its
# subdirectories.
# /docs/ @doctocat
# In this example, any change inside the `/scripts` directory
# will require approval from @doctocat or @octocat.
# /scripts/ @doctocat @octocat
# In this example, @octocat owns any file in a `/logs` directory such as
# `/build/logs`, `/scripts/logs`, and `/deeply/nested/logs`. Any changes
# in a `/logs` directory will require approval from @octocat.
# **/logs @octocat
# In this example, @octocat owns any file in the `/apps`
# directory in the root of your repository except for the `/apps/github`
# subdirectory, as its owners are left empty.
# /apps/ @octocat
# /apps/github
+117 -85
View File
@@ -1,117 +1,149 @@
# How to Contribute? ## Contributing Code
## Testing ### Before You Start
* Test the latest changes to WinUtil by running the pre-release and reporting issues you are encountering to help us continually improve WinUtil! - Keep each pull request focused on a single feature or fix.
- Avoid unnecessary formatting changes or large unrelated edits.
- Document what changed and why in your PR description.
#### **Run the latest pre-release** ---
```ps1
irm https://christitus.com/windev | iex
```
!!! bug "Keep in mind" ## Basic Git Workflow
This is a pre-release and should be treated as such. It exists for developers to test the utility and report or fix bugs before they get added to the stable release. Don't use it in production! ### 1. Fork the Repository
## Issues Go to the ChrisTitusTech/winutil repository on GitHub and click the Fork button in the top right corner.
* If you encounter any challenges or problems with the script, I kindly request that you submit them via the "Issues" tab on the GitHub repository. By filling out the provided template, you can provide specific details about the issue, allowing me (and others in the community) to promptly address any bugs or consider feature requests. <img width="171" height="50" alt="{650A4723-F38A-44A4-9820-D232BC87C8A0}" src="https://github.com/user-attachments/assets/a214f27c-2fee-444a-920f-d87b14f5896f" />
## Contribute Code ---
* Pull requests are now handled directly on the **MAIN branch**. This was done since we can now select specific releases to launch via releases in GitHub. ### 2. Clone Your Fork
* If you're doing code changes, then you can submit a PR to `main` branch, but I am very selective about these. ```powershell
git clone https://github.com/YOUR_USERNAME/winutil.git
!!! warning "Important" cd winutil
Do not use a code formatter, make massive amounts of line changes, or make multiple feature changes. EACH FEATURE CHANGE SHOULD BE IT'S OWN PULL REQUEST!
* When creating pull requests, it is essential to thoroughly document all changes made. This includes, but is not limited to, documenting any additions made to the `tweaks` section and corresponding `undo tweak`, so users are able to remove the newly added tweaks if necessary, and comprehensive documentation is required for all code changes. Document your changes and briefly explain why you made your changes in your Pull Request Description. Failure to adhere to this format may result in the denial of the pull request. Additionally, any code lacking sufficient documentation may also be denied.
* By following these guidelines, we can maintain a high standard of quality and ensure that the codebase remains organized and well-documented.
!!! note
When creating a function, please include "WPF" or "WinUtil" in the file name so it can be loaded into the runspace.
## Walk through
* This is a guide for beginners. If you are still having issues, look at the following official GitHub documentation:
* [Commit through WEB](https://docs.github.com/en/pull-requests/committing-changes-to-your-project/creating-and-editing-commits/about-commits)
* [Commit through GitHub Desktop](https://docs.github.com/en/desktop/making-changes-in-a-branch/committing-and-reviewing-changes-to-your-project-in-github-desktop#about-commits)
* [Create a Pull Request](https://docs.github.com/en/pull-requests/collaborating-with-pull-requests/proposing-changes-to-your-work-with-pull-requests/creating-a-pull-request)
### Overview
``` mermaid
%%{init: {"flowchart": {"curve": "cardinal"}} }%%
graph TD
  A[Fork Project] --> B[Clone Repository];
  B --> C[Create New Branch];
  C --> D[Make Changes];
  D --> G[Test Changes];
  G --> H{Tests Passed?};
  H -->|Yes| E[Commit Changes];
  H -->|No| J[Fix Issues];
  J --> G;
  E --> F[Push Branch];
  F --> K[Create Pull Request];
  K --> L[Fill out PR template];
classDef default stroke:#333,stroke-width:4px,font-size:12pt;
``` ```
!!! info
This is a diagram to guide you through the process. It may vary depending on the type of change you're making. ---
### Fork the Repo ### 3. Create a Branch
* Fork the WinUtil Repository [here](https://github.com/ChrisTitusTech/winutil) to create a copy that will be available in your repository list.
![Fork Image](assets/Fork-Button-Dark.png#only-dark#gh-dark-mode-only) Never work directly on `main`.
![Fork Image](assets/Fork-Button-Light.png#only-light#gh-light-mode-only) Create a branch related to your change:
### Clone the Fork ```powershell
!!! tip git checkout -b feature-name
```
While you can make your changes directly through the Web, we recommend cloning the repo to your device using the application GitHub Desktop (available in WinUtil) to test your fork easily. Example:
* Install GitHub Desktop if it is not already installed. ```powershell
* Log in using the same GitHub account you used to fork WinUtil. git checkout -b add-firefox-tweak
* Choose the fork under "Your Repositories" and press "clone {repo name}" ```
* Create a new branch and name it something relatable to your changes.
* Now you can modify WinUtil to your liking using your preferred text editor. ---
### 4. Edit the Code
### Testing your changes Open the project in your preferred text editor and make your changes.
* To test to see if your changes work as intended run following commands in a powershell terminal as admin: Keep changes small and focused.
* Change the directory where you are running the commands to the forked project. ---
* `cd {path to the folder with the compile.ps1}`
* Run the following command to compile and run WinUtil:
* `.\Compile.ps1 -run`
![Compile](assets/Compile.png) ### 5. Test Your Changes
* After seeing that your changes work properly, feel free to commit the changes to the repository and make a PR. For help on that, follow the documentation below. Open Pwsh (Not Powershell) as Administrator.
### Committing the changes Go to the project folder:
* Before committing your changes, please discard changes made to the `winutil.ps1` file, like the following:
![Push Commit Image](assets/Discard-GHD.png) ```powershell
cd path\to\winutil
```
* Now, commit your changes once you are happy with the result. Run:
![Commit Image](assets/Commit-GHD.png) ```powershell
.\Compile.ps1 -Run
```
* Push the changes to upload them to your fork on github.com. Verify:
![Push Commit Image](assets/Push-Commit.png) - WinUtil launches correctly
- Your feature works
- Nothing else breaks
### Making a PR If something fails, fix it before committing.
* To make a PR on your repo under a new branch linking to the main branch, a button will show and say Preview and Create pull request. Click that button and fill in all the information that is provided on the template. Once all the information is filled in correctly, check your PR to make sure there is not a WinUtil.ps1 file attached to the PR. Once everything is good, make the PR and wait for Chris (the maintainer) to accept or deny your PR. Once it is accepted by Chris, you will be able to see your changes in the "/windev" build.
* If you do not see your feature in the main "/win" build, that is fine. All new changes go into the /windev build to make sure everything is working OK before going fully public. ---
* Congratulations! You just submitted your first PR. Thank you so much for contributing to WinUtil.
### 6. Review Your Changes
Check what changed:
```powershell
git status
```
Review the diff:
```powershell
git diff
```
Make sure you did not accidentally modify unrelated files.
---
### 7. Commit Your Changes
Stage files:
```powershell
git add .
```
Commit them:
```powershell
git commit -m "Add feature description"
```
Example:
```powershell
git commit -m "Add Firefox package tweak"
```
---
### 8. Push Your Branch
```powershell
git push origin branch-name
```
Example:
```powershell
git push origin add-firefox-tweak
```
---
### 9. Open a Pull Request
Go to your fork on GitHub.
GitHub will show a button to create a pull request.
<img width="1009" height="71" alt="{C8C6A3CC-79D4-44FD-A54C-4C5717F12730}" src="https://github.com/user-attachments/assets/0419d193-d4e7-47c0-87cf-b986742201a0" />
Before submitting:
- Explain what changed
- Explain why you changed it
- Make sure unrelated files are not included
Once submitted, maintainers will review your PR.
+21 -31
View File
@@ -6,57 +6,47 @@ body:
- type: markdown - type: markdown
attributes: attributes:
value: | value: |
# 🐞 **Issue Report** - Remember, we only support Windows 11. If you encounter problems on Windows 10, please consider upgrading to Windows 11.
Thank you for taking the time to report an issue! Please provide as much detail as possible to help us address the problem efficiently. - For general questions, join our Community-driven [Discord Server](https://discord.gg/RUbZUZyByQ).
## ⚠️ **IMPORTANT**
- 🛠️ **Supported environments only:** We only support Windows 11. Custom ISOs that are not made using Microwin are not supported.
- 💡 For general questions, use the [Discussions section](https://github.com/Christitustech/winutil/discussions) or join our Community-driven [Discord Server](https://discord.gg/RUbZUZyByQ).
- type: checkboxes - type: checkboxes
id: read_issues
attributes: attributes:
label: ⚙️ Issue Checklist label: "I have read the known issues"
description: "You [better do](https://winutil.christitus.com/knownissues/), cause your issue can be already there"
options: options:
- label: I have read the guidelines. - label: Yes, I did
- label: I checked for duplicate issues. required: true
- label: I searched for existing discussions.
- label: I checked for an existing pull request that addresses this issue.
validations:
required: true
- type: input - type: dropdown
id: affected_part id: affected_part
attributes: attributes:
label: 📜 What part of Winutil are you having issues with? label: What part of Winutil are you having issues with?
placeholder: "e.g., Microwin, Tweaks, etc." options:
- Program Install Tab
- Tweaks Tab
- Config Tab
- Updates Tab
- Win11 Creator Tab
validations: validations:
required: true required: false
- type: textarea - type: textarea
id: issue_description id: issue_description
attributes: attributes:
label: 📝 Provide a clear and concise description of the issue. label: Provide a clear and concise description of the issue.
validations: validations:
required: true required: true
- type: textarea - type: textarea
id: steps_to_reproduce id: tweaks_applied
attributes: attributes:
label: 🔄 Steps to reproduce the issue. label: List the tweaks you applied before the issue occurred.
placeholder: "e.g., Step 1: ..., Step 2: ..."
validations: validations:
required: true required: false
- type: textarea - type: textarea
id: error_output id: error_output
attributes: attributes:
label: Paste the full error output (if available). label: Paste the full error output (if available) or Screenshot or Video.
placeholder: "Include any relevant logs or error messages." placeholder: "Include any relevant logs or error messages."
- type: textarea
id: additional_context
attributes:
label: 🖼️ Additional context.
placeholder: "Include screenshots, code blocks (use triple backticks ```), or any other relevant information."
validations:
required: false
+1 -36
View File
@@ -13,45 +13,10 @@ body:
- 🛠️ **Supported environments only:** We only support Windows 11. - 🛠️ **Supported environments only:** We only support Windows 11.
- 💡 For general questions, use the [Discussions section](https://github.com/Christitustech/winutil/discussions) or join our Community-driven [Discord Server](https://discord.gg/RUbZUZyByQ). - 💡 For general questions, use the [Discussions section](https://github.com/Christitustech/winutil/discussions) or join our Community-driven [Discord Server](https://discord.gg/RUbZUZyByQ).
- type: checkboxes
attributes:
label: ⚙️ Issue Checklist
options:
- label: I have read the guidelines.
- label: I checked for duplicate issues.
- label: I searched for existing discussions.
- label: I checked for an existing pull request that addresses this request.
validations:
required: true
- type: textarea
id: problem_statement
attributes:
label: ❓ Is your feature request related to a problem?
placeholder: "Provide a clear and concise description of the issue you're facing. Example: 'I'm always frustrated when [...]'"
validations:
required: false
- type: textarea - type: textarea
id: proposed_solution id: proposed_solution
attributes: attributes:
label: 💡 Describe the solution you'd like label: 💡 Describe the solution you'd like
placeholder: "Provide a clear and concise description of what you want to happen." placeholder: "Provide a clear and concise description."
validations: validations:
required: true required: true
- type: textarea
id: alternatives
attributes:
label: 🔄 Describe alternatives you've considered
placeholder: "Provide details on any alternative solutions or features you've thought about."
validations:
required: false
- type: textarea
id: additional_context
attributes:
label: 🖼️ Additional context
placeholder: "Include screenshots, code blocks (use triple backticks ```), or any other relevant information."
validations:
required: false
+5 -12
View File
@@ -1,24 +1,17 @@
<!--Before you make this PR have you followed the docs here? - https://winutil.christitus.com/contributing/ --> <!--Before you make this PR have you followed the docs here? - https://winutil.christitus.com/contributing/ -->
<!--Documentation is auto-generated from configs - no manual documentation updates needed -->
## Type of Change ## Type of Change
- [ ] New feature - [ ] New feature
- [ ] Bug fix - [ ] Bug fix
- [ ] Documentation update - [ ] Documentation update
- [ ] Refactoring
- [ ] Hotfix
- [ ] Security patch
- [ ] UI/UX improvement - [ ] UI/UX improvement
<!-- This automatically adds labels to your PR based on the selections above. -->
## Description ## Description
<!--[Provide a detailed explanation of the changes you have made. Include the reasons behind these changes and any relevant context. Link any related issues.]--> <!--[What does this PR do? Provide Screenshots when possible.]-->
## Issue related to PR ## Issue related to PR
<!--[What issue/discussion is related to this PR (if any)]--> <!--[List any ISSUES this is related to as it AUTO-CLOSES Them!]-->
- Resolves # - Resolves #
## Checklist
- [ ] My code adheres to the coding and style guidelines of the project.
- [ ] I have performed a self-review of my own code.
- [ ] I have commented my code, particularly in hard-to-understand areas.
- [ ] I have made corresponding changes to the documentation.
- [ ] My changes generate no errors/warnings/merge conflicts.
+105
View File
@@ -0,0 +1,105 @@
# Chris Titus Tech's Windows Utility
[![Version](https://img.shields.io/github/v/release/ChrisTitusTech/winutil?color=%230567ff&label=Latest%20Release&style=for-the-badge)](https://github.com/ChrisTitusTech/winutil/releases/latest)
![GitHub Downloads (specific asset, all releases)](https://img.shields.io/github/downloads/ChrisTitusTech/winutil/winutil.ps1?label=Total%20Downloads&style=for-the-badge)
[![](https://dcbadge.limes.pink/api/server/https://discord.gg/RUbZUZyByQ?theme=default-inverted&style=for-the-badge)](https://discord.gg/RUbZUZyByQ)
[![Static Badge](https://img.shields.io/badge/Documentation-_?style=for-the-badge&logo=bookstack&color=grey)](https://winutil.christitus.com/)
Questa utility è una raccolta di attività Windows che eseguo personalmente su ogni sistema che utilizzo. È progettata per snellire le *installazioni*, rimuovere i componenti superflui tramite *ottimizzazioni*, risolvere problemi tramite la *configurazione*, e riparare *aggiornamenti* di Windows. Sono estremamente selettivo riguardo ai contributi per mantenere questo progetto pulito ed efficiente.
![screen-install](/docs/assets/images/Title-Screen.png)
## 💡 Come usarlo
Winutil deve essere eseguito con privilegi di amministratore, poiché apporta modifiche all'intero sistema. Per farlo, avvia PowerShell come amministratore. Ecco alcuni modi per procedere:
1. **Metodo del menu di Start:**
- Fai clic con il tasto destro sul menu Start.
- Scegli "Windows PowerShell (esegui come Amministratore)" (per Windows 10) o "Terminale (esegui come Amministratore)" (per Windows 11).
2. **Metodo tramite ricerca:**
- Premi il tasto Windows.
- Digita "PowerShell" o "Terminal" (per Windows 11).
- Premi `Ctrl + Shift + Invio` oppure fai clic con il tasto destro e seleziona "Esegui come amministratore" per avviarlo con privilegi elevati.
### Comando di avvio
#### Branch stabile (Consigliato)
```ps1
irm "https://christitus.com/win" | iex
```
#### Branch Sviluppatore
```ps1
irm "https://christitus.com/windev" | iex
```
### Automazione
Winutil supporta anche preset predefiniti che applicano automaticamente configurazioni comuni:
- `Standard`
- `Minimal`
- `Advanced`
Esempio:
```powershell
& ([ScriptBlock]::Create((irm "https://christitus.com/win"))) -Preset Standard
```
Per vedere esattamente cosa fa ogni preset, consulta:
https://github.com/ChrisTitusTech/winutil/blob/main/config/preset.json
In caso di problemi, consulta i [Problemi noti](https://winutil.christitus.com/knownissues/) o [Apri una segnalazione](https://github.com/ChrisTitusTech/winutil/issues)
## 🎓 Documentazione
### [Documentazione ufficiale di WinUtil](https://winutil.christitus.com/)
### [Tutorial su YouTube](https://www.youtube.com/watch?v=6UQZ5oQg8XA)
### [Articolo su ChrisTitus.com](https://christitus.com/windows-tool/)
## 🛠️ Build & Sviluppo
> [!NOTE]
> Winutil è uno script piuttosto esteso, per questo è suddiviso in più file che vengono combinati in un unico file `.ps1` tramite un compilatore personalizzato. Questo rende la manutenzione del progetto molto più semplice.
Ottieni una copia del codice sorgente. Puoi farlo tramite l'interfaccia di GitHub (**Code** > **Download ZIP**), oppure clonando (scaricando) la repo tramite git.
Se git è installato, esegui i seguenti comandi in una finestra PowerShell per clonare e accedere alla directory del progetto:
```ps1
git clone --depth 1 "https://github.com/ChrisTitusTech/winutil.git"
cd winutil
```
Per compilare il progetto, esegui lo script di compilazione in una finestra PowerShell (i permessi di amministratore NON sono richiesti):
```ps1
.\Compile.ps1
```
Troverai un nuovo file chiamato `winutil.ps1`, creato dallo script `Compile.ps1`. Ora puoi eseguirlo come amministratore e apparirà una nuova finestra. Goditi la tua versione compilata di WinUtil :)
> [!TIP]
> Per ulteriori informazioni sull'utilizzo di WinUtil e su come contribuire allo sviluppo, ti invitiamo a leggere le [Linee guida per i contributi](https://winutil.christitus.com/contributing/). Se non sai da dove iniziare o hai domande, puoi chiedere sul nostro [Server Discord della community](https://discord.gg/RUbZUZyByQ); i membri attivi del progetto risponderanno appena possibile.
## 💖 Supporto
- Per sostenere il progetto moralmente e mentalmente, non dimenticare di lasciare una ⭐️!
- Wrapper EXE a 10$ su https://www.cttstore.com/windows-toolbox
## 💖 Sponsor
Questi sono gli sponsor che aiutano a mantenere vivo il progetto con contributi mensili.
<!-- sponsors --><a href="https://github.com/dwelfusius"><img src="https:&#x2F;&#x2F;github.com&#x2F;dwelfusius.png" width="60px" alt="Avatar utente: " /></a><a href="https://github.com/mews-se"><img src="https:&#x2F;&#x2F;github.com&#x2F;mews-se.png" width="60px" alt="Avatar utente: Martin Stockzell" /></a><a href="https://github.com/jdiegmueller"><img src="https:&#x2F;&#x2F;github.com&#x2F;jdiegmueller.png" width="60px" alt="Avatar utente: Jason A. Diegmueller" /></a><a href="https://github.com/robertsandrock"><img src="https:&#x2F;&#x2F;github.com&#x2F;robertsandrock.png" width="60px" alt="Avatar utente: RMS" /></a><a href="https://github.com/paulsheets"><img src="https:&#x2F;&#x2F;github.com&#x2F;paulsheets.png" width="60px" alt="Avatar utente: Paul" /></a><a href="https://github.com/djones369"><img src="https:&#x2F;&#x2F;github.com&#x2F;djones369.png" width="60px" alt="Avatar utente: Dave J (WhamGeek)" /></a><a href="https://github.com/anthonymendez"><img src="https:&#x2F;&#x2F;github.com&#x2F;anthonymendez.png" width="60px" alt="Avatar utente: Anthony Mendez" /></a><a href="https://github.com/FatBastard0"><img src="https:&#x2F;&#x2F;github.com&#x2F;FatBastard0.png" width="60px" alt="Avatar utente: " /></a><a href="https://github.com/DursleyGuy"><img src="https:&#x2F;&#x2F;github.com&#x2F;DursleyGuy.png" width="60px" alt="Avatar utente: DursleyGuy" /></a><a href="https://github.com/DwayneTheRockLobster1"><img src="https:&#x2F;&#x2F;github.com&#x2F;DwayneTheRockLobster1.png" width="60px" alt="Avatar utente: " /></a><a href="https://github.com/KieraKujisawa"><img src="https:&#x2F;&#x2F;github.com&#x2F;KieraKujisawa.png" width="60px" alt="Avatar utente: Kiera Meredith" /></a><a href="https://github.com/andrewpayne68"><img src="https:&#x2F;&#x2F;github.com&#x2F;andrewpayne68.png" width="60px" alt="Avatar utente: Andrew P" /></a><!-- sponsors -->
## 🏅 Grazie a tutti i collaboratori
Un ringraziamento speciale per aver dedicato il vostro tempo ad aiutare Winutil a crescere. Grazie mille! Continuate così 🍻.
[![Contributori](https://contrib.rocks/image?repo=ChrisTitusTech/winutil)](https://github.com/ChrisTitusTech/winutil/graphs/contributors)
## 📊 Statistiche GitHub
![Alt](https://repobeats.axiom.co/api/embed/aad37eec9114c507f109d34ff8d38a59adc9503f.svg "Immagine analisi Repobeats")
+5 -7
View File
@@ -4,15 +4,16 @@ categories:
labels: labels:
- 'feature' - 'feature'
- 'enhancement' - 'enhancement'
- 'new feature'
- title: '🐛 Bug Fixes' - title: '🐛 Bug Fixes'
labels: labels:
- 'fix' - 'hotfix'
- 'bugfix' - 'bugfix'
- 'bug' - 'bug'
- title: '📚 Documentation' - title: '📚 Documentation'
label: 'documentation' label: 'documentation'
- title: '🔒 Security' - title: '🎨 UI/UX Improvements'
label: 'security' label: 'ui update'
change-template: '- $TITLE @$AUTHOR (#$NUMBER)' change-template: '- $TITLE @$AUTHOR (#$NUMBER)'
template: | template: |
## Changes ## Changes
@@ -31,7 +32,7 @@ autolabeler:
- '/fix\/.+/' - '/fix\/.+/'
title: title:
- '/fix/i' - '/fix/i'
- label: 'enhancement' - label: 'new feature'
branch: branch:
- '/feature\/.+/' - '/feature\/.+/'
body: body:
@@ -40,9 +41,6 @@ autolabeler:
files: files:
- '**/*.md' - '**/*.md'
- 'docs/**/*' - 'docs/**/*'
- label: 'security'
branch:
- '/security\/.+/'
replacers: replacers:
- search: /"/g - search: /"/g
replace: '' replace: ''
+31
View File
@@ -0,0 +1,31 @@
name: Auto-merge Docs PRs
on:
pull_request:
types: [opened, synchronize, reopened]
branches:
- main
jobs:
auto-merge:
if: github.event.pull_request.head.ref == 'docs-update' && (github.event.pull_request.user.login == 'ChrisTitusTech' || github.event.pull_request.user.login == 'github-actions[bot]')
runs-on: ubuntu-latest
permissions:
pull-requests: write
contents: write
steps:
- name: Checkout
uses: actions/checkout@v6
- name: Auto-approve PR
if: github.event.pull_request.user.login == 'github-actions[bot]'
run: gh pr review "$PR_NUMBER" --approve
env:
PR_NUMBER: ${{ github.event.pull_request.number }}
GH_TOKEN: ${{ secrets.AUTO_MERGE }}
- name: Enable auto-merge
run: gh pr merge "$PR_NUMBER" --squash --delete-branch --admin
env:
PR_NUMBER: ${{ github.event.pull_request.number }}
GH_TOKEN: ${{ secrets.AUTO_MERGE }}
+1 -1
View File
@@ -14,7 +14,7 @@ jobs:
contents: none contents: none
steps: steps:
- name: Close inactive issues - name: Close inactive issues
uses: actions/stale@v8 uses: actions/stale@v10
with: with:
# A list of labels to reference when looking through issues, # A list of labels to reference when looking through issues,
# and only when one (or even more) of these labels are found.. # and only when one (or even more) of these labels are found..
+43 -16
View File
@@ -1,40 +1,36 @@
# Sample workflow for building and deploying a Hugo site to GitHub Pages
name: Deploy Hugo site to Pages name: Deploy Hugo site to Pages
on: on:
# Runs on pushes targeting the default branch
push: push:
branches: branches:
- main - main
paths: paths:
- 'docs/**' # ONLY triggers if files in the 'docs' folder are changed - "docs/**"
- "config/tweaks.json"
# Allows you to run this workflow manually from the Actions tab - "config/feature.json"
- "functions/**"
workflow_dispatch: workflow_dispatch:
# Sets permissions of the GITHUB_TOKEN to allow deployment to GitHub Pages
permissions: permissions:
contents: read contents: read
pages: write pages: write
id-token: write id-token: write
pull-requests: write
# Allow only one concurrent deployment, skipping runs queued between the run in-progress and latest queued.
# However, do NOT cancel in-progress runs as we want to allow these production deployments to complete.
concurrency: concurrency:
group: "pages" group: "pages"
cancel-in-progress: false cancel-in-progress: false
# Default to bash
defaults: defaults:
run: run:
shell: bash shell: bash
jobs: jobs:
# Build job
build: build:
if: github.repository == 'ChrisTitusTech/winutil'
runs-on: ubuntu-latest runs-on: ubuntu-latest
env: env:
HUGO_VERSION: 0.145.0 HUGO_VERSION: 0.156.0
HUGO_ENVIRONMENT: production HUGO_ENVIRONMENT: production
TZ: America/Chicago TZ: America/Chicago
steps: steps:
@@ -47,9 +43,40 @@ jobs:
with: with:
submodules: recursive submodules: recursive
fetch-depth: 0 fetch-depth: 0
persist-credentials: false
- name: Setup Pages - name: Setup Pages
id: pages id: pages
uses: actions/configure-pages@v5 uses: actions/configure-pages@v6
- name: Generate Dev Docs from JSON
shell: pwsh
run: |
Set-Location tools
./devdocs-generator.ps1
- name: Create Pull Request
id: cpr
uses: peter-evans/create-pull-request@v8
with:
token: ${{ secrets.AUTO_MERGE }}
commit-message: 'chore: Update generated dev docs'
title: 'chore: Update Generated Dev Docs'
body: 'Automated update of generated documentation from JSON sources'
branch: docs-update
delete-branch: true
add-paths: |
docs/content/dev/
config/tweaks.json
config/feature.json
labels: |
automated
documentation
- name: Check outputs
run: |
echo "Pull Request Number - ${{ steps.cpr.outputs.pull-request-number }}"
echo "Pull Request URL - ${{ steps.cpr.outputs.pull-request-url }}"
- name: Install Node.js dependencies - name: Install Node.js dependencies
run: "cd docs && [[ -f package-lock.json || -f npm-shrinkwrap.json ]] && npm ci || true" run: "cd docs && [[ -f package-lock.json || -f npm-shrinkwrap.json ]] && npm ci || true"
- name: Cache Restore - name: Cache Restore
@@ -59,8 +86,7 @@ jobs:
path: | path: |
${{ runner.temp }}/hugo_cache ${{ runner.temp }}/hugo_cache
key: hugo-${{ github.run_id }} key: hugo-${{ github.run_id }}
restore-keys: restore-keys: hugo-
hugo-
- name: Build with Hugo - name: Build with Hugo
run: | run: |
hugo \ hugo \
@@ -77,11 +103,12 @@ jobs:
${{ runner.temp }}/hugo_cache ${{ runner.temp }}/hugo_cache
key: ${{ steps.cache-restore.outputs.cache-primary-key }} key: ${{ steps.cache-restore.outputs.cache-primary-key }}
- name: Upload artifact - name: Upload artifact
uses: actions/upload-pages-artifact@v4 uses: actions/upload-pages-artifact@v5
with: with:
path: ./docs/public path: ./docs/public
deploy: deploy:
if: github.repository == 'ChrisTitusTech/winutil'
environment: environment:
name: github-pages name: github-pages
url: ${{ steps.deployment.outputs.page_url }} url: ${{ steps.deployment.outputs.page_url }}
@@ -90,4 +117,4 @@ jobs:
steps: steps:
- name: Deploy to GitHub Pages - name: Deploy to GitHub Pages
id: deployment id: deployment
uses: actions/deploy-pages@v4 uses: actions/deploy-pages@v5
+54 -92
View File
@@ -15,101 +15,63 @@ jobs:
contents: read contents: read
steps: steps:
- run: echo "command=false" >> $GITHUB_ENV - name: Process slash command
uses: actions/github-script@v9
with:
script: |
const allowedUsers = ["ChrisTitusTech", "og-mrk", "Marterich", "MyDrift-user", "Real-MullaC", "CodingWonders", "GabiNun2", "FluffyPunk"];
const commenter = context.payload.comment.user.login;
- name: Check for /label command // Authorization check first — before any parsing of comment content
id: check_label_command if (!allowedUsers.includes(commenter)) {
run: | console.log(`User ${commenter} is not in the allowlist. Skipping.`);
if [[ "${{ contains(github.event.comment.body, '/label') }}" == "true" ]]; then return;
echo "command=true" >> $GITHUB_ENV }
LABEL_NAME=$(echo "${{ github.event.comment.body }}" | awk -F"/label" '/\/label/ { match($2, /'\''([^'\'']*)'\''/, arr); if (arr[1] != "") print arr[1] }')
echo "label_command=true" >> $GITHUB_ENV
echo "label_name=${LABEL_NAME}" >> $GITHUB_ENV
else
echo "label_command=false" >> $GITHUB_ENV
fi
- name: Check for /unlabel command // Read comment body as data, never interpolated into shell
id: check_unlabel_command const body = context.payload.comment.body;
run: | const issueNumber = context.issue.number;
if [[ "${{ contains(github.event.comment.body, '/unlabel') }}" == "true" ]]; then const owner = context.repo.owner;
echo "command=true" >> $GITHUB_ENV const repo = context.repo.repo;
UNLABEL_NAME=$(echo "${{ github.event.comment.body }}" | awk -F"/unlabel" '/\/unlabel/ { match($2, /'\''([^'\'']*)'\''/, arr); if (arr[1] != "") print arr[1] }')
echo "unlabel_command=true" >> $GITHUB_ENV
echo "unlabel_name=${UNLABEL_NAME}" >> $GITHUB_ENV
else
echo "unlabel_command=false" >> $GITHUB_ENV
fi
- name: Check for /close command // /label 'name' or /label name
id: check_close_command const labelMatch = body.match(/\/label\s+'([^']+)'|\/label\s+(\S+?)(?:\s|$)/);
run: | if (labelMatch) {
if [[ "${{ contains(github.event.comment.body, '/close') }}" == "true" ]]; then const labelName = (labelMatch[1] || labelMatch[2]).trim();
echo "command=true" >> $GITHUB_ENV console.log(`Adding label: ${labelName}`);
echo "close_command=true" >> $GITHUB_ENV await github.rest.issues.addLabels({
echo "reopen_command=false" >> $GITHUB_ENV owner, repo, issue_number: issueNumber,
else labels: [labelName],
echo "close_command=false" >> $GITHUB_ENV });
fi }
- name: Check for /open or /reopen command // /unlabel 'name' or /unlabel name
id: check_reopen_command const unlabelMatch = body.match(/\/unlabel\s+'([^']+)'|\/unlabel\s+(\S+?)(?:\s|$)/);
run: | if (unlabelMatch) {
if [[ "${{ contains(github.event.comment.body, '/open') }}" == "true" ]] || [[ "${{ contains(github.event.comment.body, '/reopen') }}" == "true" ]]; then const labelName = (unlabelMatch[1] || unlabelMatch[2]).trim();
echo "command=true" >> $GITHUB_ENV console.log(`Removing label: ${labelName}`);
echo "reopen_command=true" >> $GITHUB_ENV await github.rest.issues.removeLabel({
echo "close_command=false" >> $GITHUB_ENV owner, repo, issue_number: issueNumber,
else name: labelName,
echo "reopen_command=false" >> $GITHUB_ENV });
fi }
- name: Check if the user is allowed // /close (optionally with 'not planned')
id: check_user if (body.includes('/close')) {
if: env.command == 'true' const stateReason = body.includes('not planned') ? 'not_planned' : 'completed';
run: | console.log(`Closing issue (reason: ${stateReason})`);
ALLOWED_USERS=("ChrisTitusTech" "og-mrk" "Marterich" "MyDrift-user" "Real-MullaC" "CodingWonders") await github.rest.issues.update({
if [[ " ${ALLOWED_USERS[@]} " =~ " ${{ github.event.comment.user.login }} " ]]; then owner, repo, issue_number: issueNumber,
echo "user=true" >> $GITHUB_ENV state: 'closed',
else state_reason: stateReason,
exit 0 });
fi }
- name: Close issue // /open or /reopen
if: env.close_command == 'true' if (body.includes('/open') || body.includes('/reopen')) {
env: console.log('Reopening issue');
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} await github.rest.issues.update({
ISSUE_NUMBER: ${{ github.event.issue.number }} owner, repo, issue_number: issueNumber,
run: | state: 'open',
echo Closing the issue... });
if [[ "${{ contains(github.event.comment.body, 'not planned') }}" == "true" ]]; then }
gh issue close $ISSUE_NUMBER --repo ${{ github.repository }} --reason 'not planned'
else
gh issue close $ISSUE_NUMBER --repo ${{ github.repository }}
fi
- name: Reopen issue
if: env.reopen_command == 'true'
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
ISSUE_NUMBER: ${{ github.event.issue.number }}
run: |
echo Reopening the issue...
gh issue reopen $ISSUE_NUMBER --repo ${{ github.repository }}
- name: Label issue
if: env.label_command == 'true'
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
ISSUE_NUMBER: ${{ github.event.issue.number }}
run: |
echo Labeling the issue...
gh issue edit $ISSUE_NUMBER --repo ${{ github.repository }} --add-label "${{ env.label_name }}"
- name: Remove labels
if: env.unlabel_command == 'true'
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
ISSUE_NUMBER: ${{ github.event.issue.number }}
run: |
echo Unlabeling the issue...
gh issue edit $ISSUE_NUMBER --repo ${{ github.repository }} --remove-label "${{ env.unlabel_name }}"
+45
View File
@@ -0,0 +1,45 @@
name: Label PRs by Type of Change
on:
pull_request_target:
types: [opened, edited, synchronize]
jobs:
label-pr:
runs-on: ubuntu-latest
permissions:
pull-requests: write
issues: write
contents: read # Often needed for github-script
steps:
- name: Check PR body for Type of Change
uses: actions/github-script@v9
with:
script: |
const prBody = context.payload.pull_request.body || '';
const labelsToAdd = [];
if (/\[x\]\s*New feature/i.test(prBody)) {
labelsToAdd.push('new feature');
}
if (/\[x\]\s*Bug fix/i.test(prBody)) {
labelsToAdd.push('bug');
}
if (/\[x\]\s*Documentation update/i.test(prBody)) {
labelsToAdd.push('documentation');
}
if (/\[x\]\s*Hotfix/i.test(prBody)) {
labelsToAdd.push('hotfix');
}
if (/\[x\]\s*UI\/UX improvement/i.test(prBody)) {
labelsToAdd.push('ui update');
}
if (labelsToAdd.length > 0) {
await github.rest.issues.addLabels({
owner: context.repo.owner,
repo: context.repo.repo,
issue_number: context.payload.pull_request.number,
labels: labelsToAdd
});
}
+54 -3
View File
@@ -3,6 +3,7 @@ name: Pre-Release WinUtil
permissions: permissions:
contents: write contents: write
actions: read actions: read
pull-requests: write
on: on:
workflow_dispatch: # Manual trigger added workflow_dispatch: # Manual trigger added
@@ -10,23 +11,55 @@ on:
jobs: jobs:
build-runspace: build-runspace:
runs-on: windows-latest runs-on: windows-latest
outputs:
version: ${{ steps.extract_version.outputs.version }}
env: env:
CERTIFICATE_BASE64: ${{ secrets.CERTIFICATE_BASE64 }} CERTIFICATE_BASE64: ${{ secrets.CERTIFICATE_BASE64 }}
steps: steps:
- name: Checkout Repository - name: Checkout Repository
uses: actions/checkout@v6 uses: actions/checkout@v6
- name: Generate Dev Docs and Update JSON Links
shell: pwsh
run: |
Set-Location tools
./devdocs-generator.ps1
- name: Compile project - name: Compile project
shell: pwsh shell: pwsh
run: | run: |
Set-ExecutionPolicy Bypass -Scope Process -Force; ./Compile.ps1 Set-ExecutionPolicy Bypass -Scope Process -Force; ./Compile.ps1
continue-on-error: false # Directly fail the job on error, removing the need for a separate check continue-on-error: false # Directly fail the job on error, removing the need for a separate check
- name: Create Pull Request for Updated JSON Links
id: cpr
uses: peter-evans/create-pull-request@v8
with:
token: ${{ secrets.AUTO_MERGE }}
commit-message: 'chore: Update documentation links in JSON configs'
title: 'chore: Update Generated Dev Docs'
body: 'Automated update of documentation links in JSON configs from pre-release build'
branch: docs-update
delete-branch: true
add-paths: |
config/tweaks.json
config/feature.json
labels: |
automated
skip-changelog
- name: Check outputs
shell: bash
run: |
echo "Pull Request Number - ${{ steps.cpr.outputs.pull-request-number }}"
echo "Pull Request URL - ${{ steps.cpr.outputs.pull-request-url }}"
- name: Set Version to Todays Date - name: Set Version to Todays Date
id: extract_version id: extract_version
run: | run: |
$version = (Get-Date -Format "yy.MM.dd") $version = (Get-Date -Format "yy.MM.dd")
echo "VERSION=$version" >> $env:GITHUB_ENV echo "VERSION=$version" >> $env:GITHUB_ENV
echo "version=$version" >> $env:GITHUB_OUTPUT
shell: pwsh shell: pwsh
- name: Create Tag - name: Create Tag
@@ -49,18 +82,36 @@ jobs:
} }
shell: pwsh shell: pwsh
- name: Upload compiled script
uses: actions/upload-artifact@v7
with:
name: winutil-ps1
path: ./winutil.ps1
release:
needs: build-runspace
runs-on: ubuntu-latest
steps:
- name: Download compiled script
uses: actions/download-artifact@v8
with:
name: winutil-ps1
- name: Set version from build job
run: echo "VERSION=${{ needs.build-runspace.outputs.version }}" >> $GITHUB_ENV
- name: Generate Release Notes - name: Generate Release Notes
id: generate_notes id: generate_notes
uses: release-drafter/release-drafter@v6 uses: release-drafter/release-drafter@v7
env: env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with: with:
config-name: release-drafter.yml config-name: release-drafter.yml
version: ${{ env.VERSION }} # Pass the version variable version: ${{ env.VERSION }}
- name: Create and Upload Release - name: Create and Upload Release
id: create_release id: create_release
uses: softprops/action-gh-release@v2 uses: softprops/action-gh-release@v3
with: with:
tag_name: ${{ env.VERSION }} tag_name: ${{ env.VERSION }}
name: Pre-Release ${{ env.VERSION }} name: Pre-Release ${{ env.VERSION }}
+18 -4
View File
@@ -5,6 +5,7 @@ on:
- cron: 30 15 * * 0-6 - cron: 30 15 * * 0-6
permissions: permissions:
contents: write contents: write
pull-requests: write
jobs: jobs:
deploy: deploy:
runs-on: ubuntu-latest runs-on: ubuntu-latest
@@ -12,6 +13,8 @@ jobs:
steps: steps:
- name: Checkout 🛎️ - name: Checkout 🛎️
uses: actions/checkout@v6 uses: actions/checkout@v6
with:
persist-credentials: false
- name: Generate Sponsors 💖 - name: Generate Sponsors 💖
uses: JamesIves/github-sponsors-readme-action@v1 uses: JamesIves/github-sponsors-readme-action@v1
@@ -19,8 +22,19 @@ jobs:
token: ${{ secrets.PAT }} token: ${{ secrets.PAT }}
file: 'README.md' file: 'README.md'
- name: Deploy to GitHub Pages 🚀 - name: Create Pull Request 🚀
uses: JamesIves/github-pages-deploy-action@v4 id: cpr
uses: peter-evans/create-pull-request@v8
with: with:
branch: main token: ${{ secrets.GITHUB_TOKEN }}
folder: '.' commit-message: 'Update sponsors in README'
title: 'chore: Update Sponsors README'
body: 'Automated update of sponsors section'
branch: sponsors-update
delete-branch: true
labels: automated
- name: Check outputs
run: |
echo "Pull Request Number - ${{ steps.cpr.outputs.pull-request-number }}"
echo "Pull Request URL - ${{ steps.cpr.outputs.pull-request-url }}"
+13 -52
View File
@@ -1,58 +1,19 @@
### VSCode ### # winutil
# Configuration folder
.vscode/
.idea/
### Visual Studio ###
# Visual Studio user-specific files
.vs/
winutil.pdb
### Preprocessor Hashes ###
.preprocessor_hashes.json
### Windows ###
# Folder config file
[Dd]esktop.ini
# Ignore Generated XAML Files
xaml/inputApp.xaml
xaml/inputFeatures.xaml
xaml/inputTweaks.xaml
# Executables and Configs
winget.msixbundle
pester.ps1
*.psd*
ooshutup10.cfg
winutil.exe.config
Microsoft.UI.Xaml*
license1.xml
winutil.ps1
# Libraries
System.Management.Automation.dll System.Management.Automation.dll
Microsoft.PowerShell.ConsoleHost.dll Microsoft.PowerShell.ConsoleHost.dll
# Compressed files winutil.exe.config
*.zip
### MacOS ###
# General
.DS_Store
microwin.log
True
test.ps1
winutil.ps1 winutil.ps1
# temporary excludes for docs
.github/site/
binary/ binary/
.preprocessor_hashes.json # general software/os specific
desktop.ini
.DS_Store
.vscode/
.idea/
# hugo files
docs/public/
docs/.hugo_build.lock
docs/resources/
+21 -139
View File
@@ -1,162 +1,44 @@
param ( param (
[switch]$Debug, [switch]$Run
[switch]$Run,
[string]$Arguments
) )
if ((Get-Item ".\winutil.ps1" -ErrorAction SilentlyContinue).IsReadOnly) {
Remove-Item ".\winutil.ps1" -Force
}
$OFS = "`r`n" $OFS = "`r`n"
$scriptname = "winutil.ps1"
$workingdir = $PSScriptRoot
Push-Location
Set-Location $workingdir
# Variable to sync between runspaces # Variable to sync between runspaces
$sync = [Hashtable]::Synchronized(@{}) $sync = [Hashtable]::Synchronized(@{})
$sync.PSScriptRoot = $workingdir
$sync.configs = @{} $sync.configs = @{}
function Update-Progress { $script = (Get-Content -Path scripts\start.ps1) -replace '#{replaceme}', (Get-Date -Format 'yy.MM.dd')
param (
[Parameter(Mandatory, position=0)]
[string]$StatusMessage,
[Parameter(Mandatory, position=1)] $script += Get-ChildItem -Path functions -Recurse -File | Get-Content -Raw
[ValidateRange(0,100)]
[int]$Percent,
[Parameter(position=2)] Get-ChildItem config | ForEach-Object {
[string]$Activity = "Compiling" $obj = Get-Content -Path $_.FullName -Raw | ConvertFrom-Json
)
Write-Progress -Activity $Activity -Status $StatusMessage -PercentComplete $Percent if ($_.Name -eq "applications.json") {
} $fixed = [ordered]@{}
foreach ($p in $obj.PSObject.Properties) {
$header = @" $fixed["WPFInstall$($p.Name)"] = $p.Value
################################################################################################################
### ###
### WARNING: This file is automatically generated DO NOT modify this file directly as it will be overwritten ###
### ###
################################################################################################################
"@
Update-Progress "Pre-req: Running Preprocessor..." 0
# Dot source the 'Invoke-Preprocessing' Function from 'tools/Invoke-Preprocessing.ps1' Script
$preprocessingFilePath = ".\tools\Invoke-Preprocessing.ps1"
. $preprocessingFilePath
$excludedFiles = @()
# Add directories only if they exist
if (Test-Path '.\.git\') { $excludedFiles += '.\.git\' }
if (Test-Path '.\binary\') { $excludedFiles += '.\binary\' }
# Add files that should always be excluded
$excludedFiles += @(
'.\.gitignore',
'.\.gitattributes',
'.\.github\CODEOWNERS',
'.\LICENSE',
"$preprocessingFilePath",
'*.png',
'*.exe',
'.\.preprocessor_hashes.json'
)
$msg = "Pre-req: Code Formatting"
Invoke-Preprocessing -WorkingDir "$workingdir" -ExcludedFiles $excludedFiles -ProgressStatusMessage $msg
# Create the script in memory.
Update-Progress "Pre-req: Allocating Memory" 0
$script_content = [System.Collections.Generic.List[string]]::new()
Update-Progress "Adding: Header" 5
$script_content.Add($header)
Update-Progress "Adding: Version" 10
$script_content.Add($(Get-Content "scripts\start.ps1").replace('#{replaceme}',"$(Get-Date -Format yy.MM.dd)"))
Update-Progress "Adding: Functions" 20
Get-ChildItem "functions" -Recurse -File | ForEach-Object {
$script_content.Add($(Get-Content $psitem.FullName))
}
Update-Progress "Adding: Config *.json" 40
Get-ChildItem "config" | Where-Object {$psitem.extension -eq ".json"} | ForEach-Object {
$json = (Get-Content $psitem.FullName -Raw)
$jsonAsObject = $json | ConvertFrom-Json
# Add 'WPFInstall' as a prefix to every entry-name in 'applications.json' file
if ($psitem.Name -eq "applications.json") {
foreach ($appEntryName in $jsonAsObject.PSObject.Properties.Name) {
$appEntryContent = $jsonAsObject.$appEntryName
$jsonAsObject.PSObject.Properties.Remove($appEntryName)
$jsonAsObject | Add-Member -MemberType NoteProperty -Name "WPFInstall$appEntryName" -Value $appEntryContent
} }
$obj = [pscustomobject]$fixed
} }
# Line 90 requires no whitespace inside the here-strings, to keep formatting of the JSON in the final script. $json = $obj | ConvertTo-Json -Depth 10
$json = @"
$($jsonAsObject | ConvertTo-Json -Depth 3)
"@
$sync.configs.$($psitem.BaseName) = $json | ConvertFrom-Json $sync.configs[$_.BaseName] = $obj
$script_content.Add($(Write-Output "`$sync.configs.$($psitem.BaseName) = @'`r`n$json`r`n'@ `| ConvertFrom-Json" )) $script += "`$sync.configs.$($_.BaseName) = @'`r`n$json`r`n'@ | ConvertFrom-Json"
} }
# Read the entire XAML file as a single string, preserving line breaks $xaml = Get-Content -Path xaml\inputXML.xaml -Raw
$xaml = Get-Content "$workingdir\xaml\inputXML.xaml" -Raw $script += "`$inputXML = @'`r`n$xaml`r`n'@"
Update-Progress "Adding: Xaml " 90 $autounattendXml = Get-Content -Path tools\autounattend.xml -Raw
$script += "`$WinUtilAutounattendXml = @'`r`n$autounattendXml`r`n'@"
# Add the XAML content to $script_content using a here-string $script += Get-Content -Path scripts\main.ps1 -Raw
$script_content.Add(@"
`$inputXML = @'
$xaml
'@
"@)
$script_content.Add($(Get-Content "scripts\main.ps1")) Set-Content -Path winutil.ps1 -Value $script
if ($Debug) { if ($Run) {
Update-Progress "Writing debug files" 95 .\Winutil.ps1
$appXamlContent | Out-File -FilePath "xaml\inputApp.xaml" -Encoding ascii
$tweaksXamlContent | Out-File -FilePath "xaml\inputTweaks.xaml" -Encoding ascii
$featuresXamlContent | Out-File -FilePath "xaml\inputFeatures.xaml" -Encoding ascii
} else {
Update-Progress "Removing temporary files" 99
Remove-Item "xaml\inputApp.xaml" -ErrorAction SilentlyContinue
Remove-Item "xaml\inputTweaks.xaml" -ErrorAction SilentlyContinue
Remove-Item "xaml\inputFeatures.xaml" -ErrorAction SilentlyContinue
} }
Set-Content -Path "$scriptname" -Value ($script_content -join "`r`n") -Encoding ascii
Write-Progress -Activity "Compiling" -Completed
Update-Progress -Activity "Validating" -StatusMessage "Checking winutil.ps1 Syntax" -Percent 0
try {
Get-Command -Syntax .\winutil.ps1 | Out-Null
} catch {
Write-Warning "Syntax Validation for 'winutil.ps1' has failed"
Write-Host "$($Error[0])" -ForegroundColor Red
Pop-Location # Restore previous location before exiting...
exit 1
}
Write-Progress -Activity "Validating" -Completed
if ($run) {
$script = "& '$workingdir\$scriptname' $Arguments"
$powershellcmd = if (Get-Command pwsh -ErrorAction SilentlyContinue) { "pwsh" } else { "powershell" }
$processCmd = if (Get-Command wt.exe -ErrorAction SilentlyContinue) { "wt.exe" } else { $powershellcmd }
Start-Process $processCmd -ArgumentList "$powershellcmd -NoProfile -Command $script"
break
}
Pop-Location
+59 -59
View File
@@ -1,88 +1,88 @@
# Chris Titus Tech's Windows Utility # Chris Titus Tech's Windows Utility
[![Version](https://img.shields.io/github/v/release/ChrisTitusTech/winutil?color=%230567ff&label=Latest%20Release&style=for-the-badge)](https://github.com/ChrisTitusTech/winutil/releases/latest) [![Version](https://img.shields.io/github/v/release/ChrisTitusTech/winutil?color=%230567ff&label=Latest%20Release&style=for-the-badge)](https://github.com/ChrisTitusTech/winutil/releases/latest)
![GitHub Downloads (specific asset, all releases)](https://img.shields.io/github/downloads/ChrisTitusTech/winutil/winutil.ps1?label=Total%20Downloads&style=for-the-badge) ![Downloads](https://img.shields.io/github/downloads/ChrisTitusTech/winutil/winutil.ps1?label=Total%20Downloads&style=for-the-badge)
[![](https://dcbadge.limes.pink/api/server/https://discord.gg/RUbZUZyByQ?theme=default-inverted&style=for-the-badge)](https://discord.gg/RUbZUZyByQ) [![Discord](https://dcbadge.limes.pink/api/server/https://discord.gg/RUbZUZyByQ?theme=default-inverted&style=for-the-badge)](https://discord.gg/RUbZUZyByQ)
[![Static Badge](https://img.shields.io/badge/Documentation-_?style=for-the-badge&logo=bookstack&color=grey)](https://winutil.christitus.com/)
This utility is a compilation of Windows tasks I perform on each Windows system I use. It is meant to streamline *installs*, debloat with *tweaks*, troubleshoot with *config*, and fix Windows *updates*. I am extremely picky about any contributions to keep this project clean and efficient. A curated compilation of Windows system tasks streamline **installs**, debloat with **tweaks**, troubleshoot with **config**, and configure **Windows updates**. Run it fresh on every new Windows install.
![screen-install](https://raw.githubusercontent.com/Chris-Titus-Docs/winutil-docs/refs/heads/main/assets/images/Title-Screen.png) ![Title Screen](/docs/assets/images/Title-Screen.png)
## 💡 Usage ---
Winutil must be run in Admin mode because it performs system-wide tweaks. To achieve this, run PowerShell as an administrator. Here are a few ways to do it: ## Quick Start
1. **Start menu Method:** > **WinUtil must be run as Administrator** Because it performs system-wide changes.
- Right-click on the start menu.
- Choose "Windows PowerShell (Admin)" (for Windows 10) or "Terminal (Admin)" (for Windows 11).
2. **Search and Launch Method:** Open PowerShell or Terminal as admin, then run:
- Press the Windows key.
- Type "PowerShell" or "Terminal" (for Windows 11).
- Press `Ctrl + Shift + Enter` or Right-click and choose "Run as administrator" to launch it with administrator privileges.
### Launch Command
#### Stable Branch (Recommended)
**Stable Branch (recommended)**
```ps1 ```ps1
irm "https://christitus.com/win" | iex irm https://christitus.com/win | iex
```
#### Dev Branch
```ps1
irm "https://christitus.com/windev" | iex
``` ```
If you have Issues, refer to [Known Issues](https://winutil.christitus.com/knownissues/) or [Create Issue](https://github.com/ChrisTitusTech/winutil/issues) **Development Branch**
## 🎓 Documentation
### [WinUtil Official Documentation](https://winutil.christitus.com/)
### [YouTube Tutorial](https://www.youtube.com/watch?v=6UQZ5oQg8XA)
### [ChrisTitus.com Article](https://christitus.com/windows-tool/)
## 🛠️ Build & Develop
> [!NOTE]
> Winutil is a relatively large script, so it's split into multiple files which're combined into a single `.ps1` file using a custom compiler. This makes maintaining the project a lot easier.
Get a copy of the source code, this can be done using GitHub UI (`Code -> Download ZIP`), or by cloning (downloading) the repo using git.
If git is installed, run the following commands under a PowerShell window to clone and move into project's directory:
```ps1 ```ps1
git clone --depth 1 "https://github.com/ChrisTitusTech/winutil.git" irm https://christitus.com/windev | iex
cd winutil
``` ```
To build the project, run the Compile Script under a PowerShell window (admin permissions IS NOT required): ### How to open an admin terminal
```ps1
.\Compile.ps1 - **Start menu:** Right-click Start → *Windows PowerShell (Admin)* or *Terminal (Admin)*
- **Search:** Press the `Windows key`, and type `PowerShell` or `Terminal`, then `Ctrl + Shift + Enter`
---
## Automation / Presets
Apply a predefined configuration without manual selection:
```powershell
& ([ScriptBlock]::Create((irm https://christitus.com/win))) -Preset Standard
``` ```
You'll see a new file named `winutil.ps1`, which's created by `Compile.ps1` script, now you can run it as admin and a new window will popup, enjoy your own compiled version of WinUtil :) | Preset | Description |
|--------|-------------|
| `Standard` | Balanced defaults for most users |
| `Minimal` | Minimal changes to suit every user |
| `Advanced` | Deep tweaks for power users |
> [!TIP] To view exactly what each preset does, see:
> For more info on using WinUtil and how to develop for it, please consider reading [the Contribution Guidelines](https://winutil.christitus.com/contributing/), if you don't know where to start, or have questions, you can ask over on our [Discord Community Server](https://discord.gg/RUbZUZyByQ) and active project members will answer when they can. https://github.com/ChrisTitusTech/winutil/blob/main/config/preset.json
## 💖 Support ---
- To morally and mentally support the project, make sure to leave a ⭐️!
## Build & Develop
See https://github.com/ChrisTitusTech/winutil/blob/main/.github/CONTRIBUTING.md
---
## Resources
- [Official Documentation](https://winutil.christitus.com/)
- [YouTube Tutorial](https://www.youtube.com/watch?v=6UQZ5oQg8XA)
- [ChrisTitus.com Article](https://christitus.com/windows-tool/)
- [Known Issues](https://winutil.christitus.com/knownissues/)
- [Report an Issue](https://github.com/ChrisTitusTech/winutil/issues)
---
## Support
- Leave a ⭐ to show support!
- EXE Wrapper for $10 @ https://www.cttstore.com/windows-toolbox - EXE Wrapper for $10 @ https://www.cttstore.com/windows-toolbox
## 💖 Sponsors ## Sponsors
These are the sponsors that help keep this project alive with monthly contributions. These are the sponsors that help keep this project alive with monthly contributions.
<!-- 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/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/TaNorbs"><img src="https:&#x2F;&#x2F;github.com&#x2F;TaNorbs.png" width="60px" alt="User avatar: Norbs" /></a><a href="https://github.com/andrewpayne68"><img src="https:&#x2F;&#x2F;github.com&#x2F;andrewpayne68.png" width="60px" alt="User avatar: Andrew P" /></a><!-- sponsors --> <!-- sponsors --><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/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/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/andrewpayne68"><img src="https:&#x2F;&#x2F;github.com&#x2F;andrewpayne68.png" width="60px" alt="User avatar: Andrew P" /></a><!-- sponsors -->
## 🏅 Thanks to all Contributors ---
Thanks a lot for spending your time helping Winutil grow. Thanks a lot! Keep rocking 🍻.
## Contributors
[![Contributors](https://contrib.rocks/image?repo=ChrisTitusTech/winutil)](https://github.com/ChrisTitusTech/winutil/graphs/contributors) [![Contributors](https://contrib.rocks/image?repo=ChrisTitusTech/winutil)](https://github.com/ChrisTitusTech/winutil/graphs/contributors)
## 📊 GitHub Stats Thanks to everyone who has contributed time and effort to this project. Keep rocking 🍻
![Alt](https://repobeats.axiom.co/api/embed/aad37eec9114c507f109d34ff8d38a59adc9503f.svg "Repobeats analytics image")
+574 -1802
View File
File diff suppressed because it is too large Load Diff
+28 -6
View File
@@ -21,13 +21,13 @@
"Description": "Upgrade all applications to the latest version" "Description": "Upgrade all applications to the latest version"
}, },
"WingetRadioButton": { "WingetRadioButton": {
"Content": "Winget", "Content": "WinGet",
"Category": "__Package Manager", "Category": "__Package Manager",
"Type": "RadioButton", "Type": "RadioButton",
"GroupName": "PackageManagerGroup", "GroupName": "PackageManagerGroup",
"Checked": true, "Checked": true,
"Order": "1", "Order": "1",
"Description": "Use Winget for package management" "Description": "Use WinGet for package management"
}, },
"ChocoRadioButton": { "ChocoRadioButton": {
"Content": "Chocolatey", "Content": "Chocolatey",
@@ -38,25 +38,47 @@
"Order": "2", "Order": "2",
"Description": "Use Chocolatey for package management" "Description": "Use Chocolatey for package management"
}, },
"WPFCollapseAllCategories": {
"Content": "Collapse All Categories",
"Category": "__Selection",
"Type": "Button",
"Order": "1",
"Description": "Collapse all application categories"
},
"WPFExpandAllCategories": {
"Content": "Expand All Categories",
"Category": "__Selection",
"Type": "Button",
"Order": "2",
"Description": "Expand all application categories"
},
"WPFClearInstallSelection": { "WPFClearInstallSelection": {
"Content": "Clear Selection", "Content": "Clear Selection",
"Category": "__Selection", "Category": "__Selection",
"Type": "Button", "Type": "Button",
"Order": "1", "Order": "3",
"Description": "Clear the selection of applications" "Description": "Clear the selection of applications"
}, },
"WPFGetInstalled": { "WPFGetInstalled": {
"Content": "Get Installed", "Content": "Show Installed Apps",
"Category": "__Selection", "Category": "__Selection",
"Type": "Button", "Type": "Button",
"Order": "2", "Order": "4",
"Description": "Show installed applications" "Description": "Show installed applications"
}, },
"WPFselectedAppsButton": { "WPFselectedAppsButton": {
"Content": "Selected Apps: 0", "Content": "Selected Apps: 0",
"Category": "__Selection", "Category": "__Selection",
"Type": "Button", "Type": "Button",
"Order": "3", "Order": "5",
"Description": "Show the selected applications" "Description": "Show the selected applications"
},
"WPFToggleFOSSHighlight": {
"Content": "Highlight FOSS",
"Category": "__Selection",
"Type": "Toggle",
"Checked": true,
"Order": "6",
"Description": "Toggle the green highlight for FOSS applications"
} }
} }
-442
View File
@@ -1,442 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<unattend xmlns="urn:schemas-microsoft-com:unattend" xmlns:wcm="http://schemas.microsoft.com/WMIConfig/2002/State">
<!--https://schneegans.de/windows/unattend-generator/?LanguageMode=Unattended&UILanguage=en-US&Locale=en-US&Keyboard=00000409&GeoLocation=244&ProcessorArchitecture=amd64&BypassRequirementsCheck=true&BypassNetworkCheck=true&ComputerNameMode=Random&TimeZoneMode=Implicit&PartitionMode=Interactive&WindowsEditionMode=Unattended&WindowsEdition=pro&UserAccountMode=Unattended&AccountName0=User&AccountPassword0=&AccountGroup0=Administrators&AccountName1=&AccountName2=&AccountName3=&AccountName4=&AutoLogonMode=Own&PasswordExpirationMode=Unlimited&LockoutMode=Default&HideFiles=Hidden&DisableWidgets=true&ClassicContextMenu=true&DisableFastStartup=true&EnableLongPaths=true&DisableAppSuggestions=true&PreventDeviceEncryption=true&WifiMode=Skip&ExpressSettings=DisableAll&Remove3DViewer=true&RemoveBingSearch=true&RemoveCamera=true&RemoveClipchamp=true&RemoveClock=true&RemoveCopilot=true&RemoveCortana=true&RemoveDevHome=true&RemoveFamily=true&RemoveFeedbackHub=true&RemoveGetHelp=true&RemoveInternetExplorer=true&RemoveMailCalendar=true&RemoveMaps=true&RemoveMathInputPanel=true&RemoveZuneVideo=true&RemoveNews=true&RemoveNotepad=true&RemoveOffice365=true&RemoveOneDrive=true&RemoveOneNote=true&RemoveOpenSSHClient=true&RemoveOutlook=true&RemovePaint3D=true&RemovePeople=true&RemovePowerAutomate=true&RemoveQuickAssist=true&RemoveSkype=true&RemoveSolitaire=true&RemoveStepsRecorder=true&RemoveStickyNotes=true&RemoveTeams=true&RemoveGetStarted=true&RemoveToDo=true&RemoveVoiceRecorder=true&RemoveWeather=true&RemoveWindowsMediaPlayer=true&RemoveZuneMusic=true&RemoveWordPad=true&WdacMode=Skip-->
<settings pass="offlineServicing"></settings>
<settings pass="windowsPE">
<component name="Microsoft-Windows-International-Core-WinPE" processorArchitecture="amd64" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS">
<SetupUILanguage>
<UILanguage>en-US</UILanguage>
</SetupUILanguage>
<InputLocale>0409:00000409</InputLocale>
<SystemLocale>en-US</SystemLocale>
<UILanguage>en-US</UILanguage>
<UserLocale>en-US</UserLocale>
</component>
<component name="Microsoft-Windows-Setup" processorArchitecture="amd64" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS">
<UserData>
<ProductKey>
<Key>VK7JG-NPHTM-C97JM-9MPGT-3V66T</Key>
</ProductKey>
<AcceptEula>true</AcceptEula>
</UserData>
<RunSynchronous>
<RunSynchronousCommand wcm:action="add">
<Order>1</Order>
<Path>reg.exe add "HKLM\SYSTEM\Setup\LabConfig" /v BypassTPMCheck /t REG_DWORD /d 1 /f</Path>
</RunSynchronousCommand>
<RunSynchronousCommand wcm:action="add">
<Order>2</Order>
<Path>reg.exe add "HKLM\SYSTEM\Setup\LabConfig" /v BypassSecureBootCheck /t REG_DWORD /d 1 /f</Path>
</RunSynchronousCommand>
<RunSynchronousCommand wcm:action="add">
<Order>3</Order>
<Path>reg.exe add "HKLM\SYSTEM\Setup\LabConfig" /v BypassRAMCheck /t REG_DWORD /d 1 /f</Path>
</RunSynchronousCommand>
</RunSynchronous>
</component>
</settings>
<settings pass="generalize"></settings>
<settings pass="specialize">
<component name="Microsoft-Windows-Deployment" processorArchitecture="amd64" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS">
<RunSynchronous>
<RunSynchronousCommand wcm:action="add">
<Order>1</Order>
<Path>reg.exe add "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\OOBE" /v BypassNRO /t REG_DWORD /d 1 /f</Path>
</RunSynchronousCommand>
<RunSynchronousCommand wcm:action="add">
<Order>2</Order>
<Path>reg.exe load "HKU\DefaultUser" "C:\Users\Default\NTUSER.DAT"</Path>
</RunSynchronousCommand>
<RunSynchronousCommand wcm:action="add">
<Order>3</Order>
<Path>reg.exe add "HKU\DefaultUser\Software\Microsoft\Windows\CurrentVersion\Runonce" /v "UninstallCopilot" /t REG_SZ /d "powershell.exe -NoProfile -Command \"Get-AppxPackage -Name 'Microsoft.Windows.Ai.Copilot.Provider' | Remove-AppxPackage;\"" /f</Path>
</RunSynchronousCommand>
<RunSynchronousCommand wcm:action="add">
<Order>4</Order>
<Path>reg.exe add "HKU\DefaultUser\Software\Policies\Microsoft\Windows\WindowsCopilot" /v TurnOffWindowsCopilot /t REG_DWORD /d 1 /f</Path>
</RunSynchronousCommand>
<RunSynchronousCommand wcm:action="add">
<Order>5</Order>
<Path>reg.exe unload "HKU\DefaultUser"</Path>
</RunSynchronousCommand>
<RunSynchronousCommand wcm:action="add">
<Order>6</Order>
<Path>reg.exe delete "HKLM\SOFTWARE\Microsoft\WindowsUpdate\Orchestrator\UScheduler_Oobe\DevHomeUpdate" /f</Path>
</RunSynchronousCommand>
<RunSynchronousCommand wcm:action="add">
<Order>7</Order>
<Path>reg.exe load "HKU\DefaultUser" "C:\Users\Default\NTUSER.DAT"</Path>
</RunSynchronousCommand>
<RunSynchronousCommand wcm:action="add">
<Order>8</Order>
<Path>reg.exe add "HKU\DefaultUser\Software\Microsoft\Notepad" /v ShowStoreBanner /t REG_DWORD /d 0 /f</Path>
</RunSynchronousCommand>
<RunSynchronousCommand wcm:action="add">
<Order>9</Order>
<Path>reg.exe unload "HKU\DefaultUser"</Path>
</RunSynchronousCommand>
<RunSynchronousCommand wcm:action="add">
<Order>10</Order>
<Path>cmd.exe /c "del "C:\Users\Default\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\OneDrive.lnk""</Path>
</RunSynchronousCommand>
<RunSynchronousCommand wcm:action="add">
<Order>11</Order>
<Path>cmd.exe /c "del "C:\Windows\System32\OneDriveSetup.exe""</Path>
</RunSynchronousCommand>
<RunSynchronousCommand wcm:action="add">
<Order>12</Order>
<Path>cmd.exe /c "del "C:\Windows\SysWOW64\OneDriveSetup.exe""</Path>
</RunSynchronousCommand>
<RunSynchronousCommand wcm:action="add">
<Order>13</Order>
<Path>reg.exe load "HKU\DefaultUser" "C:\Users\Default\NTUSER.DAT"</Path>
</RunSynchronousCommand>
<RunSynchronousCommand wcm:action="add">
<Order>14</Order>
<Path>reg.exe delete "HKU\DefaultUser\Software\Microsoft\Windows\CurrentVersion\Run" /v OneDriveSetup /f</Path>
</RunSynchronousCommand>
<RunSynchronousCommand wcm:action="add">
<Order>15</Order>
<Path>reg.exe unload "HKU\DefaultUser"</Path>
</RunSynchronousCommand>
<RunSynchronousCommand wcm:action="add">
<Order>16</Order>
<Path>reg.exe delete "HKLM\SOFTWARE\Microsoft\WindowsUpdate\Orchestrator\UScheduler_Oobe\OutlookUpdate" /f</Path>
</RunSynchronousCommand>
<RunSynchronousCommand wcm:action="add">
<Order>17</Order>
<Path>reg.exe add "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Communications" /v ConfigureChatAutoInstall /t REG_DWORD /d 0 /f</Path>
</RunSynchronousCommand>
<RunSynchronousCommand wcm:action="add">
<Order>18</Order>
<Path>powershell.exe -NoProfile -Command "$xml = [xml]::new(); $xml.Load('C:\Windows\Panther\unattend.xml'); $sb = [scriptblock]::Create( $xml.unattend.Extensions.ExtractScript ); Invoke-Command -ScriptBlock $sb -ArgumentList $xml;"</Path>
</RunSynchronousCommand>
<RunSynchronousCommand wcm:action="add">
<Order>19</Order>
<Path>powershell.exe -NoProfile -Command "Get-Content -LiteralPath 'C:\Windows\Temp\Microwin-RemovePackages.ps1' -Raw | Invoke-Expression;"</Path>
</RunSynchronousCommand>
<RunSynchronousCommand wcm:action="add">
<Order>20</Order>
<Path>powershell.exe -NoProfile -Command "Get-Content -LiteralPath 'C:\Windows\Temp\remove-caps.ps1' -Raw | Invoke-Expression;"</Path>
</RunSynchronousCommand>
<RunSynchronousCommand wcm:action="add">
<Order>21</Order>
<Path>reg.exe add "HKLM\SOFTWARE\Microsoft\PolicyManager\current\device\Start" /v ConfigureStartPins /t REG_SZ /d "{ \"pinnedList\": [] }" /f</Path>
</RunSynchronousCommand>
<RunSynchronousCommand wcm:action="add">
<Order>22</Order>
<Path>reg.exe add "HKLM\SOFTWARE\Microsoft\PolicyManager\current\device\Start" /v ConfigureStartPins_ProviderSet /t REG_DWORD /d 1 /f</Path>
</RunSynchronousCommand>
<RunSynchronousCommand wcm:action="add">
<Order>23</Order>
<Path>reg.exe add "HKLM\SOFTWARE\Microsoft\PolicyManager\current\device\Start" /v ConfigureStartPins_WinningProvider /t REG_SZ /d B5292708-1619-419B-9923-E5D9F3925E71 /f</Path>
</RunSynchronousCommand>
<RunSynchronousCommand wcm:action="add">
<Order>24</Order>
<Path>reg.exe add "HKLM\SOFTWARE\Microsoft\PolicyManager\providers\B5292708-1619-419B-9923-E5D9F3925E71\default\Device\Start" /v ConfigureStartPins /t REG_SZ /d "{ \"pinnedList\": [] }" /f</Path>
</RunSynchronousCommand>
<RunSynchronousCommand wcm:action="add">
<Order>25</Order>
<Path>reg.exe add "HKLM\SOFTWARE\Microsoft\PolicyManager\providers\B5292708-1619-419B-9923-E5D9F3925E71\default\Device\Start" /v ConfigureStartPins_LastWrite /t REG_DWORD /d 1 /f</Path>
</RunSynchronousCommand>
<RunSynchronousCommand wcm:action="add">
<Order>26</Order>
<Path>net.exe accounts /maxpwage:UNLIMITED</Path>
</RunSynchronousCommand>
<RunSynchronousCommand wcm:action="add">
<Order>27</Order>
<Path>reg.exe add "HKLM\SYSTEM\CurrentControlSet\Control\FileSystem" /v LongPathsEnabled /t REG_DWORD /d 1 /f</Path>
</RunSynchronousCommand>
<RunSynchronousCommand wcm:action="add">
<Order>28</Order>
<Path>reg.exe add "HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\Power" /v HiberbootEnabled /t REG_DWORD /d 0 /f</Path>
</RunSynchronousCommand>
<RunSynchronousCommand wcm:action="add">
<Order>29</Order>
<Path>reg.exe add "HKLM\SOFTWARE\Policies\Microsoft\Dsh" /v AllowNewsAndInterests /t REG_DWORD /d 0 /f</Path>
</RunSynchronousCommand>
<RunSynchronousCommand wcm:action="add">
<Order>30</Order>
<Path>reg.exe load "HKU\DefaultUser" "C:\Users\Default\NTUSER.DAT"</Path>
</RunSynchronousCommand>
<RunSynchronousCommand wcm:action="add">
<Order>31</Order>
<Path>reg.exe add "HKU\DefaultUser\Software\Microsoft\Windows\CurrentVersion\ContentDeliveryManager" /v "ContentDeliveryAllowed" /t REG_DWORD /d 0 /f</Path>
</RunSynchronousCommand>
<RunSynchronousCommand wcm:action="add">
<Order>32</Order>
<Path>reg.exe add "HKU\DefaultUser\Software\Microsoft\Windows\CurrentVersion\ContentDeliveryManager" /v "FeatureManagementEnabled" /t REG_DWORD /d 0 /f</Path>
</RunSynchronousCommand>
<RunSynchronousCommand wcm:action="add">
<Order>33</Order>
<Path>reg.exe add "HKU\DefaultUser\Software\Microsoft\Windows\CurrentVersion\ContentDeliveryManager" /v "OEMPreInstalledAppsEnabled" /t REG_DWORD /d 0 /f</Path>
</RunSynchronousCommand>
<RunSynchronousCommand wcm:action="add">
<Order>34</Order>
<Path>reg.exe add "HKU\DefaultUser\Software\Microsoft\Windows\CurrentVersion\ContentDeliveryManager" /v "PreInstalledAppsEnabled" /t REG_DWORD /d 0 /f</Path>
</RunSynchronousCommand>
<RunSynchronousCommand wcm:action="add">
<Order>35</Order>
<Path>reg.exe add "HKU\DefaultUser\Software\Microsoft\Windows\CurrentVersion\ContentDeliveryManager" /v "PreInstalledAppsEverEnabled" /t REG_DWORD /d 0 /f</Path>
</RunSynchronousCommand>
<RunSynchronousCommand wcm:action="add">
<Order>36</Order>
<Path>reg.exe add "HKU\DefaultUser\Software\Microsoft\Windows\CurrentVersion\ContentDeliveryManager" /v "SilentInstalledAppsEnabled" /t REG_DWORD /d 0 /f</Path>
</RunSynchronousCommand>
<RunSynchronousCommand wcm:action="add">
<Order>37</Order>
<Path>reg.exe add "HKU\DefaultUser\Software\Microsoft\Windows\CurrentVersion\ContentDeliveryManager" /v "SoftLandingEnabled" /t REG_DWORD /d 0 /f</Path>
</RunSynchronousCommand>
<RunSynchronousCommand wcm:action="add">
<Order>38</Order>
<Path>reg.exe add "HKU\DefaultUser\Software\Microsoft\Windows\CurrentVersion\ContentDeliveryManager" /v "SubscribedContentEnabled" /t REG_DWORD /d 0 /f</Path>
</RunSynchronousCommand>
<RunSynchronousCommand wcm:action="add">
<Order>39</Order>
<Path>reg.exe add "HKU\DefaultUser\Software\Microsoft\Windows\CurrentVersion\ContentDeliveryManager" /v "SubscribedContent-310093Enabled" /t REG_DWORD /d 0 /f</Path>
</RunSynchronousCommand>
<RunSynchronousCommand wcm:action="add">
<Order>40</Order>
<Path>reg.exe add "HKU\DefaultUser\Software\Microsoft\Windows\CurrentVersion\ContentDeliveryManager" /v "SubscribedContent-338387Enabled" /t REG_DWORD /d 0 /f</Path>
</RunSynchronousCommand>
<RunSynchronousCommand wcm:action="add">
<Order>41</Order>
<Path>reg.exe add "HKU\DefaultUser\Software\Microsoft\Windows\CurrentVersion\ContentDeliveryManager" /v "SubscribedContent-338388Enabled" /t REG_DWORD /d 0 /f</Path>
</RunSynchronousCommand>
<RunSynchronousCommand wcm:action="add">
<Order>42</Order>
<Path>reg.exe add "HKU\DefaultUser\Software\Microsoft\Windows\CurrentVersion\ContentDeliveryManager" /v "SubscribedContent-338389Enabled" /t REG_DWORD /d 0 /f</Path>
</RunSynchronousCommand>
<RunSynchronousCommand wcm:action="add">
<Order>43</Order>
<Path>reg.exe add "HKU\DefaultUser\Software\Microsoft\Windows\CurrentVersion\ContentDeliveryManager" /v "SubscribedContent-338393Enabled" /t REG_DWORD /d 0 /f</Path>
</RunSynchronousCommand>
<RunSynchronousCommand wcm:action="add">
<Order>44</Order>
<Path>reg.exe add "HKU\DefaultUser\Software\Microsoft\Windows\CurrentVersion\ContentDeliveryManager" /v "SubscribedContent-353698Enabled" /t REG_DWORD /d 0 /f</Path>
</RunSynchronousCommand>
<RunSynchronousCommand wcm:action="add">
<Order>45</Order>
<Path>reg.exe add "HKU\DefaultUser\Software\Microsoft\Windows\CurrentVersion\ContentDeliveryManager" /v "SystemPaneSuggestionsEnabled" /t REG_DWORD /d 0 /f</Path>
</RunSynchronousCommand>
<RunSynchronousCommand wcm:action="add">
<Order>46</Order>
<Path>reg.exe unload "HKU\DefaultUser"</Path>
</RunSynchronousCommand>
<RunSynchronousCommand wcm:action="add">
<Order>47</Order>
<Path>reg.exe add "HKLM\Software\Policies\Microsoft\Windows\CloudContent" /v "DisableWindowsConsumerFeatures" /t REG_DWORD /d 0 /f</Path>
</RunSynchronousCommand>
<RunSynchronousCommand wcm:action="add">
<Order>48</Order>
<Path>reg.exe add "HKLM\SYSTEM\CurrentControlSet\Control\BitLocker" /v "PreventDeviceEncryption" /t REG_DWORD /d 1 /f</Path>
</RunSynchronousCommand>
<RunSynchronousCommand wcm:action="add">
<Order>49</Order>
<Path>reg.exe load "HKU\DefaultUser" "C:\Users\Default\NTUSER.DAT"</Path>
</RunSynchronousCommand>
<RunSynchronousCommand wcm:action="add">
<Order>50</Order>
<Path>reg.exe add "HKU\DefaultUser\Software\Microsoft\Windows\CurrentVersion\Runonce" /v "ClassicContextMenu" /t REG_SZ /d "reg.exe add \"HKCU\Software\Classes\CLSID\{86ca1aa0-34aa-4e8b-a509-50c905bae2a2}\InprocServer32\" /ve /f" /f</Path>
</RunSynchronousCommand>
<RunSynchronousCommand wcm:action="add">
<Order>51</Order>
<Path>reg.exe unload "HKU\DefaultUser"</Path>
</RunSynchronousCommand>
</RunSynchronous>
</component>
</settings>
<settings pass="auditSystem"></settings>
<settings pass="auditUser"></settings>
<settings pass="oobeSystem">
<component name="Microsoft-Windows-International-Core" processorArchitecture="amd64" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS">
<InputLocale>0409:00000409</InputLocale>
<SystemLocale>en-US</SystemLocale>
<UILanguage>en-US</UILanguage>
<UserLocale>en-US</UserLocale>
</component>
<component name="Microsoft-Windows-Shell-Setup" processorArchitecture="amd64" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS">
<UserAccounts>
<LocalAccounts>
<LocalAccount wcm:action="add">
<Name>User</Name>
<Group>Administrators</Group>
<Password>
<Value></Value>
<PlainText>true</PlainText>
</Password>
</LocalAccount>
</LocalAccounts>
</UserAccounts>
<AutoLogon>
<Username>User</Username>
<Enabled>true</Enabled>
<LogonCount>1</LogonCount>
<Password>
<Value></Value>
<PlainText>true</PlainText>
</Password>
</AutoLogon>
<OOBE>
<ProtectYourPC>3</ProtectYourPC>
<HideEULAPage>true</HideEULAPage>
<HideWirelessSetupInOOBE>true</HideWirelessSetupInOOBE>
</OOBE>
<FirstLogonCommands>
<SynchronousCommand wcm:action="add">
<Order>1</Order>
<CommandLine>reg.exe add "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon" /v AutoLogonCount /t REG_DWORD /d 0 /f</CommandLine>
</SynchronousCommand>
</FirstLogonCommands>
</component>
</settings>
<Extensions xmlns="https://schneegans.de/windows/unattend-generator/">
<ExtractScript>
param(
[xml]$Document
);
$scriptsDir = 'C:\Windows\Setup\Scripts\';
foreach( $file in $Document.unattend.Extensions.File ) {
$path = [System.Environment]::ExpandEnvironmentVariables(
$file.GetAttribute( 'path' )
);
if( $path.StartsWith( $scriptsDir ) ) {
mkdir -Path $scriptsDir -ErrorAction 'SilentlyContinue';
}
$encoding = switch( [System.IO.Path]::GetExtension( $path ) ) {
{ $_ -in '.ps1', '.xml' } { [System.Text.Encoding]::UTF8; }
{ $_ -in '.reg', '.vbs', '.js' } { [System.Text.UnicodeEncoding]::new( $false, $true ); }
default { [System.Text.Encoding]::Default; }
};
[System.IO.File]::WriteAllBytes( $path, ( $encoding.GetPreamble() + $encoding.GetBytes( $file.InnerText.Trim() ) ) );
}
</ExtractScript>
<File path="C:\Windows\Temp\Microwin-RemovePackages.ps1">
$selectors = @(
'Microsoft.Microsoft3DViewer';
'Microsoft.BingSearch';
'Microsoft.WindowsCamera';
'Clipchamp.Clipchamp';
'Microsoft.WindowsAlarms';
'Microsoft.549981C3F5F10';
'Microsoft.Windows.DevHome';
'MicrosoftCorporationII.MicrosoftFamily';
'Microsoft.WindowsFeedbackHub';
'Microsoft.GetHelp';
'Microsoft.Getstarted';
'microsoft.windowscommunicationsapps';
'Microsoft.WindowsMaps';
'Microsoft.BingNews';
'Microsoft.WindowsNotepad';
'Microsoft.MicrosoftOfficeHub';
'Microsoft.Office.OneNote';
'Microsoft.OutlookForWindows';
'Microsoft.MSPaint';
'Microsoft.People';
'Microsoft.PowerAutomateDesktop';
'MicrosoftCorporationII.QuickAssist';
'Microsoft.SkypeApp';
'Microsoft.MicrosoftSolitaireCollection';
'Microsoft.MicrosoftStickyNotes';
'MSTeams';
'Microsoft.Todos';
'Microsoft.WindowsSoundRecorder';
'Microsoft.BingWeather';
'Microsoft.ZuneMusic';
'Microsoft.ZuneVideo';
);
$getCommand = { Get-AppxProvisionedPackage -Online; };
$filterCommand = { $_.DisplayName -eq $selector; };
$removeCommand = {
[CmdletBinding()]
param(
[Parameter( Mandatory, ValueFromPipeline )]
$InputObject
);
process {
$InputObject | Remove-AppxProvisionedPackage -AllUsers -Online -ErrorAction 'Continue';
}
};
$type = 'Package';
$logfile = 'C:\Windows\Temp\Microwin-RemovePackages.log';
&amp; {
$installed = &amp; $getCommand;
foreach( $selector in $selectors ) {
$result = [ordered] @{
Selector = $selector;
};
$found = $installed | Where-Object -FilterScript $filterCommand;
if( $found ) {
$result.Output = $found | &amp; $removeCommand;
if( $? ) {
$result.Message = "$type removed.";
} else {
$result.Message = "$type not removed.";
$result.Error = $Error[0];
}
} else {
$result.Message = "$type not installed.";
}
$result | ConvertTo-Json -Depth 3 -Compress;
}
} *&gt;&amp;1 &gt;&gt; $logfile;
</File>
<File path="C:\Windows\Temp\remove-caps.ps1">
$selectors = @(
'Browser.InternetExplorer';
'MathRecognizer';
'OpenSSH.Client';
'App.Support.QuickAssist';
'App.StepsRecorder';
'Media.WindowsMediaPlayer';
'Microsoft.Windows.WordPad';
);
$getCommand = { Get-WindowsCapability -Online; };
$filterCommand = { ($_.Name -split '~')[0] -eq $selector; };
$removeCommand = {
[CmdletBinding()]
param(
[Parameter( Mandatory, ValueFromPipeline )]
$InputObject
);
process {
$InputObject | Remove-WindowsCapability -Online -ErrorAction 'Continue';
}
};
$type = 'Capability';
$logfile = 'C:\Windows\Temp\remove-caps.log';
&amp; {
$installed = &amp; $getCommand;
foreach( $selector in $selectors ) {
$result = [ordered] @{
Selector = $selector;
};
$found = $installed | Where-Object -FilterScript $filterCommand;
if( $found ) {
$result.Output = $found | &amp; $removeCommand;
if( $? ) {
$result.Message = "$type removed.";
} else {
$result.Message = "$type not removed.";
$result.Error = $Error[0];
}
} else {
$result.Message = "$type not installed.";
}
$result | ConvertTo-Json -Depth 3 -Compress;
}
} *&gt;&amp;1 &gt;&gt; $logfile;
</File>
<File path="C:\Users\Default\AppData\Local\Microsoft\Windows\Shell\LayoutModification.xml"><![CDATA[
<LayoutModificationTemplate Version="1" xmlns="http://schemas.microsoft.com/Start/2014/LayoutModification">
<LayoutOptions StartTileGroupCellWidth="6" />
<DefaultLayoutOverride>
<StartLayoutCollection>
<StartLayout GroupCellWidth="6" xmlns="http://schemas.microsoft.com/Start/2014/FullDefaultLayout" />
</StartLayoutCollection>
</DefaultLayoutOverride>
</LayoutModificationTemplate>
]]></File>
</Extensions>
</unattend>
+77 -55
View File
@@ -1,10 +1,9 @@
{ {
"WPFFeaturesdotnet": { "WPFFeaturesdotnet": {
"Content": "All .Net Framework (2,3,4)", "Content": ".NET Framework (Versions 2, 3, 4) - Enable",
"Description": ".NET and .NET Framework is a developer platform made up of tools, programming languages, and libraries for building many different types of applications.", "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", "category": "Features",
"panel": "1", "panel": "1",
"Order": "a010_",
"feature": [ "feature": [
"NetFx4-AdvSrvs", "NetFx4-AdvSrvs",
"NetFx3" "NetFx3"
@@ -12,26 +11,31 @@
"InvokeScript": [], "InvokeScript": [],
"link": "https://winutil.christitus.com/dev/features/features/dotnet" "link": "https://winutil.christitus.com/dev/features/features/dotnet"
}, },
"WPFFixesNTPPool": {
"Content": "NTP Server - Enable",
"Description": "Replaces the default Windows NTP server (time.windows.com) with pool.ntp.org for improved time synchronization accuracy and reliability.",
"category": "Fixes",
"panel": "1",
"Type": "Button",
"ButtonWidth": "300",
"function": "Invoke-WPFFixesNTPPool",
"link": "https://winutil.christitus.com/dev/features/fixes/ntppool"
},
"WPFFeatureshyperv": { "WPFFeatureshyperv": {
"Content": "HyperV Virtualization", "Content": "Hyper-V - Enable",
"Description": "Hyper-V is a hardware virtualization product developed by Microsoft that allows users to create and manage virtual machines.", "Description": "Hyper-V is a hardware virtualization product developed by Microsoft that allows users to create and manage virtual machines.",
"category": "Features", "category": "Features",
"panel": "1", "panel": "1",
"Order": "a011_",
"feature": [ "feature": [
"Microsoft-Hyper-V-All" "Microsoft-Hyper-V-All"
], ],
"InvokeScript": [
"bcdedit /set hypervisorschedulertype classic"
],
"link": "https://winutil.christitus.com/dev/features/features/hyperv" "link": "https://winutil.christitus.com/dev/features/features/hyperv"
}, },
"WPFFeatureslegacymedia": { "WPFFeatureslegacymedia": {
"Content": "Legacy Media (WMP, DirectPlay)", "Content": "Legacy Media Components (WMP, DirectPlay) - Enable",
"Description": "Enables legacy programs from previous versions of windows", "Description": "Enables legacy programs from previous versions of Windows.",
"category": "Features", "category": "Features",
"panel": "1", "panel": "1",
"Order": "a012_",
"feature": [ "feature": [
"WindowsMediaPlayer", "WindowsMediaPlayer",
"MediaPlayback", "MediaPlayback",
@@ -42,11 +46,10 @@
"link": "https://winutil.christitus.com/dev/features/features/legacymedia" "link": "https://winutil.christitus.com/dev/features/features/legacymedia"
}, },
"WPFFeaturewsl": { "WPFFeaturewsl": {
"Content": "Windows Subsystem for Linux", "Content": "Windows Subsystem for Linux (WSL) - Enable",
"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.", "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", "category": "Features",
"panel": "1", "panel": "1",
"Order": "a020_",
"feature": [ "feature": [
"VirtualMachinePlatform", "VirtualMachinePlatform",
"Microsoft-Windows-Subsystem-Linux" "Microsoft-Windows-Subsystem-Linux"
@@ -55,11 +58,10 @@
"link": "https://winutil.christitus.com/dev/features/features/wsl" "link": "https://winutil.christitus.com/dev/features/features/wsl"
}, },
"WPFFeaturenfs": { "WPFFeaturenfs": {
"Content": "NFS - Network File System", "Content": "Network File System (NFS) - Enable",
"Description": "Network File System (NFS) is a mechanism for storing files on a network.", "Description": "Network File System (NFS) is a mechanism for storing files on a network.",
"category": "Features", "category": "Features",
"panel": "1", "panel": "1",
"Order": "a014_",
"feature": [ "feature": [
"ServicesForNFS-ClientOnly", "ServicesForNFS-ClientOnly",
"ClientForNFS-Infrastructure", "ClientForNFS-Infrastructure",
@@ -75,11 +77,10 @@
"link": "https://winutil.christitus.com/dev/features/features/nfs" "link": "https://winutil.christitus.com/dev/features/features/nfs"
}, },
"WPFFeatureRegBackup": { "WPFFeatureRegBackup": {
"Content": "Enable Daily Registry Backup Task 12.30am", "Content": "Registry Backup (Daily Task 12:30am) - Enable",
"Description": "Enables daily registry backup, previously disabled by Microsoft in Windows 10 1803.", "Description": "Enables daily registry backup, previously disabled by Microsoft in Windows 10 1803.",
"category": "Features", "category": "Features",
"panel": "1", "panel": "1",
"Order": "a017_",
"feature": [], "feature": [],
"InvokeScript": [ "InvokeScript": [
" "
@@ -93,11 +94,10 @@
"link": "https://winutil.christitus.com/dev/features/features/regbackup" "link": "https://winutil.christitus.com/dev/features/features/regbackup"
}, },
"WPFFeatureEnableLegacyRecovery": { "WPFFeatureEnableLegacyRecovery": {
"Content": "Enable Legacy F8 Boot Recovery", "Content": "Legacy F8 Boot Recovery - Enable",
"Description": "Enables Advanced Boot Options screen that lets you start Windows in advanced troubleshooting modes.", "Description": "Enables Advanced Boot Options screen that lets you start Windows in advanced troubleshooting modes.",
"category": "Features", "category": "Features",
"panel": "1", "panel": "1",
"Order": "a018_",
"feature": [], "feature": [],
"InvokeScript": [ "InvokeScript": [
"bcdedit /set bootmenupolicy legacy" "bcdedit /set bootmenupolicy legacy"
@@ -105,23 +105,21 @@
"link": "https://winutil.christitus.com/dev/features/features/enablelegacyrecovery" "link": "https://winutil.christitus.com/dev/features/features/enablelegacyrecovery"
}, },
"WPFFeatureDisableLegacyRecovery": { "WPFFeatureDisableLegacyRecovery": {
"Content": "Disable Legacy F8 Boot Recovery", "Content": "Legacy F8 Boot Recovery - Disable",
"Description": "Disables Advanced Boot Options screen that lets you start Windows in advanced troubleshooting modes.", "Description": "Disables Advanced Boot Options screen that lets you start Windows in advanced troubleshooting modes.",
"category": "Features", "category": "Features",
"panel": "1", "panel": "1",
"Order": "a019_",
"feature": [], "feature": [],
"InvokeScript": [ "InvokeScript": [
"bcdedit /set bootmenupolicy standard" "bcdedit /set bootmenupolicy standard"
], ],
"link": "https://winutil.christitus.com/dev/features/features/disablelegacyrecovery" "link": "https://winutil.christitus.com/dev/features/features/disablelegacyrecovery"
}, },
"WPFFeaturesSandbox": { "WPFFeaturesSandbox": {
"Content": "Windows Sandbox", "Content": "Windows Sandbox - Enable",
"Description": "Windows Sandbox is a lightweight virtual machine that provides a temporary desktop environment to safely run applications and programs in isolation.", "Description": "Windows Sandbox is a lightweight virtual machine that provides a temporary desktop environment to safely run applications and programs in isolation.",
"category": "Features", "category": "Features",
"panel": "1", "panel": "1",
"Order": "a021_",
"feature": [ "feature": [
"Containers-DisposableClientVM" "Containers-DisposableClientVM"
], ],
@@ -131,71 +129,65 @@
"Content": "Install Features", "Content": "Install Features",
"category": "Features", "category": "Features",
"panel": "1", "panel": "1",
"Order": "a060_",
"Type": "Button", "Type": "Button",
"ButtonWidth": "300", "ButtonWidth": "300",
"function": "Invoke-WPFFeatureInstall",
"link": "https://winutil.christitus.com/dev/features/features/install" "link": "https://winutil.christitus.com/dev/features/features/install"
}, },
"WPFPanelAutologin": { "WPFPanelAutologin": {
"Content": "Set Up Autologin", "Content": "AutoLogon - Run",
"category": "Fixes", "category": "Fixes",
"Order": "a040_",
"panel": "1", "panel": "1",
"Type": "Button", "Type": "Button",
"ButtonWidth": "300", "ButtonWidth": "300",
"function": "Invoke-WPFPanelAutologin",
"link": "https://winutil.christitus.com/dev/features/fixes/autologin" "link": "https://winutil.christitus.com/dev/features/fixes/autologin"
}, },
"WPFFixesUpdate": { "WPFFixesUpdate": {
"Content": "Reset Windows Update", "Content": "Windows Update - Reset",
"category": "Fixes", "category": "Fixes",
"panel": "1", "panel": "1",
"Order": "a041_",
"Type": "Button", "Type": "Button",
"ButtonWidth": "300", "ButtonWidth": "300",
"function": "Invoke-WPFFixesUpdate",
"link": "https://winutil.christitus.com/dev/features/fixes/update" "link": "https://winutil.christitus.com/dev/features/fixes/update"
}, },
"WPFFixesNetwork": { "WPFFixesNetwork": {
"Content": "Reset Network", "Content": "Network - Reset",
"category": "Fixes", "category": "Fixes",
"Order": "a042_",
"panel": "1", "panel": "1",
"Type": "Button", "Type": "Button",
"ButtonWidth": "300", "ButtonWidth": "300",
"function": "Invoke-WPFFixesNetwork",
"link": "https://winutil.christitus.com/dev/features/fixes/network" "link": "https://winutil.christitus.com/dev/features/fixes/network"
}, },
"WPFPanelDISM": { "WPFPanelDISM": {
"Content": "System Corruption Scan", "Content": "System Corruption Scan - Run",
"category": "Fixes", "category": "Fixes",
"panel": "1", "panel": "1",
"Order": "a043_",
"Type": "Button", "Type": "Button",
"ButtonWidth": "300", "ButtonWidth": "300",
"function": "Invoke-WPFSystemRepair",
"link": "https://winutil.christitus.com/dev/features/fixes/dism" "link": "https://winutil.christitus.com/dev/features/fixes/dism"
}, },
"WPFFixesWinget": { "WPFFixesWinget": {
"Content": "WinGet Reinstall", "Content": "WinGet - Reinstall",
"category": "Fixes", "category": "Fixes",
"panel": "1", "panel": "1",
"Order": "a044_",
"Type": "Button", "Type": "Button",
"ButtonWidth": "300", "ButtonWidth": "300",
"function": "Invoke-WPFFixesWinget",
"link": "https://winutil.christitus.com/dev/features/fixes/winget" "link": "https://winutil.christitus.com/dev/features/fixes/winget"
}, },
"WPFRunAdobeCCCleanerTool": {
"Content": "Remove Adobe Creative Cloud",
"category": "Fixes",
"panel": "1",
"Order": "a045_",
"Type": "Button",
"ButtonWidth": "300",
"link": "https://winutil.christitus.com/dev/features/fixes/runadobecccleanertool"
},
"WPFPanelControl": { "WPFPanelControl": {
"Content": "Control Panel", "Content": "Control Panel",
"category": "Legacy Windows Panels", "category": "Legacy Windows Panels",
"panel": "2", "panel": "2",
"Type": "Button", "Type": "Button",
"ButtonWidth": "300", "ButtonWidth": "300",
"InvokeScript": [
"control"
],
"link": "https://winutil.christitus.com/dev/features/legacy-windows-panels/control" "link": "https://winutil.christitus.com/dev/features/legacy-windows-panels/control"
}, },
"WPFPanelComputer": { "WPFPanelComputer": {
@@ -204,6 +196,9 @@
"panel": "2", "panel": "2",
"Type": "Button", "Type": "Button",
"ButtonWidth": "300", "ButtonWidth": "300",
"InvokeScript": [
"compmgmt.msc"
],
"link": "https://winutil.christitus.com/dev/features/legacy-windows-panels/computer" "link": "https://winutil.christitus.com/dev/features/legacy-windows-panels/computer"
}, },
"WPFPanelNetwork": { "WPFPanelNetwork": {
@@ -212,6 +207,9 @@
"panel": "2", "panel": "2",
"Type": "Button", "Type": "Button",
"ButtonWidth": "300", "ButtonWidth": "300",
"InvokeScript": [
"ncpa.cpl"
],
"link": "https://winutil.christitus.com/dev/features/legacy-windows-panels/network" "link": "https://winutil.christitus.com/dev/features/legacy-windows-panels/network"
}, },
"WPFPanelPower": { "WPFPanelPower": {
@@ -220,6 +218,9 @@
"panel": "2", "panel": "2",
"Type": "Button", "Type": "Button",
"ButtonWidth": "300", "ButtonWidth": "300",
"InvokeScript": [
"powercfg.cpl"
],
"link": "https://winutil.christitus.com/dev/features/legacy-windows-panels/power" "link": "https://winutil.christitus.com/dev/features/legacy-windows-panels/power"
}, },
"WPFPanelPrinter": { "WPFPanelPrinter": {
@@ -228,6 +229,9 @@
"panel": "2", "panel": "2",
"Type": "Button", "Type": "Button",
"ButtonWidth": "300", "ButtonWidth": "300",
"InvokeScript": [
"Start-Process 'shell:::{A8A91A66-3A7D-4424-8D24-04E180695C7A}'"
],
"link": "https://winutil.christitus.com/dev/features/legacy-windows-panels/printer" "link": "https://winutil.christitus.com/dev/features/legacy-windows-panels/printer"
}, },
"WPFPanelRegion": { "WPFPanelRegion": {
@@ -236,6 +240,9 @@
"panel": "2", "panel": "2",
"Type": "Button", "Type": "Button",
"ButtonWidth": "300", "ButtonWidth": "300",
"InvokeScript": [
"intl.cpl"
],
"link": "https://winutil.christitus.com/dev/features/legacy-windows-panels/region" "link": "https://winutil.christitus.com/dev/features/legacy-windows-panels/region"
}, },
"WPFPanelRestore": { "WPFPanelRestore": {
@@ -244,6 +251,9 @@
"panel": "2", "panel": "2",
"Type": "Button", "Type": "Button",
"ButtonWidth": "300", "ButtonWidth": "300",
"InvokeScript": [
"rstrui.exe"
],
"link": "https://winutil.christitus.com/dev/features/legacy-windows-panels/restore" "link": "https://winutil.christitus.com/dev/features/legacy-windows-panels/restore"
}, },
"WPFPanelSound": { "WPFPanelSound": {
@@ -252,7 +262,10 @@
"panel": "2", "panel": "2",
"Type": "Button", "Type": "Button",
"ButtonWidth": "300", "ButtonWidth": "300",
"link": "https://winutil.christitus.com/dev/features/legacy-windows-panels/user" "InvokeScript": [
"mmsys.cpl"
],
"link": "https://winutil.christitus.com/dev/features/legacy-windows-panels/sound"
}, },
"WPFPanelSystem": { "WPFPanelSystem": {
"Content": "System Properties", "Content": "System Properties",
@@ -260,6 +273,9 @@
"panel": "2", "panel": "2",
"Type": "Button", "Type": "Button",
"ButtonWidth": "300", "ButtonWidth": "300",
"InvokeScript": [
"sysdm.cpl"
],
"link": "https://winutil.christitus.com/dev/features/legacy-windows-panels/system" "link": "https://winutil.christitus.com/dev/features/legacy-windows-panels/system"
}, },
"WPFPanelTimedate": { "WPFPanelTimedate": {
@@ -268,30 +284,36 @@
"panel": "2", "panel": "2",
"Type": "Button", "Type": "Button",
"ButtonWidth": "300", "ButtonWidth": "300",
"InvokeScript": [
"timedate.cpl"
],
"link": "https://winutil.christitus.com/dev/features/legacy-windows-panels/timedate" "link": "https://winutil.christitus.com/dev/features/legacy-windows-panels/timedate"
}, },
"WPFWinUtilInstallPSProfile": { "WPFWinUtilInstallPSProfile": {
"Content": "Install CTT PowerShell Profile", "Content": "CTT PowerShell Profile - Install",
"category": "Powershell Profile", "category": "Powershell Profile Powershell 7+ Only",
"panel": "2", "panel": "2",
"Order": "a083_",
"Type": "Button", "Type": "Button",
"ButtonWidth": "300" "ButtonWidth": "300",
"function": "Invoke-WinUtilInstallPSProfile",
"link": "https://winutil.christitus.com/dev/features/powershell-profile-powershell-7--only/installpsprofile"
}, },
"WPFWinUtilUninstallPSProfile": { "WPFWinUtilUninstallPSProfile": {
"Content": "Uninstall CTT PowerShell Profile", "Content": "CTT PowerShell Profile - Remove",
"category": "Powershell Profile", "category": "Powershell Profile Powershell 7+ Only",
"panel": "2", "panel": "2",
"Order": "a084_",
"Type": "Button", "Type": "Button",
"ButtonWidth": "300" "ButtonWidth": "300",
"function": "Invoke-WinUtilUninstallPSProfile",
"link": "https://winutil.christitus.com/dev/features/powershell-profile-powershell-7--only/uninstallpsprofile"
}, },
"WPFWinUtilSSHServer": { "WPFWinUtilSSHServer": {
"Content": "Enable OpenSSH Server", "Content": "OpenSSH Server - Enable",
"category": "Remote Access", "category": "Remote Access",
"panel": "2", "panel": "2",
"Order": "a084_",
"Type": "Button", "Type": "Button",
"ButtonWidth": "300" "ButtonWidth": "300",
"function": "Invoke-WPFSSHServer",
"link": "https://winutil.christitus.com/dev/features/remote-access/sshserver"
} }
} }
+23 -4
View File
@@ -4,21 +4,40 @@
"WPFTweaksConsumerFeatures", "WPFTweaksConsumerFeatures",
"WPFTweaksDisableExplorerAutoDiscovery", "WPFTweaksDisableExplorerAutoDiscovery",
"WPFTweaksWPBT", "WPFTweaksWPBT",
"WPFTweaksDVR", "WPFTweaksDeBloat",
"WPFTweaksLocation", "WPFTweaksLocation",
"WPFTweaksServices", "WPFTweaksServices",
"WPFTweaksTelemetry", "WPFTweaksTelemetry",
"WPFTweaksDeliveryOptimization",
"WPFTweaksDiskCleanup", "WPFTweaksDiskCleanup",
"WPFTweaksDeleteTempFiles", "WPFTweaksDeleteTempFiles",
"WPFTweaksEndTaskOnTaskbar", "WPFTweaksEndTaskOnTaskbar",
"WPFTweaksRestorePoint", "WPFTweaksRestorePoint"
"WPFTweaksPowershell7Tele"
], ],
"Minimal": [ "Minimal": [
"WPFTweaksConsumerFeatures", "WPFTweaksConsumerFeatures",
"WPFTweaksDisableExplorerAutoDiscovery", "WPFTweaksDeBloat",
"WPFTweaksWPBT", "WPFTweaksWPBT",
"WPFTweaksServices", "WPFTweaksServices",
"WPFTweaksTelemetry" "WPFTweaksTelemetry"
],
"Advanced": [
"WPFTweaksActivity",
"WPFTweaksConsumerFeatures",
"WPFTweaksDisableExplorerAutoDiscovery",
"WPFTweaksWPBT",
"WPFTweaksDeBloat",
"WPFTweaksLocation",
"WPFTweaksServices",
"WPFTweaksTelemetry",
"WPFTweaksDeliveryOptimization",
"WPFTweaksDeleteTempFiles",
"WPFTweaksEndTaskOnTaskbar",
"WPFTweaksDisableStoreSearch",
"WPFTweaksRevertStartMenu",
"WPFTweaksWidget",
"WPFTweaksRemoveOneDrive",
"WPFTweaksWindowsAI",
"WPFTweaksRightClickMenu"
] ]
} }
+122 -125
View File
@@ -1,127 +1,124 @@
{ {
"shared":{ "shared": {
"AppEntryWidth": "130", "AppEntryWidth": "200",
"AppEntryFontSize": "11", "AppEntryFontSize": "11",
"AppEntryMargin": "1,1,1,1", "AppEntryMargin": "1,0,1,0",
"AppEntryBorderThickness": "0", "AppEntryBorderThickness": "0",
"CustomDialogFontSize": "12", "CustomDialogFontSize": "12",
"CustomDialogFontSizeHeader": "14", "CustomDialogFontSizeHeader": "14",
"CustomDialogLogoSize": "25", "CustomDialogLogoSize": "25",
"CustomDialogWidth": "400", "CustomDialogWidth": "400",
"CustomDialogHeight": "200", "CustomDialogHeight": "200",
"FontSize": "12", "FontSize": "12",
"FontFamily": "Arial", "FontFamily": "Arial",
"HeaderFontSize": "16", "HeaderFontSize": "16",
"HeaderFontFamily": "Consolas, Monaco", "HeaderFontFamily": "Consolas, Monaco",
"CheckBoxBulletDecoratorSize": "14", "CheckBoxBulletDecoratorSize": "14",
"CheckBoxMargin": "15,0,0,2", "CheckBoxMargin": "15,0,0,2",
"TabContentMargin": "5", "TabContentMargin": "5",
"TabButtonFontSize": "14", "TabButtonFontSize": "14",
"TabButtonWidth": "110", "TabButtonWidth": "110",
"TabButtonHeight": "26", "TabButtonHeight": "26",
"TabRowHeightInPixels": "50", "TabRowHeightInPixels": "50",
"ToolTipWidth": "300", "ToolTipWidth": "300",
"IconFontSize": "14", "IconFontSize": "14",
"IconButtonSize": "35", "IconButtonSize": "35",
"SettingsIconFontSize": "18", "SettingsIconFontSize": "18",
"CloseIconFontSize": "18", "CloseIconFontSize": "18",
"MicroWinLogoSize": "10", "GroupBorderBackgroundColor": "#232629",
"MicrowinCheckBoxMargin": "-10,5,0,0", "ButtonFontSize": "12",
"GroupBorderBackgroundColor": "#232629", "ButtonFontFamily": "Arial",
"ButtonFontSize": "12", "ButtonWidth": "200",
"ButtonFontFamily": "Arial", "ButtonHeight": "25",
"ButtonWidth": "200", "ConfigTabButtonFontSize": "14",
"ButtonHeight": "25", "ConfigUpdateButtonFontSize": "14",
"ConfigTabButtonFontSize": "14", "SearchBarWidth": "200",
"ConfigUpdateButtonFontSize": "14", "SearchBarHeight": "26",
"SearchBarWidth": "200", "SearchBarTextBoxFontSize": "12",
"SearchBarHeight": "26", "SearchBarClearButtonFontSize": "14",
"SearchBarTextBoxFontSize": "12", "CheckboxMouseOverColor": "#999999",
"SearchBarClearButtonFontSize": "14", "ButtonBorderThickness": "1",
"CheckboxMouseOverColor": "#999999", "ButtonMargin": "1",
"ButtonBorderThickness": "1", "ButtonCornerRadius": "2"
"ButtonMargin": "1", },
"ButtonCornerRadius": "2" "Light": {
}, "AppInstallUnselectedColor": "#F7F7F7",
"Light": { "AppInstallHighlightedColor": "#CFCFCF",
"AppInstallUnselectedColor": "#F7F7F7", "AppInstallSelectedColor": "#C2C2C2",
"AppInstallHighlightedColor": "#CFCFCF", "AppInstallOverlayBackgroundColor": "#6A6D72",
"AppInstallSelectedColor": "#C2C2C2", "ComboBoxForegroundColor": "#232629",
"AppInstallOverlayBackgroundColor":"#6A6D72", "ComboBoxBackgroundColor": "#F7F7F7",
"ComboBoxForegroundColor": "#232629", "LabelboxForegroundColor": "#232629",
"ComboBoxBackgroundColor": "#F7F7F7", "MainForegroundColor": "#232629",
"LabelboxForegroundColor": "#232629", "MainBackgroundColor": "#F7F7F7",
"MainForegroundColor": "#232629", "LabelBackgroundColor": "#F7F7F7",
"MainBackgroundColor": "#F7F7F7", "LinkForegroundColor": "#484848",
"LabelBackgroundColor": "#F7F7F7", "LinkHoverForegroundColor": "#232629",
"LinkForegroundColor": "#484848", "ScrollBarBackgroundColor": "#4A4D52",
"LinkHoverForegroundColor": "#232629", "ScrollBarHoverColor": "#5A5D62",
"ScrollBarBackgroundColor": "#4A4D52", "ScrollBarDraggingColor": "#6A6D72",
"ScrollBarHoverColor": "#5A5D62", "ProgressBarForegroundColor": "#2E77FF",
"ScrollBarDraggingColor": "#6A6D72", "ProgressBarBackgroundColor": "Transparent",
"ProgressBarTextColor": "#232629",
"MicrowinBusyColor": "#2e77ff", "ButtonInstallBackgroundColor": "#F7F7F7",
"ProgressBarForegroundColor": "#2e77ff", "ButtonTweaksBackgroundColor": "#F7F7F7",
"ProgressBarBackgroundColor": "Transparent", "ButtonConfigBackgroundColor": "#F7F7F7",
"ProgressBarTextColor": "#232629", "ButtonUpdatesBackgroundColor": "#F7F7F7",
"ButtonInstallBackgroundColor": "#F7F7F7", "ButtonWin11ISOBackgroundColor": "#F7F7F7",
"ButtonTweaksBackgroundColor": "#F7F7F7", "ButtonInstallForegroundColor": "#232629",
"ButtonConfigBackgroundColor": "#F7F7F7", "ButtonTweaksForegroundColor": "#232629",
"ButtonUpdatesBackgroundColor": "#F7F7F7", "ButtonConfigForegroundColor": "#232629",
"ButtonInstallForegroundColor": "#232629", "ButtonUpdatesForegroundColor": "#232629",
"ButtonTweaksForegroundColor": "#232629", "ButtonWin11ISOForegroundColor": "#232629",
"ButtonConfigForegroundColor": "#232629", "ButtonBackgroundColor": "#F5F5F5",
"ButtonUpdatesForegroundColor": "#232629", "ButtonBackgroundPressedColor": "#1A1A1A",
"ButtonBackgroundColor": "#F5F5F5", "ButtonBackgroundMouseoverColor": "#C2C2C2",
"ButtonBackgroundPressedColor": "#1A1A1A", "ButtonBackgroundSelectedColor": "#F0F0F0",
"ButtonBackgroundMouseoverColor": "#C2C2C2", "ButtonForegroundColor": "#232629",
"ButtonBackgroundSelectedColor": "#F0F0F0", "ToggleButtonOnColor": "#2E77FF",
"ButtonForegroundColor": "#232629", "ToggleButtonOffColor": "#707070",
"ToggleButtonOnColor": "#2e77ff", "ToolTipBackgroundColor": "#F7F7F7",
"ToggleButtonOffColor": "#707070", "BorderColor": "#232629",
"ToolTipBackgroundColor": "#F7F7F7", "BorderOpacity": "0.2"
"BorderColor": "#232629", },
"BorderOpacity": "0.2" "Dark": {
"AppInstallUnselectedColor": "#232629",
}, "AppInstallHighlightedColor": "#3C3C3C",
"Dark": { "AppInstallSelectedColor": "#4C4C4C",
"AppInstallUnselectedColor": "#232629", "AppInstallOverlayBackgroundColor": "#2E3135",
"AppInstallHighlightedColor": "#3C3C3C", "ComboBoxForegroundColor": "#F7F7F7",
"AppInstallSelectedColor": "#4C4C4C", "ComboBoxBackgroundColor": "#1E3747",
"AppInstallOverlayBackgroundColor":"#2E3135", "LabelboxForegroundColor": "#5BDCFF",
"ComboBoxForegroundColor": "#F7F7F7", "MainForegroundColor": "#F7F7F7",
"ComboBoxBackgroundColor": "#1E3747", "MainBackgroundColor": "#232629",
"LabelboxForegroundColor": "#0567ff", "LabelBackgroundColor": "#232629",
"MainForegroundColor": "#F7F7F7", "LinkForegroundColor": "#ADD8E6",
"MainBackgroundColor": "#232629", "LinkHoverForegroundColor": "#F7F7F7",
"LabelBackgroundColor": "#232629", "ScrollBarBackgroundColor": "#2E3135",
"LinkForegroundColor": "#add8e6", "ScrollBarHoverColor": "#3B4252",
"LinkHoverForegroundColor": "#F7F7F7", "ScrollBarDraggingColor": "#5E81AC",
"ScrollBarBackgroundColor": "#2E3135", "ProgressBarForegroundColor": "#222222",
"ScrollBarHoverColor": "#3B4252", "ProgressBarBackgroundColor": "Transparent",
"ScrollBarDraggingColor": "#5E81AC", "ProgressBarTextColor": "#232629",
"ButtonInstallBackgroundColor": "#222222",
"MicrowinBusyColor": "#2e77ff", "ButtonTweaksBackgroundColor": "#333333",
"ProgressBarForegroundColor": "#222222", "ButtonConfigBackgroundColor": "#444444",
"ProgressBarBackgroundColor": "Transparent", "ButtonUpdatesBackgroundColor": "#555555",
"ProgressBarTextColor": "#232629", "ButtonWin11ISOBackgroundColor": "#666666",
"ButtonInstallBackgroundColor": "#222222", "ButtonInstallForegroundColor": "#F7F7F7",
"ButtonTweaksBackgroundColor": "#333333", "ButtonTweaksForegroundColor": "#F7F7F7",
"ButtonConfigBackgroundColor": "#444444", "ButtonConfigForegroundColor": "#F7F7F7",
"ButtonUpdatesBackgroundColor": "#555555", "ButtonUpdatesForegroundColor": "#F7F7F7",
"ButtonInstallForegroundColor": "#F7F7F7", "ButtonWin11ISOForegroundColor": "#F7F7F7",
"ButtonTweaksForegroundColor": "#F7F7F7", "ButtonBackgroundColor": "#1E3747",
"ButtonConfigForegroundColor": "#F7F7F7", "ButtonBackgroundPressedColor": "#F7F7F7",
"ButtonUpdatesForegroundColor": "#F7F7F7", "ButtonBackgroundMouseoverColor": "#3B4252",
"ButtonBackgroundColor": "#1E3747", "ButtonBackgroundSelectedColor": "#5E81AC",
"ButtonBackgroundPressedColor": "#F7F7F7", "ButtonForegroundColor": "#F7F7F7",
"ButtonBackgroundMouseoverColor": "#3B4252", "ToggleButtonOnColor": "#2E77FF",
"ButtonBackgroundSelectedColor": "#5E81AC", "ToggleButtonOffColor": "#707070",
"ButtonForegroundColor": "#F7F7F7", "ToolTipBackgroundColor": "#2F373D",
"ToggleButtonOnColor": "#2e77ff", "BorderColor": "#2F373D",
"ToggleButtonOffColor": "#707070", "BorderOpacity": "0.2"
"ToolTipBackgroundColor": "#2F373D", }
"BorderColor": "#2F373D",
"BorderOpacity": "0.2"
}
} }
+1146 -2268
View File
File diff suppressed because it is too large Load Diff
+2 -1
View File
@@ -1,5 +1,6 @@
--- ---
title: '{{ replace .File.ContentBaseName "-" " " | title }}'
description: ""
date: '{{ .Date }}' date: '{{ .Date }}'
draft: true draft: true
title: '{{ replace .File.ContentBaseName "-" " " | title }}'
--- ---
Binary file not shown.

Before

Width:  |  Height:  |  Size: 9.6 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 194 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 6.8 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 14 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 22 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 27 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 28 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 164 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 179 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 164 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 164 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 92 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 124 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 109 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 108 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 77 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 14 MiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 18 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 17 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.2 MiB

After

Width:  |  Height:  |  Size: 173 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 123 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 122 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 67 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 9.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 139 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 139 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 139 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 139 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 139 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 18 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 164 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 149 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 55 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 45 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 7.8 KiB

+119 -81
View File
@@ -2,114 +2,152 @@
toc: true toc: true
--- ---
# How to Contribute? ## Contributing Code
## Testing ### Before You Start
* Test the latest changes to Winutil by running the pre-release and reporting issues you are encountering to help us continually improve Winutil! - Keep each pull request focused on a single feature or fix.
- Avoid unnecessary formatting changes or large unrelated edits.
- Document what changed and why in your PR description.
#### **Run the latest pre-release** ---
```
irm https://christitus.com/windev | iex
```
> [!WARNING] ## Basic Git Workflow
> This is a pre-release and should be treated as such. It exists for developers to test the utility and report or fix bugs before they get added to the stable release. Don't use it in production!
## Issues ### 1. Fork the Repository
* If you encounter any challenges or problems with the script, I kindly request that you submit them via the "Issues" tab on the GitHub repository. By filling out the provided template, you can provide specific details about the issue, allowing me (and others in the community) to promptly address any bugs or consider feature requests. Go to the ChrisTitusTech/winutil repository on GitHub and click the Fork button in the top right corner.
## Contribute Code <img width="171" height="50" alt="{650A4723-F38A-44A4-9820-D232BC87C8A0}" src="https://github.com/user-attachments/assets/a214f27c-2fee-444a-920f-d87b14f5896f" />
* Pull requests are now handled directly on the **MAIN branch**. This was done since we can now select specific releases to launch via releases in GitHub. ---
* If you're doing code changes, then you can submit a PR to `main` branch, but I am very selective about these. ### 2. Clone Your Fork
> [!IMPORTANT] ```bash
> Do not use a code formatter, make massive amounts of line changes, or make multiple feature changes. EACH FEATURE CHANGE SHOULD BE IT'S OWN PULL REQUEST! git clone https://github.com/YOUR_USERNAME/winutil.git
cd winutil
* When creating pull requests, it is essential to thoroughly document all changes made. This includes, but is not limited to, documenting any additions made to the `tweaks` section and corresponding `undo tweak`, so users are able to remove the newly added tweaks if necessary, and comprehensive documentation is required for all code changes. Document your changes and briefly explain why you made your changes in your Pull Request Description. Failure to adhere to this format may result in the denial of the pull request. Additionally, any code lacking sufficient documentation may also be denied.
* By following these guidelines, we can maintain a high standard of quality and ensure that the codebase remains organized and well-documented.
> [!NOTE]
> When creating a function, please include "WPF" or "Winutil" in the file name so it can be loaded into the runspace.
## Walk through
* This is a guide for beginners. If you are still having issues, look at the following official GitHub documentation:
* [Commit through WEB](https://docs.github.com/en/pull-requests/committing-changes-to-your-project/creating-and-editing-commits/about-commits)
* [Commit through GitHub Desktop](https://docs.github.com/en/desktop/making-changes-in-a-branch/committing-and-reviewing-changes-to-your-project-in-github-desktop#about-commits)
* [Create a Pull Request](https://docs.github.com/en/pull-requests/collaborating-with-pull-requests/proposing-changes-to-your-work-with-pull-requests/creating-a-pull-request)
### Overview
``` mermaid
%%{init: {"flowchart": {"curve": "cardinal"}} }%%
graph TD
  A[Fork Project] --> B[Clone Repository];
  B --> C[Create New Branch];
  C --> D[Make Changes];
  D --> G[Test Changes];
  G --> H{Tests Passed?};
  H -->|Yes| E[Commit Changes];
  H -->|No| J[Fix Issues];
  J --> G;
  E --> F[Push Branch];
  F --> K[Create Pull Request];
  K --> L[Fill out PR template];
classDef default stroke:#333,stroke-width:4px,font-size:12pt;
``` ```
> [!NOTE]
> This is a diagram to guide you through the process. It may vary depending on the type of change you're making.
### Fork the Repo ---
* Fork the Winutil Repository [here](https://github.com/ChrisTitusTech/Winutil) to create a copy that will be available in your repository list.
{{< image src="images/Fork-Button" alt="Fork Image" >}} ### 3. Create a Branch
### Clone the Fork Never work directly on `main`.
> [!TIP] Create a branch related to your change:
> While you can make your changes directly through the Web, we recommend cloning the repo to your device using the application GitHub Desktop (available in Winutil) to test your fork easily.
* Install GitHub Desktop if it is not already installed. ```bash
* Log in using the same GitHub account you used to fork Winutil. git checkout -b feature-name
* Choose the fork under "Your Repositories" and press "clone {repo name}" ```
* Create a new branch and name it something relatable to your changes.
* Now you can modify Winutil to your liking using your preferred text editor. Example:
```bash
git checkout -b add-firefox-tweak
```
### Testing your changes ---
* To test to see if your changes work as intended run following commands in a powershell teminal as admin: ### 4. Edit the Code
* Change the directory where you are running the commands to the forked project. Open the project in your preferred text editor and make your changes.
* `cd {path to the folder with the compile.ps1}`
* Run the following command to compile and run Winutil:
* `.\Compile.ps1 -run`
{{< image src="images/Compile" alt="Compile" >}} Keep changes small and focused.
* After seeing that your changes work properly, feel free to commit the changes to the repository and make a PR. For help on that, follow the documentation below. ---
### Committing the changes ### 5. Test Your Changes
* Before committing your changes, please discard changes made to the `Winutil.ps1` file, like the following:
{{< image src="images/Discard-GHD" alt="Push Commit Image" >}} Open PowerShell as Administrator.
* Now, commit your changes once you are happy with the result. Go to the project folder:
{{< image src="images/Commit-GHD" alt="Commit Image" >}} ```powershell
cd path\to\winutil
```
* Push the changes to upload them to your fork on github.com. Run:
{{< image src="images/Push-Commit" alt="Push Commit Image" >}} ```powershell
.\Compile.ps1 -Run
```
### Making a PR Verify:
* To make a PR on your repo under a new branch linking to the main branch, a button will show and say Preview and Create pull request. Click that button and fill in all the information that is provided on the template. Once all the information is filled in correctly, check your PR to make sure there is not a Winutil.ps1 file attached to the PR. Once everything is good, make the PR and wait for Chris (the maintainer) to accept or deny your PR. Once it is accepted by Chris, you will be able to see your changes in the "/windev" build.
* If you do not see your feature in the main "/win" build, that is fine. All new changes go into the /windev build to make sure everything is working OK before going fully public. - WinUtil launches correctly
* Congratulations! You just submitted your first PR. Thank you so much for contributing to Winutil. - Your feature works
- Nothing else breaks
If something fails, fix it before committing.
---
### 6. Review Your Changes
Check what changed:
```bash
git status
```
Review the diff:
```bash
git diff
```
Make sure you did not accidentally modify unrelated files.
---
### 7. Commit Your Changes
Stage files:
```bash
git add .
```
Commit them:
```bash
git commit -m "Add feature description"
```
Example:
```bash
git commit -m "Add Firefox package tweak"
```
---
### 8. Push Your Branch
```bash
git push origin branch-name
```
Example:
```bash
git push origin add-firefox-tweak
```
---
### 9. Open a Pull Request
Go to your fork on GitHub.
GitHub will show a button to create a pull request.
<img width="1009" height="71" alt="{C8C6A3CC-79D4-44FD-A54C-4C5717F12730}" src="https://github.com/user-attachments/assets/0419d193-d4e7-47c0-87cf-b986742201a0" />
Before submitting:
- Explain what changed
- Explain why you changed it
- Make sure unrelated files are not included
Once submitted, maintainers will review your PR.
+7 -200
View File
@@ -4,210 +4,17 @@ toc: true
--- ---
### Download not working ### Download not working
If `https://christitus.com/win` is not working, or you want to download the code from GitHub directly, you can use the direct download link:
``` If you run WinUtil and get an error like:
irm https://github.com/ChrisTitusTech/Winutil/releases/latest/download/Winutil.ps1 | iex
```
If you are seeing errors referencing TLS or security, you may be running an older version of Windows where TLS 1.2 is not the default security protocol used for network connections. The following commands will force .NET to use TLS 1.2, and download the script directly using .NET instead of PowerShell: `< : The term '<' is not recognized as the name of a cmdlet, function, script file, or operable program.`
``` try using a **VPN** and if that doesn't work than report the issue to https://github.com/ChrisTitusTech/winutil/issues
[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12
iex https://christitus.com/win | iex
```
If it still isn't working and you live in India, it might be due to India blocking GitHub's content domain and preventing downloads. See more on [Times of India](https://timesofindia.indiatimes.com/gadgets-news/github-content-domain-blocked-for-these-indian-users-reports/articleshow/96687992.cms). ### Script Won't Run
If you are still having issues, try using a **VPN**, or changing your **DNS provider** to one of following two providers: If you run WinUtil and get the error:
| Provider | Primary DNS | Secondary DNS | `"WinUtil is unable to run on your system, powershell execution is restricted by security policies,"`
|:------------:|:------------:|:-------------:|
| Cloudflare | `1.1.1.1` | `1.0.0.1` |
| Google | `8.8.8.8` | `8.8.4.4` |
this means that your PowerShell session is in **Constrained Language Mode**, which prevents WinUtil from running.
### Script blocked by Execution Policy
1. Ensure you are running PowerShell as admin: Press `Windows Key`+`X` and select *PowerShell (Admin)* in Windows 10, or `Windows Terminal (Admin)` in Windows 11.
2. In the PowerShell window, type this to allow unsigned code to execute and run the installation script:
```
Set-ExecutionPolicy Unrestricted -Scope Process -Force
irm https://christitus.com/win | iex
```
## Runtime Issues
### WinGet configuration
If you have not installed anything using PowerShell before, you may be prompted to configure WinGet. This requires user interaction on first run. You will need to manually type `y` into the PowerShell console and press enter to continue. Once you do it the first time, you will not be prompted again.
### MicroWin: Error `0x80041031`
This error code typically indicates an issue related to Windows Management Instrumentation (WMI). Here are a few steps you can try to resolve the issue:
1. **Reboot Your Computer:**
Sometimes, a simple reboot can resolve temporary issues. Restart your computer and try mounting the ISO again.
3. **Check for System Corruption:**
Run the System File Checker (SFC) utility to scan and repair system files that may be corrupted.
```powershell
sfc /scannow
```
4. **Update Your System:**
Make sure your operating system is up-to-date. Check for Windows updates and install any pending updates.
5. **Check WMI Service:**
Ensure that the Windows Management Instrumentation (WMI) service is running. You can do this through the Services application:
- Press `Win`+`R` to open the Run dialog.
- Type `services.msc` and press Enter.
- Locate *Windows Management Instrumentation* in the list.
- Make sure to set its status to "Running" and the startup type to "Automatic".
6. **Check for Security Software Interference:**
Security software can sometimes interfere with WMI operations. Temporarily disable your anti-virus or security software and check if the issue persists. WMI is a common attack/infection vector, so many anti-virus programs will limit its usage.
7. **Event Viewer:**
Check the Event Viewer for more detailed error information. Look for entries related to the `80041031` error and check if there are any additional details that can help identify the cause.
- Press `Win`+`X` and select *Event Viewer*.
- Navigate to *Windows Logs* > *Application* or *System*.
- Look for entries with the source related to WMI or the application use to mount the ISO.
8. **ISO File Integrity:**
Ensure that the ISO file you are trying to mount is uncorrupted. Try mounting a different ISO file to see if the issue persists.
If the problem persists after trying these steps, additional troubleshooting is required. Consider seeking assistance from Microsoft support or community forums for more specific guidance based on your system configuration and the software you use to mount the ISO.
## Windows Issues
### Windows takes longer to shut down
This could be for a number of reasons:
- Turn on fast startup: Press `Windows key`+`R`, then type:
```bat
control /name Microsoft.PowerOptions /page pageGlobalSettings
```
- If that doesn't work, disable Hibernation:
- Press `Windows Key`+`X` and select *PowerShell (Admin)* in Windows 10, or `Windows Terminal (Admin)` in Windows 11.
- In the PowerShell window, type:
```bat
powercfg /H off
```
Related issue: [#69](https://github.com/ChrisTitusTech/Winutil/issues/69)
### Windows Search does not work
Enable Background Apps. Related issues: [#69](https://github.com/ChrisTitusTech/Winutil/issues/69) [95](https://github.com/ChrisTitusTech/Winutil/issues/95) [#232](https://github.com/ChrisTitusTech/Winutil/issues/232)
### Xbox Game Bar Activation Broken
Set the Xbox Accessory Management Service to Automatic:
```
Get-Service -Name "XboxGipSvc" | Set-Service -StartupType Automatic
```
Related issue: [#198](https://github.com/ChrisTitusTech/Winutil/issues/198)
### Windows 11: Quick Settings no longer works
Launch the Script and click *Enable Action Center*.
### Explorer (file browser) no longer launches
- Press `Windows key`+`R` then type:
```bat
control /name Microsoft.FolderOptions
```
- Change the *Open File Explorer to* option to *This PC*.
### Battery drains too fast
If you're using a laptop or tablet and find your battery drains too fast, please try the below troubleshooting steps, and report the results back to the Winutil community.
1. **Check Battery Health:**
- Press `Windows Key`+`X` and select *PowerShell (Admin)* in Windows 10, or `Windows Terminal (Admin)` in Windows 11.
- Run the following command to generate a battery report:
```powershell
powercfg /batteryreport /output "C:\battery_report.html"
```
- Open the generated HTML report to review information about battery health and usage. A battery with poor health may hold less charge, discharge faster, or cause other issues.
2. **Review Power Settings:**
- Open the Settings app, and go to *System* > *Power & sleep*.
- Adjust power plan settings based on your preferences and usage patterns.
- Click on *Additional power settings* to access advanced power settings that may help.
3. **Identify Power-Hungry Apps:**
- Right-click on the taskbar and select *Task Manager*.
- Navigate to the *Processes* tab to identify applications with high CPU or memory usage.
- Consider reconfiguring, closing, disabling, or uninstalling applications that use a lot of resources.
4. **Update Drivers:**
- Visit your device manufacturer's website or use Windows Update to check for driver updates.
- Ensure graphics, chipset, and other essential drivers are up to date.
5. **Check for Windows Updates:**
- Open the Settings app, and go to *Update & Security* > *Windows Update*.
- Check for and install any available updates for your operating system.
6. **Reduce Screen Brightness:**
- Open the Settings app, and go to *System* > *Display*.
- Adjust screen brightness based on your preferences and lighting conditions.
7. **Enable Battery Saver:**
- Open the Settings app, and go to *System* > *Battery*.
- Turn on *Battery saver* to limit background activity and conserve power.
8. **Check Power Usage in Settings:**
- Open the Settings app, and go to *System* > *Battery* > *Battery usage by app*.
- Review the list of apps and their power usage. Disable or uninstall any you don't need.
9. **Check Background Apps:**
- Open the Settings app, and go to *Privacy* > *Background apps*.
- Disable or uninstall unnecessary apps running in the background.
10. **Use `powercfg` for Analysis:**
- Press `Windows Key`+`X` and select *PowerShell (Admin)* in Windows 10, or `Windows Terminal (Admin)` in Windows 11.
- Run the following command to analyze energy usage and generate a report:
```powershell
powercfg /energy /output "C:\energy_report.html"
```
- Open the generated HTML report to identify energy consumption patterns.
11. **Review Event Logs:**
- Open Event Viewer by searching for it in the Start menu.
- Navigate to *Windows Logs* > *System*.
- Look for events with the source *Power-Troubleshooter* to identify power-related events. These may highlight battery, input power, and other issues.
12. **Check Wake-up Sources:**
- Press `Windows Key`+`X` and select *PowerShell (Admin)* in Windows 10, or `Windows Terminal (Admin)` in Windows 11.
- Use the command `powercfg /requests` to identify processes preventing sleep.
- Use the command `powercfg /waketimers` to view active wake timers.
- Check Task Scheduler to see if any of the discovered processes are scheduled to start on boot or at regular intervals.
13. **Advanced Identification of Power-Hungry Apps:**
- Open Resource Monitor from the Start menu.
- Navigate to the *CPU*, *Memory*, *Network*, and other tabs to identify processes with high resource usage.
- Consider reconfiguring, closing, disabling, or uninstalling applications that use a lot of resources.
14. **Disable Activity History:**
- Open the Settings app, and go to *Privacy* > *Activity history*.
- Turn off *Let Windows collect my activities from this PC*.
15. **Prevent Network Adapters From Waking PC:**
- Open Device Manager by searching for it in the Start menu.
- Locate your network adapter, right-click, and go to *Properties*.
- Under the *Power Management* tab, uncheck the option that allows the device to wake the computer.
16. **Review Installed Applications:**
- Manually review installed applications by searching for *Add or remove programs* in the Start menu.
- Check settings/preferences of individual applications for power-related options.
- Uninstall unnecessary or problematic software.
These troubleshooting steps are generic, but should help in most situations. You should have these key takeaways:
- Battery health is the most significant limiter on your device's runtime. A battery in poor health usually cannot be made to last like it used to, simply by closing some applications. Consider replacing your battery.
- Background applications that use CPU and memory, make lots of or large network requests, read/write to disk frequently, or that keep your PC awake when it could be conserving energy are the next major concern. Avoid installing programs you don't need, only use programs you trust, and configure applications to use as little power and run as infrequently as possible.
- Windows performs a lot of tasks that may affect battery life by default. Changing settings, stopping scheduled tasks, and disabling features can help the system stay in lower power states to conserve battery.
- Bad chargers, inconsistent power input, and high temperatures will cause batteries to degrade and discharge faster. Use trusted high-quality chargers, ensure input power is steady, clean any fans or airflow ports, and keep the battery/PC cool.
+4 -2
View File
@@ -12,9 +12,11 @@ width: full
Welcome to the official documentation for Winutil, your go-to utility for optimizing and managing your Windows environment. Whether youre an IT professional, power user, or regular user, Winutil provides a comprehensive set of tools to enhance your Windows experience. Welcome to the official documentation for Winutil, your go-to utility for optimizing and managing your Windows environment. Whether youre an IT professional, power user, or regular user, Winutil provides a comprehensive set of tools to enhance your Windows experience.
{{< image src="images/Title-Screen" alt="Winutil title screen" >}}
## Running the latest release of Winutil ## Running the latest release of Winutil
* You will first need to start a Powershell terminal **as Admin**. * You will first need to start a PowerShell terminal **as Admin**.
* Now you can run the following command: * Now you can run the following command:
``` ```
@@ -22,5 +24,5 @@ irm "https://christitus.com/win" | iex
``` ```
> [!NOTE] > [!IMPORTANT]
> Winutil is updated frequently as of the time of writing. Consequently, features and functionalities may evolve, and the documentation may not always reflect the most current images or information. > Winutil is updated frequently as of the time of writing. Consequently, features and functionalities may evolve, and the documentation may not always reflect the most current images or information.
+16 -71
View File
@@ -1,6 +1,7 @@
--- ---
title: Developer Reference title: Developer Reference
weight: 3 weight: 3
toc: false
--- ---
> [!NOTE] > [!NOTE]
@@ -14,94 +15,38 @@ weight: 3
### Essential Tweaks ### Essential Tweaks
- [Create Restore Point](tweaks/essential-tweaks/restorepoint/) {{< autolinks section="dev/tweaks/essential-tweaks" >}}
- [Debloat Edge](tweaks/essential-tweaks/edgedebloat/)
- [Delete Temporary Files](tweaks/essential-tweaks/deletetempfiles/)
- [Disable Activity History](tweaks/essential-tweaks/activity/)
- [Disable ConsumerFeatures](tweaks/essential-tweaks/consumerfeatures/)
- [Disable GameDVR](tweaks/essential-tweaks/gamedvr/)
- [Disable Hibernation](tweaks/essential-tweaks/hibernation/)
- [Disable Location Tracking](tweaks/essential-tweaks/location/)
- [Disable Powershell 7 Telemetry](tweaks/essential-tweaks/powershell7tele/)
- [Disable Storage Sense](tweaks/essential-tweaks/storage/)
- [Disable Telemetry](tweaks/essential-tweaks/telemetry/)
- [Enable End Task With Right Click](tweaks/essential-tweaks/endtaskontaskbar/)
- [Prefer IPv4 over IPv6](tweaks/essential-tweaks/ipv46/)
- [Run Disk Cleanup](tweaks/essential-tweaks/diskcleanup/)
- [Set Hibernation as default (good for laptops)](tweaks/essential-tweaks/laptophibernation/)
- [Set Services to Manual](tweaks/essential-tweaks/services/)
### Advanced Tweaks (CAUTION) ### Advanced Tweaks (CAUTION)
- [Adobe Network Block](tweaks/z--advanced-tweaks---caution/blockadobenet/) {{< autolinks section="dev/tweaks/z--advanced-tweaks---caution" >}}
- [Disable Background Apps](tweaks/z--advanced-tweaks---caution/disablebgapps/)
- [Disable Fullscreen Optimizations](tweaks/z--advanced-tweaks---caution/disablefso/)
- [Disable IPv6](tweaks/z--advanced-tweaks---caution/disableipsix/)
- [Disable Microsoft Copilot](tweaks/z--advanced-tweaks---caution/removecopilot/)
- [Disable Notification Tray/Calendar](tweaks/z--advanced-tweaks---caution/disablenotifications/)
- [Disable Teredo](tweaks/z--advanced-tweaks---caution/teredo/)
- [DNS](tweaks/z--advanced-tweaks---caution/changedns/)
- [Remove ALL MS Store Apps - NOT RECOMMENDED](tweaks/z--advanced-tweaks---caution/debloat/)
- [Remove Home and Gallery from explorer](tweaks/z--advanced-tweaks---caution/removehomegallery/)
- [Make Edge Uninstallable](tweaks/z--advanced-tweaks---caution/edgeuninstall/)
- [Run OO Shutup 10](tweaks/z--advanced-tweaks---caution/oosubutton/)
- [Set Classic Right-Click Menu ](tweaks/z--advanced-tweaks---caution/rightclickmenu/)
- [Set Display for Performance](tweaks/z--advanced-tweaks---caution/display/)
- [Set Time to UTC (Dual Boot)](tweaks/z--advanced-tweaks---caution/utc/)
### Customize Preferences ### Customize Preferences
- [Bing Search in Start Menu](tweaks/customize-preferences/bingsearch/) {{< autolinks section="dev/tweaks/customize-preferences" >}}
- [Center Taskbar Items](tweaks/customize-preferences/taskbaralignment/)
- [Dark Theme for Windows](tweaks/customize-preferences/darkmode/)
- [Detailed BSoD](tweaks/customize-preferences/detailedbsod/)
- [Mouse Acceleration](tweaks/customize-preferences/mouseacceleration/)
- [NumLock on Startup](tweaks/customize-preferences/numlock/)
- [Search Button in Taskbar](tweaks/customize-preferences/taskbarsearch/)
- [Show File Extensions](tweaks/customize-preferences/showext/)
- [Show Hidden Files](tweaks/customize-preferences/hiddenfiles/)
- [Snap Assist Flyout](tweaks/customize-preferences/snapflyout/)
- [Snap Assist Suggestion](tweaks/customize-preferences/snapsuggestion/)
- [Snap Window](tweaks/customize-preferences/snapwindow/)
- [Sticky Keys](tweaks/customize-preferences/stickykeys/)
- [Task View Button in Taskbar](tweaks/customize-preferences/taskview/)
- [Verbose Messages During Logon](tweaks/customize-preferences/verboselogon/)
- [Widgets Button in Taskbar](tweaks/customize-preferences/taskbarwidgets/)
### Performance Plans ### Performance Plans
- [Add and Remove Ultimate Performance Profile](tweaks/performance-plans/profile/) {{< autolinks section="dev/tweaks/performance-plans" >}}
## Features ## Features
### Fixes ### Fixes
- [Remove Adobe Creative Cloud](features/fixes/runadobecccl cleanertool/) {{< autolinks section="dev/features/fixes" >}}
- [Reset Network](features/fixes/network/)
- [Reset Windows Update](features/fixes/update/)
- [Set Up Autologin](features/fixes/autologin/)
- [System Corruption Scan](features/fixes/corruptionscan/)
- [WinGet Reinstall](features/fixes/winget/)
### Legacy Windows Panels ### Legacy Windows Panels
- [Control Panel](features/legacy-windows-panels/control/) {{< autolinks section="dev/features/legacy-windows-panels" >}}
- [Network Connections](features/legacy-windows-panels/network/)
- [Power Panel](features/legacy-windows-panels/power/)
- [Printer Settings](features/legacy-windows-panels/printer/)
- [Region](features/legacy-windows-panels/region/)
- [Sound Settings](features/legacy-windows-panels/sound/)
- [System Properties](features/legacy-windows-panels/system/)
- [User Accounts](features/legacy-windows-panels/user/)
### Features ### Features
- [All .Net Framework (2,3,4)](features/features/dotnet/) {{< autolinks section="dev/features/features" >}}
- [Disable Legacy F8 Boot Recovery](features/features/disablelegacyrecovery/)
- [Enable Legacy F8 Boot Recovery](features/features/enablelegacyrecovery/) ### Remote Access
- [Enable Daily Registry Backup Task 12.30am](features/features/regbackup/)
- [HyperV Virtualization](features/features/hyperv/) {{< autolinks section="dev/features/remote-access" >}}
- [Legacy Media (WMP, DirectPlay)](features/features/legacymedia/)
- [NFS - Network File System](features/features/nfs/) ### Powershell Profile Powershell 7+ Only
- [Windows Sandbox](features/features/sandbox/)
- [Windows Subsystem for Linux](features/features/wsl/) {{< autolinks section="dev/features/powershell-profile-powershell-7--only" >}}
+160 -41
View File
@@ -55,9 +55,6 @@ winutil/
│ ├── public/ # User-facing functions │ ├── public/ # User-facing functions
│ │ ├── Initialize-WPFUI.ps1 │ │ ├── Initialize-WPFUI.ps1
│ │ └── ... │ │ └── ...
│ └── microwin/ # MicroWin specific functions
│ ├── Invoke-Microwin.ps1
│ └── ...
├── config/ # JSON configuration files ├── config/ # JSON configuration files
│ ├── applications.json # Application definitions │ ├── applications.json # Application definitions
│ ├── tweaks.json # Tweak definitions │ ├── tweaks.json # Tweak definitions
@@ -126,12 +123,159 @@ winutil/
**Purpose**: WPF GUI layout and design. **Purpose**: WPF GUI layout and design.
**Structure**: **Structure**:
- TabControl for main tabs (Install, Tweaks, Config, MicroWin)
- Buttons with event handlers - Buttons with event handlers
- TextBoxes for input - TextBoxes for input
- CheckBoxes for options - CheckBoxes for options
- ListBoxes for selections - ListBoxes for selections
## Win11 Creator Architecture
The **Win11 Creator** is a specialized subsystem within Winutil that creates customized Windows 11 ISOs. It operates independently from the main package installation and tweak system.
### Win11 Creator Components
**Core Functions** (`functions/private/`):
- `Invoke-WinUtilISO.ps1`: Main orchestrator containing all Win11 Creator functions
- `Invoke-WinUtilISOBrowse`: ISO file selection dialog
- `Invoke-WinUtilISOMountAndVerify`: Validates and mounts ISO, verifies it's official Windows 11
- `Invoke-WinUtilISOModify`: Launches modification in background runspace
- `Invoke-WinUtilISOExport`: Handles ISO and USB export
- `Invoke-WinUtilISOCheckExistingWork`: Recovers incomplete work sessions
- `Invoke-WinUtilISOCleanAndReset`: Cleans up temp directories and resets UI
- `Invoke-WinUtilISOScript.ps1`: Applies modifications to mounted install.wim
- Removes provisioned AppX packages (40+ bloatware apps)
- Injects drivers (optional) from the current system
- Removes OneDrive setup files
- Applies offline registry tweaks (hardware bypass, privacy, telemetry, OOBE)
- Deletes telemetry scheduled task definitions
- Pre-stages setup scripts from autounattend.xml
- Removes unused Windows editions
- Cleans component store via DISM
### Win11 Creator Data Flow
```
User selects official Windows 11 ISO
Invoke-WinUtilISOBrowse → OpenFileDialog, validates file size
Invoke-WinUtilISOMountAndVerify
├─ Mount ISO via Mount-DiskImage
├─ Verify install.wim or install.esd exists
├─ Check for "Windows 11" in image metadata
├─ Extract available editions (Home, Pro, Enterprise, etc.)
└─ Store ISO path, drive letter, WIM path, image info in $sync
User optionally enables the Driver Injection checkbox
Invoke-WinUtilISOModify (runs in background runspace)
├─ Create work directory: ~WinUtil_Win11ISO_[timestamp]
├─ Copy ISO contents to disk (~5-6 GB)
├─ Mount install.wim at selected edition/index
├─ Invoke-WinUtilISOScript:
│ ├─ Remove 40+ bloat AppX packages
│ ├─ Export and inject drivers (if enabled)
│ ├─ Remove OneDrive setup
│ ├─ Load offline registry hives
│ ├─ Apply 50+ registry tweaks (hardware bypass, privacy, telemetry, OOBE, etc.)
│ ├─ Delete telemetry scheduled task files
│ ├─ Pre-stage setup scripts from autounattend.xml to C:\Windows\Setup\Scripts\
│ └─ Unload registry hives
├─ DISM /Cleanup-Image /StartComponentCleanup /ResetBase (saves 300-800 MB)
├─ Dismount and save the modified install.wim (~10+ minutes, slowest step)
├─ Export selected edition only (removes all other editions, saves 1-2 GB each)
├─ Dismount source ISO
└─ Report completion, enable export options
Invoke-WinUtilISOExport (user chooses output)
├─ Option 1: Save as ISO
│ ├─ Build bootable ISO via oscdimg.exe (BIOS/UEFI dual-boot)
│ └─ Output: Win11_Modified_[date].iso (2.5-3.5 GB)
└─ Option 2: Write to USB
├─ Format USB as GPT
├─ Create 512 MB EFI partition
├─ Copy modified ISO contents
└─ Output: Bootable USB (minimum 8 GB)
Invoke-WinUtilISOCleanAndReset (optional)
└─ Delete temp working directory (~10-15 GB)
└─ Reset UI to initial state
```
### Win11 Creator Validation & Safety
**ISO Validation**:
- Only accepts official Microsoft Windows 11 ISOs
- Validates presence of install.wim or install.esd
- Checks image metadata for "Windows 11" string
- Rejects custom, modified, or non-Windows 11 ISOs
**Work Session Recovery**:
- Auto-detects incomplete work from previous sessions
- Allows resuming Step 4 (export) without re-running Steps 1-3
- Prevents redundant modifications
**Modification Safety**:
- All registry changes are documented in a script (reversible)
- Original ISO never modified; only working copy
- Logged to `WinUtil_Win11ISO.log` for debugging
- DISM handles image dismount with automatic cleanup on error
### Win11 Creator Registry Tweaks
The `Invoke-WinUtilISOScript` function applies **50+ offline registry tweaks**:
**Hardware Bypass**:
- TPM 2.0 check bypass
- Secure Boot requirement bypass
- CPU compatibility bypass
- RAM requirement bypass
- Storage check bypass
**Privacy & Telemetry**:
- Disable advertising ID
- Disable tailored experiences
- Disable input personalization
- Disable speech online privacy
- Disable cloud content suggestions
- Disable app suggestion subscriptions
- Remove CEIP, Appraiser, WaaSMedic, etc.
**OOBE & Setup**:
- Enable local account setup
- Skip Microsoft account requirement
- Dark mode by default
- Empty taskbar and Start Menu
**Post-Setup Installations**:
- Prevent DevHome auto-installation
- Prevent new Outlook Mail app installation
- Prevent Teams auto-installation
**System Features**:
- Disable BitLocker and device encryption
- Disable Chat icon from the Taskbar
- Disable OneDrive folder backup
- Disable Copilot
- Disable Windows Update during OOBE (re-enabled at first login)
### Driver Injection Feature
**Optional Enhancement**: When enabled, exports all drivers from the running system and injects them into both:
- `install.wim` (main OS image)
- `boot.wim` index 2 (Windows Setup PE environment)
**Use Case**: Enables offline installation on systems with missing drivers.
### Disk Space Requirements
- **Temporary working directory**: ~10-15 GB
- **Original ISO**: 4-6 GB
- **Modified ISO**: 2.5-3.5 GB
- **Total needed**: ~25 GB for safe operation
## Data Flow ## Data Flow
### Application Installation Flow ### Application Installation Flow
@@ -143,7 +287,7 @@ Get-WinUtilCheckBoxes → Retrieves selected apps
For each selected app: For each selected app:
Check if WinGet/Choco installed Check if WinGet/Choco is installed
Install-WinUtilWinget/Choco (if needed) Install-WinUtilWinget/Choco (if needed)
@@ -189,7 +333,7 @@ Retrieve "OriginalState" from tweak definition
Invoke-WPFUndoTweak → Restore original values Invoke-WPFUndoTweak → Restore original values
Remove from applied tweaks log Remove from the applied tweaks log
Update UI Update UI
``` ```
@@ -198,7 +342,7 @@ Update UI
### applications.json Structure ### applications.json Structure
```json ```json {filename="config/applications.json"}
{ {
"WPFInstall<AppName>": { "WPFInstall<AppName>": {
"category": "Browsers", "category": "Browsers",
@@ -221,14 +365,13 @@ Update UI
### tweaks.json Structure ### tweaks.json Structure
```json ```json {filename="config/tweaks.json"}
{ {
"WPFTweaksTelemetry": { "WPFTweaksTelemetry": {
"Content": "Disable Telemetry", "Content": "Disable Telemetry",
"Description": "Disables Microsoft Telemetry", "Description": "Disables Microsoft Telemetry",
"category": "Essential Tweaks", "category": "Essential Tweaks",
"panel": "1", "panel": "1",
"Order": "a003_",
"registry": [ "registry": [
{ {
"Path": "HKLM:\\SOFTWARE\\Policies\\Microsoft\\Windows\\DataCollection", "Path": "HKLM:\\SOFTWARE\\Policies\\Microsoft\\Windows\\DataCollection",
@@ -237,13 +380,6 @@ Update UI
"Value": "0", "Value": "0",
"OriginalValue": "1" "OriginalValue": "1"
} }
],
"ScheduledTask": [
{
"Name": "Microsoft\\Windows\\Autochk\\Proxy",
"State": "Disabled",
"OriginalState": "Enabled"
}
] ]
} }
} }
@@ -254,7 +390,6 @@ Update UI
- `Description`: What it does - `Description`: What it does
- `category`: Essential/Advanced/Customize - `category`: Essential/Advanced/Customize
- `registry`: Registry changes to make - `registry`: Registry changes to make
- `ScheduledTask`: Scheduled tasks to modify
- `service`: Services to change - `service`: Services to change
- `OriginalValue/State`: For undo functionality - `OriginalValue/State`: For undo functionality
@@ -320,22 +455,6 @@ if (!(Get-Command choco -ErrorAction SilentlyContinue)) {
choco install $app.choco -y choco install $app.choco -y
``` ```
## MicroWin Architecture
MicroWin operates in phases:
1. **Mount ISO**: Extract Windows image
2. **Modify Image**: Remove components, apply tweaks
3. **Inject Drivers**: Add custom drivers (optional)
4. **Create Unattend**: Generate automated install configuration
5. **Rebuild ISO**: Package modified image into new ISO
**Key Files**:
- `Invoke-Microwin.ps1`: Main orchestration
- `Microwin-RemovePackages.ps1`: Remove Windows packages
- `Microwin-RemoveFeatures.ps1`: Disable features
- `Microwin-NewUnattend.ps1`: Create unattend.xml
## Error Handling ## Error Handling
Winutil uses PowerShell error handling: Winutil uses PowerShell error handling:
@@ -385,7 +504,7 @@ $sync.form.Dispatcher.Invoke([action]{
### Adding a New Application ### Adding a New Application
1. Edit `config/applications.json`: 1. Edit `config/applications.json`:
```json ```json {filename="config/applications.json"}
{ {
"WPFInstallNewApp": { "WPFInstallNewApp": {
"category": "Utilities", "category": "Utilities",
@@ -398,12 +517,12 @@ $sync.form.Dispatcher.Invoke([action]{
``` ```
2. Recompile: `.\Compile.ps1` 2. Recompile: `.\Compile.ps1`
3. The app appears automatically in Install tab 3. The app appears automatically in the Install tab
### Adding a New Tweak ### Adding a New Tweak
1. Edit `config/tweaks.json`: 1. Edit `config/tweaks.json`:
```json ```json {filename="config/tweaks.json"}
{ {
"WPFTweaksNewTweak": { "WPFTweaksNewTweak": {
"Content": "New Tweak", "Content": "New Tweak",
@@ -423,7 +542,7 @@ $sync.form.Dispatcher.Invoke([action]{
``` ```
2. Recompile: `.\Compile.ps1` 2. Recompile: `.\Compile.ps1`
3. Tweak appears in Tweaks tab 3. Tweak appears in the Tweaks tab
### Adding a New Function ### Adding a New Function
@@ -484,12 +603,11 @@ Outputs `winutil.ps1` in the root directory.
**Required**: **Required**:
- PowerShell 5.1+ - PowerShell 5.1+
- .NET Framework 4.5+ - .NET Framework 4.5+
- Windows 10 1809+ - Windows 11
**Optional (auto-installed)**: **Optional (auto-installed)**:
- WinGet (Windows Package Manager) - WinGet (Windows Package Manager)
- Chocolatey - Chocolatey
- oscdimg.exe (for MicroWin)
## Performance Considerations ## Performance Considerations
@@ -536,6 +654,7 @@ Outputs `winutil.ps1` in the root directory.
- [Contributing Guide](../../contributing/) - How to contribute code - [Contributing Guide](../../contributing/) - How to contribute code
- [User Guide](../../userguide/) - End-user documentation - [User Guide](../../userguide/) - End-user documentation
- [Win11 Creator Guide](../../userguide/win11creator/) - Building customized Windows 11 ISOs
- [FAQ](../../faq/) - Common questions - [FAQ](../../faq/) - Common questions
## Additional Resources ## Additional Resources
@@ -546,5 +665,5 @@ Outputs `winutil.ps1` in the root directory.
--- ---
**Last Updated**: January 2026 **Last Updated**: January 2026
**Maintainers**: Chris Titus Tech and contributors **Maintainers**: Chris Titus Tech and contributors
@@ -1,12 +1,14 @@
# Disable Legacy F8 Boot Recovery ---
title: "Legacy F8 Boot Recovery - Disable"
description: ""
---
```json ```json {filename="config/feature.json",linenos=inline,linenostart=107}
"WPFFeatureEnableLegacyRecovery": { "WPFFeatureDisableLegacyRecovery": {
"Content": "Enable Legacy F8 Boot Recovery", "Content": "Legacy F8 Boot Recovery - Disable",
"Description": "Enables Advanced Boot Options screen that lets you start Windows in advanced troubleshooting modes.", "Description": "Disables Advanced Boot Options screen that lets you start Windows in advanced troubleshooting modes.",
"category": "Features", "category": "Features",
"panel": "1", "panel": "1",
"Order": "a018_",
"feature": [], "feature": [],
"InvokeScript": [ "InvokeScript": [
"bcdedit /set bootmenupolicy standard" "bcdedit /set bootmenupolicy standard"
@@ -1,12 +1,14 @@
# Enable Legacy F8 Boot Recovery ---
title: "Legacy F8 Boot Recovery - Enable"
description: ""
---
```json ```json {filename="config/feature.json",linenos=inline,linenostart=96}
"WPFFeatureEnableLegacyRecovery": { "WPFFeatureEnableLegacyRecovery": {
"Content": "Enable Legacy F8 Boot Recovery", "Content": "Legacy F8 Boot Recovery - Enable",
"Description": "Enables Advanced Boot Options screen that lets you start Windows in advanced troubleshooting modes.", "Description": "Enables Advanced Boot Options screen that lets you start Windows in advanced troubleshooting modes.",
"category": "Features", "category": "Features",
"panel": "1", "panel": "1",
"Order": "a018_",
"feature": [], "feature": [],
"InvokeScript": [ "InvokeScript": [
"bcdedit /set bootmenupolicy legacy" "bcdedit /set bootmenupolicy legacy"
@@ -1,12 +1,14 @@
# Enable Daily Registry Backup Task 12.30am ---
title: "Registry Backup (Daily Task 12:30am) - Enable"
description: ""
---
```json ```json {filename="config/feature.json",linenos=inline,linenostart=79}
"WPFFeatureRegBackup": { "WPFFeatureRegBackup": {
"Content": "Enable Daily Registry Backup Task 12.30am", "Content": "Registry Backup (Daily Task 12:30am) - Enable",
"Description": "Enables daily registry backup, previously disabled by Microsoft in Windows 10 1803.", "Description": "Enables daily registry backup, previously disabled by Microsoft in Windows 10 1803.",
"category": "Features", "category": "Features",
"panel": "1", "panel": "1",
"Order": "a017_",
"feature": [], "feature": [],
"InvokeScript": [ "InvokeScript": [
" "
@@ -1,12 +1,14 @@
# Windows Sandbox ---
title: "Windows Sandbox - Enable"
description: ""
---
```json ```json {filename="config/feature.json",linenos=inline,linenostart=118}
"WPFFeaturesSandbox": { "WPFFeaturesSandbox": {
"Content": "Windows Sandbox", "Content": "Windows Sandbox - Enable",
"Description": "Windows Sandbox is a lightweight virtual machine that provides a temporary desktop environment to safely run applications and programs in isolation.", "Description": "Windows Sandbox is a lightweight virtual machine that provides a temporary desktop environment to safely run applications and programs in isolation.",
"category": "Features", "category": "Features",
"panel": "1", "panel": "1",
"Order": "a021_",
"feature": [ "feature": [
"Containers-DisposableClientVM" "Containers-DisposableClientVM"
], ],
+6 -10
View File
@@ -1,11 +1,7 @@
### Features ---
title: "Features"
weight: 1
toc: false
---
- [All .Net Framework (2,3,4)](https://github.com/ChrisTitusTech/winutil/blob/main/docs/content/dev/features/Features/dotnet.md) {{< autolinks section="dev/features/features" >}}
- [Disable Legacy F8 Boot Recovery](https://github.com/ChrisTitusTech/winutil/blob/main/docs/content/dev/features/Features/DisableLegacyRecovery.md)
- [Enable Legacy F8 Boot Recovery](https://github.com/ChrisTitusTech/winutil/blob/main/docs/content/dev/features/Features/EnableLegacyRecovery.md)
- [Enable Daily Registry Backup Task 12.30am](https://github.com/ChrisTitusTech/winutil/blob/main/docs/content/dev/features/Features/RegBackup.md)
- [HyperV Virtualization](https://github.com/ChrisTitusTech/winutil/blob/main/docs/content/dev/features/Features/hyperv.md)
- [Legacy Media (WMP, DirectPlay)](https://github.com/ChrisTitusTech/winutil/blob/main/docs/content/dev/features/Features/legacymedia.md)
- [NFS - Network File System](https://github.com/ChrisTitusTech/winutil/blob/main/docs/content/dev/features/Features/nfs.md)
- [Windows Sandbox](https://github.com/ChrisTitusTech/winutil/blob/main/docs/content/dev/features/Features/Sandbox.md)
- [Windows Subsystem for Linux](https://github.com/ChrisTitusTech/winutil/blob/main/docs/content/dev/features/Features/wsl.md)
+8 -5
View File
@@ -1,14 +1,17 @@
# All .Net Framework (2,3,4) ---
title: ".NET Framework (Versions 2, 3, 4) - Enable"
description: ""
---
```json ```json {filename="config/feature.json",linenos=inline,linenostart=2}
"WPFFeaturesdotnet": { "WPFFeaturesdotnet": {
"Content": "All .Net Framework (2,3,4)", "Content": ".NET Framework (Versions 2, 3, 4) - Enable",
"Description": ".NET and .NET Framework is a developer platform made up of tools, programming languages, and libraries for building many different types of applications.", "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", "category": "Features",
"panel": "1", "panel": "1",
"Order": "a010_",
"feature": [ "feature": [
"NetFx4-AdvSrvs", "NetFx4-AdvSrvs",
"NetFx3" "NetFx3"
], ],
"InvokeScript": [],
``` ```
+7 -8
View File
@@ -1,16 +1,15 @@
# HyperV Virtualization ---
title: "Hyper-V - Enable"
description: ""
---
```json ```json {filename="config/feature.json",linenos=inline,linenostart=24}
"WPFFeatureshyperv": { "WPFFeatureshyperv": {
"Content": "HyperV Virtualization", "Content": "Hyper-V - Enable",
"Description": "Hyper-V is a hardware virtualization product developed by Microsoft that allows users to create and manage virtual machines.", "Description": "Hyper-V is a hardware virtualization product developed by Microsoft that allows users to create and manage virtual machines.",
"category": "Features", "category": "Features",
"panel": "1", "panel": "1",
"Order": "a011_",
"feature": [ "feature": [
"Microsoft-Hyper-V-All" "Microsoft-Hyper-V-All"
], ],
"InvokeScript": [
"bcdedit /set hypervisorschedulertype classic"
],
``` ```
@@ -1,16 +1,19 @@
# Legacy Media (WMP, DirectPlay) ---
title: "Legacy Media Components (WMP, DirectPlay) - Enable"
description: ""
---
```json ```json {filename="config/feature.json",linenos=inline,linenostart=34}
"WPFFeatureslegacymedia": { "WPFFeatureslegacymedia": {
"Content": "Legacy Media (WMP, DirectPlay)", "Content": "Legacy Media Components (WMP, DirectPlay) - Enable",
"Description": "Enables legacy programs from previous versions of windows", "Description": "Enables legacy programs from previous versions of Windows.",
"category": "Features", "category": "Features",
"panel": "1", "panel": "1",
"Order": "a012_",
"feature": [ "feature": [
"WindowsMediaPlayer", "WindowsMediaPlayer",
"MediaPlayback", "MediaPlayback",
"DirectPlay", "DirectPlay",
"LegacyComponents" "LegacyComponents"
], ],
"InvokeScript": [],
``` ```
+7 -5
View File
@@ -1,12 +1,14 @@
# NFS - Network File System ---
title: "Network File System (NFS) - Enable"
description: ""
---
```json ```json {filename="config/feature.json",linenos=inline,linenostart=60}
"WPFFeaturenfs": { "WPFFeaturenfs": {
"Content": "NFS - Network File System", "Content": "Network File System (NFS) - Enable",
"Description": "Network File System (NFS) is a mechanism for storing files on a network.", "Description": "Network File System (NFS) is a mechanism for storing files on a network.",
"category": "Features", "category": "Features",
"panel": "1", "panel": "1",
"Order": "a014_",
"feature": [ "feature": [
"ServicesForNFS-ClientOnly", "ServicesForNFS-ClientOnly",
"ClientForNFS-Infrastructure", "ClientForNFS-Infrastructure",
+8 -5
View File
@@ -1,14 +1,17 @@
# Windows Subsystem for Linux ---
title: "Windows Subsystem for Linux (WSL) - Enable"
description: ""
---
```json ```json {filename="config/feature.json",linenos=inline,linenostart=48}
"WPFFeaturewsl": { "WPFFeaturewsl": {
"Content": "Windows Subsystem for Linux", "Content": "Windows Subsystem for Linux (WSL) - Enable",
"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.", "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", "category": "Features",
"panel": "1", "panel": "1",
"Order": "a020_",
"feature": [ "feature": [
"VirtualMachinePlatform", "VirtualMachinePlatform",
"Microsoft-Windows-Subsystem-Linux" "Microsoft-Windows-Subsystem-Linux"
], ],
"InvokeScript": [],
``` ```
+7 -12
View File
@@ -1,16 +1,11 @@
# Set Up Autologin ---
title: "AutoLogon - Run"
description: ""
---
```json ```powershell {filename="functions/public/Invoke-WPFPanelAutologin.ps1",linenos=inline,linenostart=1}
function Invoke-WPFPanelAutologin { function Invoke-WPFPanelAutologin {
<# Invoke-WebRequest -Uri https://live.sysinternals.com/Autologon.exe -OutFile "$Env:Temp\autologin.exe"
Start-Process -FilePath "$Env:Temp\autologin.exe" -ArgumentList /accepteula
.SYNOPSIS
Enables autologin using Sysinternals Autologon.exe
#>
# Official Microsoft recommendation: https://learn.microsoft.com/en-us/sysinternals/downloads/autologon
Invoke-WebRequest -Uri "https://live.sysinternals.com/Autologon.exe" -OutFile "$env:temp\autologin.exe"
cmd /c "$env:temp\autologin.exe" /accepteula
} }
``` ```
@@ -1,141 +0,0 @@
# System Corruption Scan
```json
function Invoke-WPFSystemRepair {
<#
.SYNOPSIS
Checks for system corruption using Chkdsk, SFC, and DISM
.DESCRIPTION
1. Chkdsk - Fixes disk and filesystem corruption
2. SFC Run 1 - Fixes system file corruption, and fixes DISM if it was corrupted
3. DISM - Fixes system image corruption, and fixes SFC's system image if it was corrupted
4. SFC Run 2 - Fixes system file corruption, this time with an almost guaranteed uncorrupted system image
#>
function Invoke-Chkdsk {
<#
.SYNOPSIS
Runs chkdsk on the system drive
.DESCRIPTION
Chkdsk /Scan - Runs an online scan on the system drive, attempts to fix any corruption, and queues other corruption for fixing on reboot
#>
param(
[int]$parentProgressId = 0
)
Write-Progress -Id 1 -ParentId $parentProgressId -Activity $childProgressBarActivity -Status "Running chkdsk..." -PercentComplete 0
$oldpercent = 0
# 2>&1 redirects stdout, allowing iteration over the output
chkdsk.exe /scan /perf 2>&1 | ForEach-Object {
Write-Debug $_
# Regex to match the total percentage regardless of windows locale (it's always the second percentage in the status output)
if ($_ -match "%.*?(\d+)%") {
[int]$percent = $matches[1]
if ($percent -gt $oldpercent) {
Write-Progress -Id 1 -Activity $childProgressBarActivity -Status "Running chkdsk... ($percent%)" -PercentComplete $percent
$oldpercent = $percent
}
}
}
Write-Progress -Id 1 -Activity $childProgressBarActivity -Status "chkdsk Completed" -PercentComplete 100 -Completed
}
function Invoke-SFC {
<#
.SYNOPSIS
Runs sfc on the system drive
.DESCRIPTION
SFC /ScanNow - Performs a scan of the system files and fixes any corruption
.NOTES
ErrorActionPreference is set locally within a script block & {...} to isolate their effects.
ErrorActionPreference suppresses false errors caused by sfc.exe output redirection.
A bug in SFC output buffering causes progress updates to appear in chunks when redirecting output
#>
param(
[int]$parentProgressId = 0
)
& {
$ErrorActionPreference = "SilentlyContinue"
Write-Progress -Id 1 -ParentId $parentProgressId -Activity $childProgressBarActivity -Status "Running SFC..." -PercentComplete 0
$oldpercent = 0
sfc.exe /scannow 2>&1 | ForEach-Object {
Write-Debug $_
if ($_ -ne "") {
# sfc.exe /scannow outputs unicode characters, so we directly remove null characters for optimization
$utf8line = $_ -replace "`0", ""
if ($utf8line -match "(\d+)\s*%") {
[int]$percent = $matches[1]
if ($percent -gt $oldpercent) {
Write-Progress -Id 1 -Activity $childProgressBarActivity -Status "Running SFC... ($percent%)" -PercentComplete $percent
$oldpercent = $percent
}
}
}
}
Write-Progress -Id 1 -Activity $childProgressBarActivity -Status "SFC Completed" -PercentComplete 100 -Completed
}
}
function Invoke-DISM {
<#
.SYNOPSIS
Runs DISM on the system drive
.DESCRIPTION
DISM - Fixes system image corruption, and fixes SFC's system image if it was corrupted
/Online - Fixes the currently running system image
/Cleanup-Image - Performs cleanup operations on the image, could remove some unneeded temporary files
/Restorehealth - Performs a scan of the image and fixes any corruption
#>
param(
[int]$parentProgressId = 0
)
Write-Progress -Id 1 -ParentId $parentProgressId -Activity $childProgressBarActivity -Status "Running DISM..." -PercentComplete 0
$oldpercent = 0
DISM /Online /Cleanup-Image /RestoreHealth | ForEach-Object {
Write-Debug $_
# Filter for lines that contain a percentage that is greater than the previous one
if ($_ -match "(\d+)[.,]\d+%") {
[int]$percent = $matches[1]
if ($percent -gt $oldpercent) {
# Update the progress bar
Write-Progress -Id 1 -Activity $childProgressBarActivity -Status "Running DISM... ($percent%)" -PercentComplete $percent
$oldpercent = $percent
}
}
}
Write-Progress -Id 1 -Activity $childProgressBarActivity -Status "DISM Completed" -PercentComplete 100 -Completed
}
try {
Set-WinUtilTaskbaritem -state "Indeterminate" -overlay "logo"
$childProgressBarActivity = "Scanning for corruption"
Write-Progress -Id 0 -Activity "Repairing Windows" -PercentComplete 0
# Step 1: Run chkdsk to fix disk and filesystem corruption before proceeding with system file repairs
Invoke-Chkdsk
Write-Progress -Id 0 -Activity "Repairing Windows" -PercentComplete 25
# Step 2: Run SFC to fix system file corruption and ensure DISM can operate correctly
Invoke-SFC
Write-Progress -Id 0 -Activity "Repairing Windows" -PercentComplete 50
# Step 3: Run DISM to repair the system image, which SFC relies on for accurate repairs
Invoke-DISM
Write-Progress -Id 0 -Activity "Repairing Windows" -PercentComplete 75
# Step 4: Run SFC again to ensure system files are repaired using the now-fixed system image
Invoke-SFC
Write-Progress -Id 0 -Activity "Repairing Windows" -PercentComplete 100 -Completed
Set-WinUtilTaskbaritem -state "None" -overlay "checkmark"
} catch {
Write-Error "An error occurred while repairing the system: $_"
Set-WinUtilTaskbaritem -state "Error" -overlay "warning"
} finally {
Write-Host "==> Finished System Repair"
Set-WinUtilTaskbaritem -state "None" -overlay "checkmark"
}
}
```
+26
View File
@@ -0,0 +1,26 @@
---
title: "System Corruption Scan - Run"
description: ""
---
```powershell {filename="functions/public/Invoke-WPFSystemRepair.ps1",linenos=inline,linenostart=1}
function Invoke-WPFSystemRepair {
<#
.SYNOPSIS
Checks for system corruption using SFC, and DISM
Checks for disk failure using Chkdsk
.DESCRIPTION
1. Chkdsk - Checks for disk errors, which can cause system file corruption and notifies of early disk failure
2. SFC - scans protected system files for corruption and fixes them
3. DISM - Repair a corrupted Windows operating system image
#>
Start-Process cmd.exe -ArgumentList "/c chkdsk /scan /perf" -NoNewWindow -Wait
Start-Process cmd.exe -ArgumentList "/c sfc /scannow" -NoNewWindow -Wait
Start-Process cmd.exe -ArgumentList "/c dism /online /cleanup-image /restorehealth" -NoNewWindow -Wait
Write-Host "==> Finished System Repair"
Set-WinUtilTaskbaritem -state "None" -overlay "checkmark"
}
```
@@ -0,0 +1,27 @@
---
title: "NTP Server - Enable"
description: ""
---
```powershell {filename="functions/public/Invoke-WPFFixesNTPPool.ps1",linenos=inline,linenostart=1}
function Invoke-WPFFixesNTPPool {
<#
.SYNOPSIS
Configures Windows to use pool.ntp.org for NTP synchronization
.DESCRIPTION
Replaces the default Windows NTP server (time.windows.com) with
pool.ntp.org for improved time synchronization accuracy and reliability.
#>
Start-Service w32time
w32tm /config /update /manualpeerlist:"pool.ntp.org,0x8" /syncfromflags:MANUAL
Restart-Service w32time
w32tm /resync
Write-Host "================================="
Write-Host "-- NTP Configuration Complete ---"
Write-Host "================================="
}
```
+8 -36
View File
@@ -1,40 +1,12 @@
# Reset Network ---
title: "Network - Reset"
description: ""
---
```json ```powershell {filename="functions/public/Invoke-WPFFixesNetwork.ps1",linenos=inline,linenostart=1}
function Invoke-WPFFixesNetwork { function Invoke-WPFFixesNetwork {
<# netsh winsock reset
netsh int ip reset
.SYNOPSIS Write-Host "Network Configuration has been Reset Please restart your computer."
Resets various network configurations
#>
Write-Host "Resetting Network with netsh"
Set-WinUtilTaskbaritem -state "Normal" -value 0.01 -overlay "logo"
# Reset WinSock catalog to a clean state
Start-Process -NoNewWindow -FilePath "netsh" -ArgumentList "winsock", "reset"
Set-WinUtilTaskbaritem -state "Normal" -value 0.35 -overlay "logo"
# Resets WinHTTP proxy setting to DIRECT
Start-Process -NoNewWindow -FilePath "netsh" -ArgumentList "winhttp", "reset", "proxy"
Set-WinUtilTaskbaritem -state "Normal" -value 0.7 -overlay "logo"
# Removes all user configured IP settings
Start-Process -NoNewWindow -FilePath "netsh" -ArgumentList "int", "ip", "reset"
Set-WinUtilTaskbaritem -state "None" -overlay "checkmark"
Write-Host "Process complete. Please reboot your computer."
$ButtonType = [System.Windows.MessageBoxButton]::OK
$MessageboxTitle = "Network Reset "
$Messageboxbody = ("Stock settings loaded.`n Please reboot your computer")
$MessageIcon = [System.Windows.MessageBoxImage]::Information
[System.Windows.MessageBox]::Show($Messageboxbody, $MessageboxTitle, $ButtonType, $MessageIcon)
Write-Host "=========================================="
Write-Host "-- Network Configuration has been Reset --"
Write-Host "=========================================="
} }
``` ```
@@ -1,36 +0,0 @@
# Remove Adobe Creative Cloud
```json
function Invoke-WPFRunAdobeCCCleanerTool {
<#
.SYNOPSIS
It removes or fixes problem files and resolves permission issues in registry keys.
.DESCRIPTION
The Creative Cloud Cleaner tool is a utility for experienced users to clean up corrupted installations.
#>
[string]$url="https://swupmf.adobe.com/webfeed/CleanerTool/win/AdobeCreativeCloudCleanerTool.exe"
Write-Host "The Adobe Creative Cloud Cleaner tool is hosted at"
Write-Host "$url"
try {
# Don't show the progress because it will slow down the download speed
$ProgressPreference='SilentlyContinue'
Invoke-WebRequest -Uri $url -OutFile "$env:TEMP\AdobeCreativeCloudCleanerTool.exe" -UseBasicParsing -ErrorAction SilentlyContinue -Verbose
# Revert back the ProgressPreference variable to the default value since we got the file desired
$ProgressPreference='Continue'
Start-Process -FilePath "$env:TEMP\AdobeCreativeCloudCleanerTool.exe" -Wait -ErrorAction SilentlyContinue -Verbose
} catch {
Write-Error $_.Exception.Message
} finally {
if (Test-Path -Path "$env:TEMP\AdobeCreativeCloudCleanerTool.exe") {
Write-Host "Cleaning up..."
Remove-Item -Path "$env:TEMP\AdobeCreativeCloudCleanerTool.exe" -Verbose
}
}
}
```
+5 -3
View File
@@ -1,6 +1,9 @@
# Reset Windows Update ---
title: "Windows Update - Reset"
description: ""
---
```json ```powershell {filename="functions/public/Invoke-WPFFixesUpdate.ps1",linenos=inline,linenostart=1}
function Invoke-WPFFixesUpdate { function Invoke-WPFFixesUpdate {
<# <#
@@ -227,5 +230,4 @@ function Invoke-WPFFixesUpdate {
Write-Progress -Id 9 -Activity "Starting Windows Update Services" -Completed Write-Progress -Id 9 -Activity "Starting Windows Update Services" -Completed
Write-Progress -Id 10 -Activity "Forcing discovery" -Completed Write-Progress -Id 10 -Activity "Forcing discovery" -Completed
} }
``` ```
+11 -8
View File
@@ -1,25 +1,28 @@
# WinGet Reinstall ---
title: "WinGet - Reinstall"
description: ""
---
```json ```powershell {filename="functions/public/Invoke-WPFFixesWinget.ps1",linenos=inline,linenostart=1}
function Invoke-WPFFixesWinget { function Invoke-WPFFixesWinget {
<# <#
.SYNOPSIS .SYNOPSIS
Fixes Winget by running choco install winget Fixes WinGet by running `choco install winget`
.DESCRIPTION .DESCRIPTION
BravoNorris for the fantastic idea of a button to reinstall winget BravoNorris for the fantastic idea of a button to reinstall WinGet
#> #>
# Install Choco if not already present # Install Choco if not already present
try { try {
Set-WinUtilTaskbaritem -state "Indeterminate" -overlay "logo" Set-WinUtilTaskbaritem -state "Indeterminate" -overlay "logo"
Write-Host "==> Starting Winget Repair" Write-Host "==> Starting WinGet Repair"
Install-WinUtilWinget -Force Install-WinUtilWinget
} catch { } catch {
Write-Error "Failed to install winget: $_" Write-Error "Failed to install WinGet: $_"
Set-WinUtilTaskbaritem -state "Error" -overlay "warning" Set-WinUtilTaskbaritem -state "Error" -overlay "warning"
} finally { } finally {
Write-Host "==> Finished Winget Repair" Write-Host "==> Finished WinGet Repair"
Set-WinUtilTaskbaritem -state "None" -overlay "checkmark" Set-WinUtilTaskbaritem -state "None" -overlay "checkmark"
} }
+6 -7
View File
@@ -1,8 +1,7 @@
### Fixes ---
title: "Fixes"
weight: 2
toc: false
---
- [Remove Adobe Creative Cloud](https://github.com/ChrisTitusTech/winutil/blob/main/docs/content/dev/features/Fixes/RunAdobeCCCleanerTool.md) {{< autolinks section="dev/features/fixes" >}}
- [Reset Network](https://github.com/ChrisTitusTech/winutil/blob/main/docs/content/dev/features/Fixes/Network.md)
- [Reset Windows Update](https://github.com/ChrisTitusTech/winutil/blob/main/docs/content/dev/features/Fixes/Update.md)
- [Set Up Autologin](https://github.com/ChrisTitusTech/winutil/blob/main/docs/content/dev/features/Fixes/Autologin.md)
- [System Corruption Scan](https://github.com/ChrisTitusTech/winutil/blob/main/docs/content/dev/features/Fixes/CorruptionScan.md)
- [WinGet Reinstall](https://github.com/ChrisTitusTech/winutil/blob/main/docs/content/dev/features/Fixes/Winget.md)
@@ -0,0 +1,16 @@
---
title: "Computer Management"
description: ""
---
```json {filename="config/feature.json",linenos=inline,linenostart=193}
"WPFPanelComputer": {
"Content": "Computer Management",
"category": "Legacy Windows Panels",
"panel": "2",
"Type": "Button",
"ButtonWidth": "300",
"InvokeScript": [
"compmgmt.msc"
],
```
@@ -0,0 +1,16 @@
---
title: "Control Panel"
description: ""
---
```json {filename="config/feature.json",linenos=inline,linenostart=182}
"WPFPanelControl": {
"Content": "Control Panel",
"category": "Legacy Windows Panels",
"panel": "2",
"Type": "Button",
"ButtonWidth": "300",
"InvokeScript": [
"control"
],
```
@@ -0,0 +1,16 @@
---
title: "Network Connections"
description: ""
---
```json {filename="config/feature.json",linenos=inline,linenostart=204}
"WPFPanelNetwork": {
"Content": "Network Connections",
"category": "Legacy Windows Panels",
"panel": "2",
"Type": "Button",
"ButtonWidth": "300",
"InvokeScript": [
"ncpa.cpl"
],
```
@@ -0,0 +1,16 @@
---
title: "Power Panel"
description: ""
---
```json {filename="config/feature.json",linenos=inline,linenostart=215}
"WPFPanelPower": {
"Content": "Power Panel",
"category": "Legacy Windows Panels",
"panel": "2",
"Type": "Button",
"ButtonWidth": "300",
"InvokeScript": [
"powercfg.cpl"
],
```
@@ -0,0 +1,16 @@
---
title: "Printer Panel"
description: ""
---
```json {filename="config/feature.json",linenos=inline,linenostart=226}
"WPFPanelPrinter": {
"Content": "Printer Panel",
"category": "Legacy Windows Panels",
"panel": "2",
"Type": "Button",
"ButtonWidth": "300",
"InvokeScript": [
"Start-Process 'shell:::{A8A91A66-3A7D-4424-8D24-04E180695C7A}'"
],
```
@@ -0,0 +1,16 @@
---
title: "Region"
description: ""
---
```json {filename="config/feature.json",linenos=inline,linenostart=237}
"WPFPanelRegion": {
"Content": "Region",
"category": "Legacy Windows Panels",
"panel": "2",
"Type": "Button",
"ButtonWidth": "300",
"InvokeScript": [
"intl.cpl"
],
```
@@ -0,0 +1,16 @@
---
title: "Windows Restore"
description: ""
---
```json {filename="config/feature.json",linenos=inline,linenostart=248}
"WPFPanelRestore": {
"Content": "Windows Restore",
"category": "Legacy Windows Panels",
"panel": "2",
"Type": "Button",
"ButtonWidth": "300",
"InvokeScript": [
"rstrui.exe"
],
```
@@ -0,0 +1,16 @@
---
title: "Sound Settings"
description: ""
---
```json {filename="config/feature.json",linenos=inline,linenostart=259}
"WPFPanelSound": {
"Content": "Sound Settings",
"category": "Legacy Windows Panels",
"panel": "2",
"Type": "Button",
"ButtonWidth": "300",
"InvokeScript": [
"mmsys.cpl"
],
```
@@ -0,0 +1,16 @@
---
title: "System Properties"
description: ""
---
```json {filename="config/feature.json",linenos=inline,linenostart=270}
"WPFPanelSystem": {
"Content": "System Properties",
"category": "Legacy Windows Panels",
"panel": "2",
"Type": "Button",
"ButtonWidth": "300",
"InvokeScript": [
"sysdm.cpl"
],
```
@@ -0,0 +1,16 @@
---
title: "Time and Date"
description: ""
---
```json {filename="config/feature.json",linenos=inline,linenostart=281}
"WPFPanelTimedate": {
"Content": "Time and Date",
"category": "Legacy Windows Panels",
"panel": "2",
"Type": "Button",
"ButtonWidth": "300",
"InvokeScript": [
"timedate.cpl"
],
```
@@ -1,10 +1,7 @@
### Legacy Windows Panels ---
title: "Legacy Windows Panels"
weight: 3
toc: false
---
- [Control Panel](https://github.com/ChrisTitusTech/winutil/blob/main/docs/content/dev/features/Legacy-Windows-Panels/control.md) {{< autolinks section="dev/features/legacy-windows-panels" >}}
- [Network Connections](https://github.com/ChrisTitusTech/winutil/blob/main/docs/content/dev/features/Legacy-Windows-Panels/network.md)
- [Power Panel](https://github.com/ChrisTitusTech/winutil/blob/main/docs/content/dev/features/Legacy-Windows-Panels/power.md)
- [Printer Settings](https://github.com/ChrisTitusTech/winutil/blob/main/docs/content/dev/features/Legacy-Windows-Panels/printer.md)
- [Region](https://github.com/ChrisTitusTech/winutil/blob/main/docs/content/dev/features/Legacy-Windows-Panels/region.md)
- [Sound Settings](https://github.com/ChrisTitusTech/winutil/blob/main/docs/content/dev/features/Legacy-Windows-Panels/sound.md)
- [System Properties](https://github.com/ChrisTitusTech/winutil/blob/main/docs/content/dev/features/Legacy-Windows-Panels/system.md)
- [User Accounts](https://github.com/ChrisTitusTech/winutil/blob/main/docs/content/dev/features/Legacy-Windows-Panels/user.md)
@@ -1,30 +0,0 @@
# Control Panel
```json
function Invoke-WPFControlPanel {
<#
.SYNOPSIS
Opens the requested legacy panel
.PARAMETER Panel
The panel to open
#>
param($Panel)
switch ($Panel) {
"WPFPanelControl" {control}
"WPFPanelComputer" {compmgmt.msc}
"WPFPanelNetwork" {ncpa.cpl}
"WPFPanelPower" {powercfg.cpl}
"WPFPanelPrinter" {Start-Process "shell:::{A8A91A66-3A7D-4424-8D24-04E180695C7A}"}
"WPFPanelRegion" {intl.cpl}
"WPFPanelRestore" {rstrui.exe}
"WPFPanelSound" {mmsys.cpl}
"WPFPanelSystem" {sysdm.cpl}
"WPFPanelTimedate" {timedate.cpl}
"WPFPanelUser" {control userpasswords2}
}
}
```
@@ -1,30 +0,0 @@
# Network Connections
```json
function Invoke-WPFControlPanel {
<#
.SYNOPSIS
Opens the requested legacy panel
.PARAMETER Panel
The panel to open
#>
param($Panel)
switch ($Panel) {
"WPFPanelControl" {control}
"WPFPanelComputer" {compmgmt.msc}
"WPFPanelNetwork" {ncpa.cpl}
"WPFPanelPower" {powercfg.cpl}
"WPFPanelPrinter" {Start-Process "shell:::{A8A91A66-3A7D-4424-8D24-04E180695C7A}"}
"WPFPanelRegion" {intl.cpl}
"WPFPanelRestore" {rstrui.exe}
"WPFPanelSound" {mmsys.cpl}
"WPFPanelSystem" {sysdm.cpl}
"WPFPanelTimedate" {timedate.cpl}
"WPFPanelUser" {control userpasswords2}
}
}
```
@@ -1,30 +0,0 @@
# Power Panel
```json
function Invoke-WPFControlPanel {
<#
.SYNOPSIS
Opens the requested legacy panel
.PARAMETER Panel
The panel to open
#>
param($Panel)
switch ($Panel) {
"WPFPanelControl" {control}
"WPFPanelComputer" {compmgmt.msc}
"WPFPanelNetwork" {ncpa.cpl}
"WPFPanelPower" {powercfg.cpl}
"WPFPanelPrinter" {Start-Process "shell:::{A8A91A66-3A7D-4424-8D24-04E180695C7A}"}
"WPFPanelRegion" {intl.cpl}
"WPFPanelRestore" {rstrui.exe}
"WPFPanelSound" {mmsys.cpl}
"WPFPanelSystem" {sysdm.cpl}
"WPFPanelTimedate" {timedate.cpl}
"WPFPanelUser" {control userpasswords2}
}
}
```

Some files were not shown because too many files have changed in this diff Show More