Compare commits

...

204 Commits

Author SHA1 Message Date
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
219 changed files with 3859 additions and 7719 deletions
+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.
!!! warning "Important"
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;
```powershell
git clone https://github.com/YOUR_USERNAME/winutil.git
cd winutil
```
!!! 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
* Fork the WinUtil Repository [here](https://github.com/ChrisTitusTech/winutil) to create a copy that will be available in your repository list.
### 3. Create a Branch
![Fork Image](/docs/assets/images/Fork-Button-Dark.png#gh-dark-mode-only)
Never work directly on `main`.
![Fork Image](/docs/assets/images/Fork-Button-Light.png#only-light#gh-light-mode-only)
Create a branch related to your change:
### Clone the Fork
!!! tip
```powershell
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.
* Log in using the same GitHub account you used to fork WinUtil.
* Choose the fork under "Your Repositories" and press "clone {repo name}"
* Create a new branch and name it something relatable to your changes.
```powershell
git checkout -b add-firefox-tweak
```
* 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](/docs/assets/images/Complie.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
* Before committing your changes, please discard changes made to the `winutil.ps1` file, like the following:
Go to the project folder:
![Push Commit Image](/docs/assets/images/Discard-GHD.png)
```powershell
cd path\to\winutil
```
* Now, commit your changes once you are happy with the result.
Run:
![Commit Image](/docs/assets/images/Commit-GHD.png)
```powershell
.\Compile.ps1 -Run
```
* Push the changes to upload them to your fork on github.com.
Verify:
![Push Commit Image](/docs/assets/images/Push-Commit.png)
- WinUtil launches correctly
- Your feature works
- Nothing else breaks
### Making a PR
* 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.
If something fails, fix it before committing.
---
### 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.
+20 -30
View File
@@ -6,57 +6,47 @@ body:
- type: markdown
attributes:
value: |
# 🐞 **Issue Report**
Thank you for taking the time to report an issue! Please provide as much detail as possible to help us address the problem efficiently.
## ⚠️ **IMPORTANT**
- 🛠️ **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).
- Remember, we only support Windows 11. If you encounter problems on Windows 10, please consider upgrading to Windows 11.
- For general questions, join our Community-driven [Discord Server](https://discord.gg/RUbZUZyByQ).
- type: checkboxes
id: read_issues
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:
- 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 issue.
validations:
- label: Yes, I did
required: true
- type: input
- type: dropdown
id: affected_part
attributes:
label: 📜 What part of Winutil are you having issues with?
placeholder: "e.g., Tweaks, etc."
label: What part of Winutil are you having issues with?
options:
- Program Install Tab
- Tweaks Tab
- Config Tab
- Updates Tab
- Win11 Creator Tab
validations:
required: true
required: false
- type: textarea
id: issue_description
attributes:
label: 📝 Provide a clear and concise description of the issue.
label: Provide a clear and concise description of the issue.
validations:
required: true
- type: textarea
id: steps_to_reproduce
id: tweaks_applied
attributes:
label: 🔄 Steps to reproduce the issue.
placeholder: "e.g., Step 1: ..., Step 2: ..."
label: List the tweaks you applied before the issue occurred.
validations:
required: true
required: false
- type: textarea
id: error_output
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."
- 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.
- 💡 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
id: proposed_solution
attributes:
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:
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
+1
View File
@@ -1,4 +1,5 @@
<!--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
- [ ] New feature
+4 -4
View File
@@ -30,7 +30,7 @@ jobs:
if: github.repository == 'ChrisTitusTech/winutil'
runs-on: ubuntu-latest
env:
HUGO_VERSION: 0.147.7
HUGO_VERSION: 0.156.0
HUGO_ENVIRONMENT: production
TZ: America/Chicago
steps:
@@ -46,7 +46,7 @@ jobs:
persist-credentials: false
- name: Setup Pages
id: pages
uses: actions/configure-pages@v5
uses: actions/configure-pages@v6
- name: Generate Dev Docs from JSON
shell: pwsh
@@ -103,7 +103,7 @@ jobs:
${{ runner.temp }}/hugo_cache
key: ${{ steps.cache-restore.outputs.cache-primary-key }}
- name: Upload artifact
uses: actions/upload-pages-artifact@v4
uses: actions/upload-pages-artifact@v5
with:
path: ./docs/public
@@ -117,4 +117,4 @@ jobs:
steps:
- name: Deploy to GitHub Pages
id: deployment
uses: actions/deploy-pages@v4
uses: actions/deploy-pages@v5
+54 -92
View File
@@ -15,101 +15,63 @@ jobs:
contents: read
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
id: check_label_command
run: |
if [[ "${{ contains(github.event.comment.body, '/label') }}" == "true" ]]; then
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
// Authorization check first — before any parsing of comment content
if (!allowedUsers.includes(commenter)) {
console.log(`User ${commenter} is not in the allowlist. Skipping.`);
return;
}
- name: Check for /unlabel command
id: check_unlabel_command
run: |
if [[ "${{ contains(github.event.comment.body, '/unlabel') }}" == "true" ]]; then
echo "command=true" >> $GITHUB_ENV
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
// Read comment body as data, never interpolated into shell
const body = context.payload.comment.body;
const issueNumber = context.issue.number;
const owner = context.repo.owner;
const repo = context.repo.repo;
- name: Check for /close command
id: check_close_command
run: |
if [[ "${{ contains(github.event.comment.body, '/close') }}" == "true" ]]; then
echo "command=true" >> $GITHUB_ENV
echo "close_command=true" >> $GITHUB_ENV
echo "reopen_command=false" >> $GITHUB_ENV
else
echo "close_command=false" >> $GITHUB_ENV
fi
// /label 'name' or /label name
const labelMatch = body.match(/\/label\s+'([^']+)'|\/label\s+(\S+?)(?:\s|$)/);
if (labelMatch) {
const labelName = (labelMatch[1] || labelMatch[2]).trim();
console.log(`Adding label: ${labelName}`);
await github.rest.issues.addLabels({
owner, repo, issue_number: issueNumber,
labels: [labelName],
});
}
- name: Check for /open or /reopen command
id: check_reopen_command
run: |
if [[ "${{ contains(github.event.comment.body, '/open') }}" == "true" ]] || [[ "${{ contains(github.event.comment.body, '/reopen') }}" == "true" ]]; then
echo "command=true" >> $GITHUB_ENV
echo "reopen_command=true" >> $GITHUB_ENV
echo "close_command=false" >> $GITHUB_ENV
else
echo "reopen_command=false" >> $GITHUB_ENV
fi
// /unlabel 'name' or /unlabel name
const unlabelMatch = body.match(/\/unlabel\s+'([^']+)'|\/unlabel\s+(\S+?)(?:\s|$)/);
if (unlabelMatch) {
const labelName = (unlabelMatch[1] || unlabelMatch[2]).trim();
console.log(`Removing label: ${labelName}`);
await github.rest.issues.removeLabel({
owner, repo, issue_number: issueNumber,
name: labelName,
});
}
- name: Check if the user is allowed
id: check_user
if: env.command == 'true'
run: |
ALLOWED_USERS=("ChrisTitusTech" "og-mrk" "Marterich" "MyDrift-user" "Real-MullaC" "CodingWonders" "GabiNun")
if [[ " ${ALLOWED_USERS[@]} " =~ " ${{ github.event.comment.user.login }} " ]]; then
echo "user=true" >> $GITHUB_ENV
else
exit 0
fi
// /close (optionally with 'not planned')
if (body.includes('/close')) {
const stateReason = body.includes('not planned') ? 'not_planned' : 'completed';
console.log(`Closing issue (reason: ${stateReason})`);
await github.rest.issues.update({
owner, repo, issue_number: issueNumber,
state: 'closed',
state_reason: stateReason,
});
}
- name: Close issue
if: env.close_command == 'true'
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
ISSUE_NUMBER: ${{ github.event.issue.number }}
run: |
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 }}"
// /open or /reopen
if (body.includes('/open') || body.includes('/reopen')) {
console.log('Reopening issue');
await github.rest.issues.update({
owner, repo, issue_number: issueNumber,
state: 'open',
});
}
+1 -1
View File
@@ -13,7 +13,7 @@ jobs:
contents: read # Often needed for github-script
steps:
- name: Check PR body for Type of Change
uses: actions/github-script@v8
uses: actions/github-script@v9
with:
script: |
const prBody = context.payload.pull_request.body || '';
+24 -3
View File
@@ -11,6 +11,8 @@ on:
jobs:
build-runspace:
runs-on: windows-latest
outputs:
version: ${{ steps.extract_version.outputs.version }}
env:
CERTIFICATE_BASE64: ${{ secrets.CERTIFICATE_BASE64 }}
steps:
@@ -44,7 +46,7 @@ jobs:
config/feature.json
labels: |
automated
documentation
skip-changelog
- name: Check outputs
shell: bash
@@ -57,6 +59,7 @@ jobs:
run: |
$version = (Get-Date -Format "yy.MM.dd")
echo "VERSION=$version" >> $env:GITHUB_ENV
echo "version=$version" >> $env:GITHUB_OUTPUT
shell: pwsh
- name: Create Tag
@@ -79,9 +82,27 @@ jobs:
}
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
id: generate_notes
uses: release-drafter/release-drafter@v6
uses: release-drafter/release-drafter@v7
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
@@ -90,7 +111,7 @@ jobs:
- name: Create and Upload Release
id: create_release
uses: softprops/action-gh-release@v2
uses: softprops/action-gh-release@v3
with:
tag_name: ${{ env.VERSION }}
name: Pre-Release ${{ env.VERSION }}
+9 -39
View File
@@ -1,23 +1,15 @@
### VSCode ###
# Libraries
System.Management.Automation.dll
Microsoft.PowerShell.ConsoleHost.dll
# 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
# OS Specific
desktop.ini
.DS_Store
# Ignore Generated XAML Files
xaml/inputApp.xaml
@@ -25,37 +17,15 @@ 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
*.psd*
# Libraries
System.Management.Automation.dll
Microsoft.PowerShell.ConsoleHost.dll
# Compressed files
*.zip
### MacOS ###
# General
.DS_Store
True
test.ps1
winutil.ps1
# temporary excludes for docs
.github/site/
# winutil-bin
winutil.exe.config
binary/
.preprocessor_hashes.json
# Hugo Files
docs/public/
docs/.hugo_build.lock
+25 -119
View File
@@ -1,144 +1,50 @@
param (
[switch]$Run,
[string]$Arguments
[switch]$Run
)
if ((Get-Item ".\winutil.ps1" -ErrorAction SilentlyContinue).IsReadOnly) {
Remove-Item ".\winutil.ps1" -Force
}
$OFS = "`r`n"
$scriptname = "winutil.ps1"
$workingdir = $PSScriptRoot
$OFS = "`r`n" # Makes it so we dont need to add -Raw to every Get-Content command
# Variable to sync between runspaces
$sync = [Hashtable]::Synchronized(@{})
$sync.configs = @{}
function Update-Progress {
param (
[Parameter(Mandatory, position=0)]
[string]$StatusMessage,
# Create the script in memory.
$script = [System.Collections.Generic.List[string]]::new()
[Parameter(Mandatory, position=1)]
[ValidateRange(0,100)]
[int]$Percent,
[Parameter(position=2)]
[string]$Activity = "Compiling"
)
Write-Progress -Activity $Activity -Status $StatusMessage -PercentComplete $Percent
}
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',
'.\.preprocessor_hashes.json'
$script.Add(
((Get-Content -Path scripts\start.ps1) -replace '#{replaceme}', (Get-Date -Format 'yy.MM.dd'))
)
$msg = "Pre-req: Code Formatting"
Invoke-Preprocessing -WorkingDir "$workingdir" -ExcludedFiles $excludedFiles -ProgressStatusMessage $msg
$script.Add((Get-ChildItem -Path functions -Recurse -File | Get-Content))
# Create the script in memory.
Update-Progress "Pre-req: Allocating Memory" 0
$script_content = [System.Collections.Generic.List[string]]::new()
Get-ChildItem config | ForEach-Object {
$obj = Get-Content -Path $_.FullName | ConvertFrom-Json
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
if ($_.Name -eq "applications.json") {
$fixed = [ordered]@{}
foreach ($p in $obj.PSObject.Properties) {
$fixed["WPFInstall$($p.Name)"] = $p.Value
}
$obj = [pscustomobject]$fixed
}
# Line 90 requires no whitespace inside the here-strings, to keep formatting of the JSON in the final script.
$json = @"
$($jsonAsObject | ConvertTo-Json -Depth 3)
"@
$json = $obj | ConvertTo-Json -Depth 10
$sync.configs.$($psitem.BaseName) = $json | ConvertFrom-Json
$script_content.Add($(Write-Output "`$sync.configs.$($psitem.BaseName) = @'`r`n$json`r`n'@ `| ConvertFrom-Json" ))
$sync.configs[$_.BaseName] = $obj
$script.Add("`$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 "$workingdir\xaml\inputXML.xaml" -Raw
$xaml = Get-Content -Path xaml\inputXML.xaml
$script.Add('$inputXML = @''' + "`n" + $xaml + "`n" + '''@')
Update-Progress "Adding: Xaml " 90
$autounattendXml = Get-Content -Path tools\autounattend.xml
$script.Add("`$WinUtilAutounattendXml = @'`r`n$autounattendXml`r`n'@")
# Add the XAML content to $script_content using a here-string
$script_content.Add(@"
`$inputXML = @'
$xaml
'@
"@)
$script.Add((Get-Content -Path scripts\main.ps1))
Update-Progress "Adding: autounattend.xml" 95
$autounattendRaw = Get-Content "$workingdir\tools\autounattend.xml" -Raw
# Strip XML comments (<!-- ... -->, including multi-line)
$autounattendRaw = [regex]::Replace($autounattendRaw, '<!--.*?-->', '', [System.Text.RegularExpressions.RegexOptions]::Singleline)
# Drop blank lines and trim trailing whitespace per line
$autounattendXml = ($autounattendRaw -split "`r?`n" |
Where-Object { $_.Trim() -ne '' } |
ForEach-Object { $_.TrimEnd() }) -join "`r`n"
$script_content.Add(@"
`$WinUtilAutounattendXml = @'
$autounattendXml
'@
"@)
Set-Content -Path winutil.ps1 -Value $script
$script_content.Add($(Get-Content "scripts\main.ps1"))
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
exit 1
}
Write-Progress -Activity "Validating" -Completed
if ($run) {
Set-ExecutionPolicy -Scope Process -ExecutionPolicy Bypass
.\Winutil.ps1 $Arguments
break
if ($Run) {
.\Winutil.ps1
}
+22 -5
View File
@@ -35,6 +35,23 @@ irm "https://christitus.com/win" | iex
irm "https://christitus.com/windev" | iex
```
### Automation
Winutil also supports predefined presets that apply common configurations automatically:
- `Standard`
- `Minimal`
- `Advanced`
Example:
```powershell
& ([ScriptBlock]::Create((irm "https://christitus.com/win"))) -Preset Standard
```
To view exactly what each preset does, see:
https://github.com/ChrisTitusTech/winutil/blob/main/config/preset.json
If you have Issues, refer to [Known Issues](https://winutil.christitus.com/knownissues/) or [Create Issue](https://github.com/ChrisTitusTech/winutil/issues)
## 🎓 Documentation
@@ -50,9 +67,9 @@ If you have Issues, refer to [Known Issues](https://winutil.christitus.com/known
> [!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.
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:
If git is installed, run the following commands under a PowerShell window to clone and move into the project's directory:
```ps1
git clone --depth 1 "https://github.com/ChrisTitusTech/winutil.git"
cd winutil
@@ -63,10 +80,10 @@ To build the project, run the Compile Script under a PowerShell window (admin pe
.\Compile.ps1
```
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 :)
You'll see a new file named `winutil.ps1`, which was created by `Compile.ps1` script. Now you can run it as admin, and a new window will pop up. Enjoy your own compiled version of WinUtil :)
> [!TIP]
> 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.
> 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.
## 💖 Support
- To morally and mentally support the project, make sure to leave a ⭐️!
@@ -76,7 +93,7 @@ You'll see a new file named `winutil.ps1`, which's created by `Compile.ps1` scri
These are the sponsors that help keep this project alive with monthly contributions.
<!-- sponsors --><a href="https://github.com/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/andrewpayne68"><img src="https:&#x2F;&#x2F;github.com&#x2F;andrewpayne68.png" width="60px" alt="User avatar: Andrew P" /></a><a href="https://github.com/nathanzilgo"><img src="https:&#x2F;&#x2F;github.com&#x2F;nathanzilgo.png" width="60px" alt="User avatar: Nathan Fernandes Pedroza" /></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 🍻.
+317 -1871
View File
File diff suppressed because it is too large Load Diff
+2 -2
View File
@@ -21,13 +21,13 @@
"Description": "Upgrade all applications to the latest version"
},
"WingetRadioButton": {
"Content": "Winget",
"Content": "WinGet",
"Category": "__Package Manager",
"Type": "RadioButton",
"GroupName": "PackageManagerGroup",
"Checked": true,
"Order": "1",
"Description": "Use Winget for package management"
"Description": "Use WinGet for package management"
},
"ChocoRadioButton": {
"Content": "Chocolatey",
+27 -17
View File
@@ -1,6 +1,6 @@
{
"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.",
"category": "Features",
"panel": "1",
@@ -11,8 +11,18 @@
"InvokeScript": [],
"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": {
"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.",
"category": "Features",
"panel": "1",
@@ -25,7 +35,7 @@
"link": "https://winutil.christitus.com/dev/features/features/hyperv"
},
"WPFFeatureslegacymedia": {
"Content": "Legacy Media (WMP, DirectPlay)",
"Content": "Legacy Media Components (WMP, DirectPlay) - Enable",
"Description": "Enables legacy programs from previous versions of Windows.",
"category": "Features",
"panel": "1",
@@ -39,7 +49,7 @@
"link": "https://winutil.christitus.com/dev/features/features/legacymedia"
},
"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.",
"category": "Features",
"panel": "1",
@@ -51,7 +61,7 @@
"link": "https://winutil.christitus.com/dev/features/features/wsl"
},
"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.",
"category": "Features",
"panel": "1",
@@ -70,7 +80,7 @@
"link": "https://winutil.christitus.com/dev/features/features/nfs"
},
"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.",
"category": "Features",
"panel": "1",
@@ -87,7 +97,7 @@
"link": "https://winutil.christitus.com/dev/features/features/regbackup"
},
"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.",
"category": "Features",
"panel": "1",
@@ -98,7 +108,7 @@
"link": "https://winutil.christitus.com/dev/features/features/enablelegacyrecovery"
},
"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.",
"category": "Features",
"panel": "1",
@@ -109,7 +119,7 @@
"link": "https://winutil.christitus.com/dev/features/features/disablelegacyrecovery"
},
"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.",
"category": "Features",
"panel": "1",
@@ -128,7 +138,7 @@
"link": "https://winutil.christitus.com/dev/features/features/install"
},
"WPFPanelAutologin": {
"Content": "Set Up Autologin",
"Content": "AutoLogon - Run",
"category": "Fixes",
"panel": "1",
"Type": "Button",
@@ -137,7 +147,7 @@
"link": "https://winutil.christitus.com/dev/features/fixes/autologin"
},
"WPFFixesUpdate": {
"Content": "Reset Windows Update",
"Content": "Windows Update - Reset",
"category": "Fixes",
"panel": "1",
"Type": "Button",
@@ -146,7 +156,7 @@
"link": "https://winutil.christitus.com/dev/features/fixes/update"
},
"WPFFixesNetwork": {
"Content": "Reset Network",
"Content": "Network - Reset",
"category": "Fixes",
"panel": "1",
"Type": "Button",
@@ -155,7 +165,7 @@
"link": "https://winutil.christitus.com/dev/features/fixes/network"
},
"WPFPanelDISM": {
"Content": "System Corruption Scan",
"Content": "System Corruption Scan - Run",
"category": "Fixes",
"panel": "1",
"Type": "Button",
@@ -164,7 +174,7 @@
"link": "https://winutil.christitus.com/dev/features/fixes/dism"
},
"WPFFixesWinget": {
"Content": "WinGet Reinstall",
"Content": "WinGet - Reinstall",
"category": "Fixes",
"panel": "1",
"Type": "Button",
@@ -283,7 +293,7 @@
"link": "https://winutil.christitus.com/dev/features/legacy-windows-panels/timedate"
},
"WPFWinUtilInstallPSProfile": {
"Content": "Install CTT PowerShell Profile",
"Content": "CTT PowerShell Profile - Install",
"category": "Powershell Profile Powershell 7+ Only",
"panel": "2",
"Type": "Button",
@@ -292,7 +302,7 @@
"link": "https://winutil.christitus.com/dev/features/powershell-profile-powershell-7--only/installpsprofile"
},
"WPFWinUtilUninstallPSProfile": {
"Content": "Uninstall CTT PowerShell Profile",
"Content": "CTT PowerShell Profile - Remove",
"category": "Powershell Profile Powershell 7+ Only",
"panel": "2",
"Type": "Button",
@@ -301,7 +311,7 @@
"link": "https://winutil.christitus.com/dev/features/powershell-profile-powershell-7--only/uninstallpsprofile"
},
"WPFWinUtilSSHServer": {
"Content": "Enable OpenSSH Server",
"Content": "OpenSSH Server - Enable",
"category": "Remote Access",
"panel": "2",
"Type": "Button",
+22
View File
@@ -5,6 +5,7 @@
"WPFTweaksDisableExplorerAutoDiscovery",
"WPFTweaksWPBT",
"WPFTweaksDVR",
"WPFTweaksDeBloat",
"WPFTweaksLocation",
"WPFTweaksServices",
"WPFTweaksTelemetry",
@@ -16,8 +17,29 @@
],
"Minimal": [
"WPFTweaksConsumerFeatures",
"WPFTweaksDeBloat",
"WPFTweaksWPBT",
"WPFTweaksServices",
"WPFTweaksTelemetry"
],
"Advanced": [
"WPFTweaksActivity",
"WPFTweaksConsumerFeatures",
"WPFTweaksDisableExplorerAutoDiscovery",
"WPFTweaksWPBT",
"WPFTweaksDVR",
"WPFTweaksDeBloat",
"WPFTweaksLocation",
"WPFTweaksServices",
"WPFTweaksTelemetry",
"WPFTweaksDeleteTempFiles",
"WPFTweaksEndTaskOnTaskbar",
"WPFTweaksDisableStoreSearch",
"WPFTweaksRevertStartMenu",
"WPFTweaksWidget",
"WPFTweaksRemoveOneDrive",
"WPFTweaksWindowsAI",
"WPFTweaksRightClickMenu",
"WPFTweaksPowershell7Tele"
]
}
+8 -11
View File
@@ -1,5 +1,5 @@
{
"shared":{
"shared": {
"AppEntryWidth": "200",
"AppEntryFontSize": "11",
"AppEntryMargin": "1,0,1,0",
@@ -45,7 +45,7 @@
"AppInstallUnselectedColor": "#F7F7F7",
"AppInstallHighlightedColor": "#CFCFCF",
"AppInstallSelectedColor": "#C2C2C2",
"AppInstallOverlayBackgroundColor":"#6A6D72",
"AppInstallOverlayBackgroundColor": "#6A6D72",
"ComboBoxForegroundColor": "#232629",
"ComboBoxBackgroundColor": "#F7F7F7",
"LabelboxForegroundColor": "#232629",
@@ -57,8 +57,7 @@
"ScrollBarBackgroundColor": "#4A4D52",
"ScrollBarHoverColor": "#5A5D62",
"ScrollBarDraggingColor": "#6A6D72",
"ProgressBarForegroundColor": "#2e77ff",
"ProgressBarForegroundColor": "#2E77FF",
"ProgressBarBackgroundColor": "Transparent",
"ProgressBarTextColor": "#232629",
"ButtonInstallBackgroundColor": "#F7F7F7",
@@ -76,30 +75,28 @@
"ButtonBackgroundMouseoverColor": "#C2C2C2",
"ButtonBackgroundSelectedColor": "#F0F0F0",
"ButtonForegroundColor": "#232629",
"ToggleButtonOnColor": "#2e77ff",
"ToggleButtonOnColor": "#2E77FF",
"ToggleButtonOffColor": "#707070",
"ToolTipBackgroundColor": "#F7F7F7",
"BorderColor": "#232629",
"BorderOpacity": "0.2"
},
"Dark": {
"AppInstallUnselectedColor": "#232629",
"AppInstallHighlightedColor": "#3C3C3C",
"AppInstallSelectedColor": "#4C4C4C",
"AppInstallOverlayBackgroundColor":"#2E3135",
"AppInstallOverlayBackgroundColor": "#2E3135",
"ComboBoxForegroundColor": "#F7F7F7",
"ComboBoxBackgroundColor": "#1E3747",
"LabelboxForegroundColor": "#5bdcff",
"LabelboxForegroundColor": "#5BDCFF",
"MainForegroundColor": "#F7F7F7",
"MainBackgroundColor": "#232629",
"LabelBackgroundColor": "#232629",
"LinkForegroundColor": "#add8e6",
"LinkForegroundColor": "#ADD8E6",
"LinkHoverForegroundColor": "#F7F7F7",
"ScrollBarBackgroundColor": "#2E3135",
"ScrollBarHoverColor": "#3B4252",
"ScrollBarDraggingColor": "#5E81AC",
"ProgressBarForegroundColor": "#222222",
"ProgressBarBackgroundColor": "Transparent",
"ProgressBarTextColor": "#232629",
@@ -118,7 +115,7 @@
"ButtonBackgroundMouseoverColor": "#3B4252",
"ButtonBackgroundSelectedColor": "#5E81AC",
"ButtonForegroundColor": "#F7F7F7",
"ToggleButtonOnColor": "#2e77ff",
"ToggleButtonOnColor": "#2E77FF",
"ToggleButtonOffColor": "#707070",
"ToolTipBackgroundColor": "#2F373D",
"BorderColor": "#2F373D",
+643 -1455
View File
File diff suppressed because it is too large Load Diff
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

After

Width:  |  Height:  |  Size: 139 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 92 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: 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: 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
---
# 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]
> 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!
## Basic Git Workflow
## 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]
> 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;
```bash
git clone https://github.com/YOUR_USERNAME/winutil.git
cd winutil
```
> [!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]
> 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.
Create a branch related to your change:
* Install GitHub Desktop if it is not already installed.
* Log in using the same GitHub account you used to fork Winutil.
* Choose the fork under "Your Repositories" and press "clone {repo name}"
* Create a new branch and name it something relatable to your changes.
```bash
git checkout -b feature-name
```
* 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.
* `cd {path to the folder with the compile.ps1}`
* Run the following command to compile and run Winutil:
* `.\Compile.ps1 -run`
Open the project in your preferred text editor and make your changes.
{{< 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
* Before committing your changes, please discard changes made to the `Winutil.ps1` file, like the following:
### 5. Test Your Changes
{{< 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
* 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.
Verify:
- WinUtil launches correctly
- 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.
+8 -166
View File
@@ -11,16 +11,9 @@ If `https://christitus.com/win` is not working, or you want to download the code
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:
If it still isn't working in your region, it may be due to temporary ISP or network filtering of GitHub content domains. This has been reported by some users in India in the past. See: [Times of India](https://timesofindia.indiatimes.com/gadgets-news/github-content-domain-blocked-for-these-indian-users-reports/articleshow/96687992.cms).
```
[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).
If you are still having issues, try using a **VPN**, or changing your **DNS provider** to one of following two providers:
If you are still having issues, try using a **VPN**, or changing your **DNS provider** to one of the following two providers:
| Provider | Primary DNS | Secondary DNS |
| :--------: | :---------: | :-----------: |
@@ -29,165 +22,14 @@ If you are still having issues, try using a **VPN**, or changing your **DNS prov
### Script Won't Run
If your PowerShell session is running in **Constrained Language Mode**, some scripts and commands may fail to execute. To check the current language mode, run:
```powershell
$ExecutionContext.SessionState.LanguageMode
```
If it returns `ConstrainedLanguage`, you may need to switch to `FullLanguage` mode or run the script in a session with administrative privileges. Be aware that some security policies may enforce Constrained Language Mode, especially in corporate or managed environments.
If you run WinUtil and get the error:
### Script blocked by Execution Policy
`"WinUtil is unable to run on your system, powershell execution is restricted by security policies,"`
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:
this means that your PowerShell session is in **Constrained Language Mode**, which prevents WinUtil from running.
```
Set-ExecutionPolicy Unrestricted -Scope Process -Force
irm https://christitus.com/win | iex
```
### Ultimate Performance Plan Not Working
## Runtime Issues
The Ultimate Performance power plan may not work on some laptops who do not fully support this power plan.
### 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.
## 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. then 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:
```powershell
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.
In these cases, the power plan may fail to apply, This is expected behavior on unsupported hardware.
+3 -1
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.
{{< image src="images/Title-Screen" alt="Winutil title screen" >}}
## 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:
```
+154 -13
View File
@@ -128,6 +128,154 @@ winutil/
- CheckBoxes for options
- 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
### Application Installation Flow
@@ -139,7 +287,7 @@ Get-WinUtilCheckBoxes → Retrieves selected apps
For each selected app:
Check if WinGet/Choco installed
Check if WinGet/Choco is installed
Install-WinUtilWinget/Choco (if needed)
@@ -185,7 +333,7 @@ Retrieve "OriginalState" from tweak definition
Invoke-WPFUndoTweak → Restore original values
Remove from applied tweaks log
Remove from the applied tweaks log
Update UI
```
@@ -232,13 +380,6 @@ Update UI
"Value": "0",
"OriginalValue": "1"
}
],
"ScheduledTask": [
{
"Name": "Microsoft\\Windows\\Autochk\\Proxy",
"State": "Disabled",
"OriginalState": "Enabled"
}
]
}
}
@@ -249,7 +390,6 @@ Update UI
- `Description`: What it does
- `category`: Essential/Advanced/Customize
- `registry`: Registry changes to make
- `ScheduledTask`: Scheduled tasks to modify
- `service`: Services to change
- `OriginalValue/State`: For undo functionality
@@ -377,7 +517,7 @@ $sync.form.Dispatcher.Invoke([action]{
```
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
@@ -402,7 +542,7 @@ $sync.form.Dispatcher.Invoke([action]{
```
2. Recompile: `.\Compile.ps1`
3. Tweak appears in Tweaks tab
3. Tweak appears in the Tweaks tab
### Adding a New Function
@@ -463,7 +603,7 @@ Outputs `winutil.ps1` in the root directory.
**Required**:
- PowerShell 5.1+
- .NET Framework 4.5+
- Windows 10 1809+
- Windows 11
**Optional (auto-installed)**:
- WinGet (Windows Package Manager)
@@ -514,6 +654,7 @@ Outputs `winutil.ps1` in the root directory.
- [Contributing Guide](../../contributing/) - How to contribute code
- [User Guide](../../userguide/) - End-user documentation
- [Win11 Creator Guide](../../userguide/win11creator/) - Building customized Windows 11 ISOs
- [FAQ](../../faq/) - Common questions
## Additional Resources
@@ -1,11 +1,11 @@
---
title: "Disable Legacy F8 Boot Recovery"
title: "Legacy F8 Boot Recovery - Disable"
description: ""
---
```json {filename="config/feature.json",linenos=inline,linenostart=100}
```json {filename="config/feature.json",linenos=inline,linenostart=110}
"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.",
"category": "Features",
"panel": "1",
@@ -1,11 +1,11 @@
---
title: "Enable Legacy F8 Boot Recovery"
title: "Legacy F8 Boot Recovery - Enable"
description: ""
---
```json {filename="config/feature.json",linenos=inline,linenostart=89}
```json {filename="config/feature.json",linenos=inline,linenostart=99}
"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.",
"category": "Features",
"panel": "1",
@@ -1,11 +1,11 @@
---
title: "Enable Daily Registry Backup Task 12.30am"
title: "Registry Backup (Daily Task 12:30am) - Enable"
description: ""
---
```json {filename="config/feature.json",linenos=inline,linenostart=72}
```json {filename="config/feature.json",linenos=inline,linenostart=82}
"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.",
"category": "Features",
"panel": "1",
@@ -1,11 +1,11 @@
---
title: "Windows Sandbox"
title: "Windows Sandbox - Enable"
description: ""
---
```json {filename="config/feature.json",linenos=inline,linenostart=111}
```json {filename="config/feature.json",linenos=inline,linenostart=121}
"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.",
"category": "Features",
"panel": "1",
+2 -2
View File
@@ -1,11 +1,11 @@
---
title: "All .Net Framework (2,3,4)"
title: ".NET Framework (Versions 2, 3, 4) - Enable"
description: ""
---
```json {filename="config/feature.json",linenos=inline,linenostart=2}
"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.",
"category": "Features",
"panel": "1",
+3 -3
View File
@@ -1,11 +1,11 @@
---
title: "HyperV Virtualization"
title: "Hyper-V - Enable"
description: ""
---
```json {filename="config/feature.json",linenos=inline,linenostart=14}
```json {filename="config/feature.json",linenos=inline,linenostart=24}
"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.",
"category": "Features",
"panel": "1",
@@ -1,11 +1,11 @@
---
title: "Legacy Media (WMP, DirectPlay)"
title: "Legacy Media Components (WMP, DirectPlay) - Enable"
description: ""
---
```json {filename="config/feature.json",linenos=inline,linenostart=27}
```json {filename="config/feature.json",linenos=inline,linenostart=37}
"WPFFeatureslegacymedia": {
"Content": "Legacy Media (WMP, DirectPlay)",
"Content": "Legacy Media Components (WMP, DirectPlay) - Enable",
"Description": "Enables legacy programs from previous versions of Windows.",
"category": "Features",
"panel": "1",
+3 -3
View File
@@ -1,11 +1,11 @@
---
title: "NFS - Network File System"
title: "Network File System (NFS) - Enable"
description: ""
---
```json {filename="config/feature.json",linenos=inline,linenostart=53}
```json {filename="config/feature.json",linenos=inline,linenostart=63}
"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.",
"category": "Features",
"panel": "1",
+3 -3
View File
@@ -1,11 +1,11 @@
---
title: "Windows Subsystem for Linux"
title: "Windows Subsystem for Linux (WSL) - Enable"
description: ""
---
```json {filename="config/feature.json",linenos=inline,linenostart=41}
```json {filename="config/feature.json",linenos=inline,linenostart=51}
"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.",
"category": "Features",
"panel": "1",
+1 -1
View File
@@ -1,5 +1,5 @@
---
title: "Set Up Autologin"
title: "AutoLogon - Run"
description: ""
---
+1 -1
View File
@@ -1,5 +1,5 @@
---
title: "System Corruption Scan"
title: "System Corruption Scan - Run"
description: ""
---
@@ -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 "================================="
}
```
+1 -1
View File
@@ -1,5 +1,5 @@
---
title: "Reset Network"
title: "Network - Reset"
description: ""
---
+1 -1
View File
@@ -1,5 +1,5 @@
---
title: "Reset Windows Update"
title: "Windows Update - Reset"
description: ""
---
+7 -7
View File
@@ -1,5 +1,5 @@
---
title: "WinGet Reinstall"
title: "WinGet - Reinstall"
description: ""
---
@@ -9,20 +9,20 @@ function Invoke-WPFFixesWinget {
<#
.SYNOPSIS
Fixes Winget by running choco install winget
Fixes WinGet by running `choco install winget`
.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
try {
Set-WinUtilTaskbaritem -state "Indeterminate" -overlay "logo"
Write-Host "==> Starting Winget Repair"
Install-WinUtilWinget -Force
Write-Host "==> Starting WinGet Repair"
Install-WinUtilWinget
} catch {
Write-Error "Failed to install winget: $_"
Write-Error "Failed to install WinGet: $_"
Set-WinUtilTaskbaritem -state "Error" -overlay "warning"
} finally {
Write-Host "==> Finished Winget Repair"
Write-Host "==> Finished WinGet Repair"
Set-WinUtilTaskbaritem -state "None" -overlay "checkmark"
}
@@ -3,7 +3,7 @@ title: "Computer Management"
description: ""
---
```json {filename="config/feature.json",linenos=inline,linenostart=186}
```json {filename="config/feature.json",linenos=inline,linenostart=196}
"WPFPanelComputer": {
"Content": "Computer Management",
"category": "Legacy Windows Panels",
@@ -3,7 +3,7 @@ title: "Control Panel"
description: ""
---
```json {filename="config/feature.json",linenos=inline,linenostart=175}
```json {filename="config/feature.json",linenos=inline,linenostart=185}
"WPFPanelControl": {
"Content": "Control Panel",
"category": "Legacy Windows Panels",
@@ -3,7 +3,7 @@ title: "Network Connections"
description: ""
---
```json {filename="config/feature.json",linenos=inline,linenostart=197}
```json {filename="config/feature.json",linenos=inline,linenostart=207}
"WPFPanelNetwork": {
"Content": "Network Connections",
"category": "Legacy Windows Panels",
@@ -3,7 +3,7 @@ title: "Power Panel"
description: ""
---
```json {filename="config/feature.json",linenos=inline,linenostart=208}
```json {filename="config/feature.json",linenos=inline,linenostart=218}
"WPFPanelPower": {
"Content": "Power Panel",
"category": "Legacy Windows Panels",
@@ -3,7 +3,7 @@ title: "Printer Panel"
description: ""
---
```json {filename="config/feature.json",linenos=inline,linenostart=219}
```json {filename="config/feature.json",linenos=inline,linenostart=229}
"WPFPanelPrinter": {
"Content": "Printer Panel",
"category": "Legacy Windows Panels",
@@ -3,7 +3,7 @@ title: "Region"
description: ""
---
```json {filename="config/feature.json",linenos=inline,linenostart=230}
```json {filename="config/feature.json",linenos=inline,linenostart=240}
"WPFPanelRegion": {
"Content": "Region",
"category": "Legacy Windows Panels",
@@ -3,7 +3,7 @@ title: "Windows Restore"
description: ""
---
```json {filename="config/feature.json",linenos=inline,linenostart=241}
```json {filename="config/feature.json",linenos=inline,linenostart=251}
"WPFPanelRestore": {
"Content": "Windows Restore",
"category": "Legacy Windows Panels",
@@ -3,7 +3,7 @@ title: "Sound Settings"
description: ""
---
```json {filename="config/feature.json",linenos=inline,linenostart=252}
```json {filename="config/feature.json",linenos=inline,linenostart=262}
"WPFPanelSound": {
"Content": "Sound Settings",
"category": "Legacy Windows Panels",
@@ -3,7 +3,7 @@ title: "System Properties"
description: ""
---
```json {filename="config/feature.json",linenos=inline,linenostart=263}
```json {filename="config/feature.json",linenos=inline,linenostart=273}
"WPFPanelSystem": {
"Content": "System Properties",
"category": "Legacy Windows Panels",
@@ -3,7 +3,7 @@ title: "Time and Date"
description: ""
---
```json {filename="config/feature.json",linenos=inline,linenostart=274}
```json {filename="config/feature.json",linenos=inline,linenostart=284}
"WPFPanelTimedate": {
"Content": "Time and Date",
"category": "Legacy Windows Panels",
@@ -1,15 +1,22 @@
---
title: "Install CTT PowerShell Profile"
title: "CTT PowerShell Profile - Install"
description: ""
---
```powershell {filename="functions/private/Invoke-WinUtilInstallPSProfile.ps1",linenos=inline,linenostart=1}
function Invoke-WinUtilInstallPSProfile {
if (Test-Path $Profile) {
Rename-Item $Profile -NewName ($Profile + '.bak')
if (-not (Get-Command wt)) {
Write-Host "Windows Terminal not found installing..."
Install-WinUtilWinget
winget install Microsoft.WindowsTerminal --source winget --silent
}
Start-Process pwsh -ArgumentList '-Command "irm https://github.com/ChrisTitusTech/powershell-profile/raw/main/setup.ps1 | iex"'
if (-not (Get-Command pwsh)) {
Write-Host "Powershell 7 not found installing..."
Install-WinUtilWinget
winget install Microsoft.PowerShell --source winget --silent
}
wt new-tab pwsh -NoExit -Command "irm https://github.com/ChrisTitusTech/powershell-profile/raw/main/setup.ps1 | iex"
}
```
@@ -1,18 +1,17 @@
---
title: "Uninstall CTT PowerShell Profile"
title: "CTT PowerShell Profile - Remove"
description: ""
---
```powershell {filename="functions/private/Invoke-WinUtilUninstallPSProfile.ps1",linenos=inline,linenostart=1}
function Invoke-WinUtilUninstallPSProfile {
if (Test-Path ($Profile + '.bak')) {
Remove-Item $Profile
Rename-Item ($Profile + '.bak') -NewName $Profile
}
else {
Remove-Item $Profile
if (Test-Path ($Profile + ".bak")) {
Move-Item -Path ($Profile + ".bak") -Destination $Profile
} else {
Remove-Item -Path $Profile
}
Write-Host "Successfully uninstalled CTT Powershell Profile" -ForegroundColor Green
Write-Host "Successfully uninstalled CTT PowerShell Profile." -ForegroundColor Green
}
```
@@ -1,5 +1,5 @@
---
title: "Enable OpenSSH Server"
title: "OpenSSH Server - Enable"
description: ""
---
@@ -0,0 +1,29 @@
---
title: "System Tray Battery Percentage"
description: ""
---
```json {filename="config/tweaks.json",linenos=inline,linenostart=1268}
"WPFToggleBatteryPercentage": {
"Content": "System Tray Battery Percentage",
"Description": "If enabled, Shows numeric battery percentage next to the battery icon in the system tray.",
"category": "Customize Preferences",
"panel": "2",
"Type": "Toggle",
"registry": [
{
"Path": "HKCU:\\Software\\Microsoft\\Windows\\CurrentVersion\\Explorer\\Advanced",
"Name": "IsBatteryPercentageEnabled",
"Value": "1",
"Type": "DWord",
"OriginalValue": "<RemoveEntry>",
"DefaultState": "false"
}
],
```
## Registry Changes
Applications and System Components store and retrieve configuration data to modify Windows settings, so we can use the registry to change many settings in one place.
You can find information about the registry on [Wikipedia](https://en.wikipedia.org/wiki/Windows_Registry) and [Microsoft's Website](https://learn.microsoft.com/en-us/windows/win32/sysinfo/registry).
@@ -1,11 +1,11 @@
---
title: "Bing Search in Start Menu"
title: "Start Menu Bing Search"
description: ""
---
```json {filename="config/tweaks.json",linenos=inline,linenostart=2185}
```json {filename="config/tweaks.json",linenos=inline,linenostart=1603}
"WPFToggleBingSearch": {
"Content": "Bing Search in Start Menu",
"Content": "Start Menu Bing Search",
"Description": "If enabled, Bing web search results will be included in your Start Menu search.",
"category": "Customize Preferences",
"panel": "2",
@@ -24,6 +24,6 @@ description: ""
## Registry Changes
Applications and System Components store and retrieve configuration data to modify windows settings, so we can use the registry to change many settings in one place.
Applications and System Components store and retrieve configuration data to modify Windows settings, so we can use the registry to change many settings in one place.
You can find information about the registry on [Wikipedia](https://www.wikiwand.com/en/Windows_Registry) and [Microsoft's Website](https://learn.microsoft.com/en-us/windows/win32/sysinfo/registry).
You can find information about the registry on [Wikipedia](https://en.wikipedia.org/wiki/Windows_Registry) and [Microsoft's Website](https://learn.microsoft.com/en-us/windows/win32/sysinfo/registry).
@@ -3,7 +3,7 @@ title: "Dark Theme for Windows"
description: ""
---
```json {filename="config/tweaks.json",linenos=inline,linenostart=2143}
```json {filename="config/tweaks.json",linenos=inline,linenostart=1286}
"WPFToggleDarkMode": {
"Content": "Dark Theme for Windows",
"Description": "Enable/Disable Dark Mode.",
@@ -48,6 +48,6 @@ description: ""
## Registry Changes
Applications and System Components store and retrieve configuration data to modify windows settings, so we can use the registry to change many settings in one place.
Applications and System Components store and retrieve configuration data to modify Windows settings, so we can use the registry to change many settings in one place.
You can find information about the registry on [Wikipedia](https://www.wikiwand.com/en/Windows_Registry) and [Microsoft's Website](https://learn.microsoft.com/en-us/windows/win32/sysinfo/registry).
You can find information about the registry on [Wikipedia](https://en.wikipedia.org/wiki/Windows_Registry) and [Microsoft's Website](https://learn.microsoft.com/en-us/windows/win32/sysinfo/registry).
@@ -1,11 +1,11 @@
---
title: "Detailed BSoD"
title: "BSoD Verbose Mode"
description: ""
---
```json {filename="config/tweaks.json",linenos=inline,linenostart=2559}
```json {filename="config/tweaks.json",linenos=inline,linenostart=1242}
"WPFToggleDetailedBSoD": {
"Content": "Detailed BSoD",
"Content": "BSoD Verbose Mode",
"Description": "If enabled, you will see a detailed Blue Screen of Death (BSOD) with more information.",
"category": "Customize Preferences",
"panel": "2",
@@ -32,6 +32,6 @@ description: ""
## Registry Changes
Applications and System Components store and retrieve configuration data to modify windows settings, so we can use the registry to change many settings in one place.
Applications and System Components store and retrieve configuration data to modify Windows settings, so we can use the registry to change many settings in one place.
You can find information about the registry on [Wikipedia](https://www.wikiwand.com/en/Windows_Registry) and [Microsoft's Website](https://learn.microsoft.com/en-us/windows/win32/sysinfo/registry).
You can find information about the registry on [Wikipedia](https://en.wikipedia.org/wiki/Windows_Registry) and [Microsoft's Website](https://learn.microsoft.com/en-us/windows/win32/sysinfo/registry).
@@ -3,7 +3,7 @@ title: "Cross-Device Resume"
description: ""
---
```json {filename="config/tweaks.json",linenos=inline,linenostart=2689}
```json {filename="config/tweaks.json",linenos=inline,linenostart=1224}
"WPFToggleDisableCrossDeviceResume": {
"Content": "Cross-Device Resume",
"Description": "This tweak controls the Resume function in Windows 11 24H2 and later, which allows you to resume an activity from a mobile device and vice-versa.",
@@ -24,6 +24,6 @@ description: ""
## Registry Changes
Applications and System Components store and retrieve configuration data to modify windows settings, so we can use the registry to change many settings in one place.
Applications and System Components store and retrieve configuration data to modify Windows settings, so we can use the registry to change many settings in one place.
You can find information about the registry on [Wikipedia](https://www.wikiwand.com/en/Windows_Registry) and [Microsoft's Website](https://learn.microsoft.com/en-us/windows/win32/sysinfo/registry).
You can find information about the registry on [Wikipedia](https://en.wikipedia.org/wiki/Windows_Registry) and [Microsoft's Website](https://learn.microsoft.com/en-us/windows/win32/sysinfo/registry).
@@ -0,0 +1,37 @@
---
title: "Game Mode"
description: ""
---
```json {filename="config/tweaks.json",linenos=inline,linenostart=1765}
"WPFToggleGameMode": {
"Content": "Game Mode",
"Description": "If enabled, Windows prioritizes gaming performance by allocating system resources. Disable for audio/video production to prevent interference.",
"category": "Customize Preferences",
"panel": "2",
"Type": "Toggle",
"registry": [
{
"Path": "HKCU:\\Software\\Microsoft\\GameBar",
"Name": "AllowAutoGameMode",
"Value": "1",
"Type": "DWord",
"OriginalValue": "0",
"DefaultState": "true"
},
{
"Path": "HKCU:\\Software\\Microsoft\\GameBar",
"Name": "AutoGameModeEnabled",
"Value": "1",
"Type": "DWord",
"OriginalValue": "0",
"DefaultState": "true"
}
],
```
## Registry Changes
Applications and System Components store and retrieve configuration data to modify Windows settings, so we can use the registry to change many settings in one place.
You can find information about the registry on [Wikipedia](https://en.wikipedia.org/wiki/Windows_Registry) and [Microsoft's Website](https://learn.microsoft.com/en-us/windows/win32/sysinfo/registry).
@@ -1,11 +1,11 @@
---
title: "Show Hidden Files"
title: "File Explorer Hidden Files"
description: ""
---
```json {filename="config/tweaks.json",linenos=inline,linenostart=2439}
```json {filename="config/tweaks.json",linenos=inline,linenostart=1356}
"WPFToggleHiddenFiles": {
"Content": "Show Hidden Files",
"Content": "File Explorer Hidden Files",
"Description": "If enabled, Hidden Files will be shown.",
"category": "Customize Preferences",
"panel": "2",
@@ -34,6 +34,6 @@ description: ""
## Registry Changes
Applications and System Components store and retrieve configuration data to modify windows settings, so we can use the registry to change many settings in one place.
Applications and System Components store and retrieve configuration data to modify Windows settings, so we can use the registry to change many settings in one place.
You can find information about the registry on [Wikipedia](https://www.wikiwand.com/en/Windows_Registry) and [Microsoft's Website](https://learn.microsoft.com/en-us/windows/win32/sysinfo/registry).
You can find information about the registry on [Wikipedia](https://en.wikipedia.org/wiki/Windows_Registry) and [Microsoft's Website](https://learn.microsoft.com/en-us/windows/win32/sysinfo/registry).
@@ -1,12 +1,12 @@
---
title: "Remove Settings Home Page"
title: "Settings Home Page"
description: ""
---
```json {filename="config/tweaks.json",linenos=inline,linenostart=2309}
```json {filename="config/tweaks.json",linenos=inline,linenostart=1585}
"WPFToggleHideSettingsHome": {
"Content": "Remove Settings Home Page",
"Description": "Removes the Home Page in the Windows Settings app.",
"Content": "Settings Home Page",
"Description": "Enable or disable the Home Page in the Windows Settings app.",
"category": "Customize Preferences",
"panel": "2",
"Type": "Toggle",
@@ -14,16 +14,16 @@ description: ""
{
"Path": "HKCU:\\Software\\Microsoft\\Windows\\CurrentVersion\\Policies\\Explorer",
"Name": "SettingsPageVisibility",
"Value": "hide:home",
"Value": "show:home",
"Type": "String",
"OriginalValue": "show:home",
"DefaultState": "false"
"OriginalValue": "hide:home",
"DefaultState": "true"
}
],
```
## Registry Changes
Applications and System Components store and retrieve configuration data to modify windows settings, so we can use the registry to change many settings in one place.
Applications and System Components store and retrieve configuration data to modify Windows settings, so we can use the registry to change many settings in one place.
You can find information about the registry on [Wikipedia](https://www.wikiwand.com/en/Windows_Registry) and [Microsoft's Website](https://learn.microsoft.com/en-us/windows/win32/sysinfo/registry).
You can find information about the registry on [Wikipedia](https://en.wikipedia.org/wiki/Windows_Registry) and [Microsoft's Website](https://learn.microsoft.com/en-us/windows/win32/sysinfo/registry).
@@ -0,0 +1,29 @@
---
title: "Logon Screen Acrylic Blur"
description: ""
---
```json {filename="config/tweaks.json",linenos=inline,linenostart=1621}
"WPFToggleLoginBlur": {
"Content": "Logon Screen Acrylic Blur",
"Description": "If disabled, the acrylic blur effect will be removed on the Windows 10/11 login screen background.",
"category": "Customize Preferences",
"panel": "2",
"Type": "Toggle",
"registry": [
{
"Path": "HKLM:\\SOFTWARE\\Policies\\Microsoft\\Windows\\System",
"Name": "DisableAcrylicBackgroundOnLogon",
"Value": "0",
"Type": "DWord",
"OriginalValue": "1",
"DefaultState": "true"
}
],
```
## Registry Changes
Applications and System Components store and retrieve configuration data to modify Windows settings, so we can use the registry to change many settings in one place.
You can find information about the registry on [Wikipedia](https://en.wikipedia.org/wiki/Windows_Registry) and [Microsoft's Website](https://learn.microsoft.com/en-us/windows/win32/sysinfo/registry).
@@ -0,0 +1,29 @@
---
title: "Enable Long Paths"
description: ""
---
```json {filename="config/tweaks.json",linenos=inline,linenostart=1791}
"WPFToggleLongPaths": {
"Content": "Enable Long Paths",
"Description": "Enables support for file paths longer than 260 characters.",
"category": "Customize Preferences",
"panel": "2",
"Type": "Toggle",
"registry": [
{
"Path": "HKLM:\\SYSTEM\\CurrentControlSet\\Control\\FileSystem",
"Name": "LongPathsEnabled",
"Value": "1",
"Type": "DWord",
"OriginalValue": "0",
"DefaultState": "false"
}
],
```
## Registry Changes
Applications and System Components store and retrieve configuration data to modify Windows settings, so we can use the registry to change many settings in one place.
You can find information about the registry on [Wikipedia](https://en.wikipedia.org/wiki/Windows_Registry) and [Microsoft's Website](https://learn.microsoft.com/en-us/windows/win32/sysinfo/registry).
@@ -3,7 +3,7 @@ title: "Mouse Acceleration"
description: ""
---
```json {filename="config/tweaks.json",linenos=inline,linenostart=2327}
```json {filename="config/tweaks.json",linenos=inline,linenostart=1489}
"WPFToggleMouseAcceleration": {
"Content": "Mouse Acceleration",
"Description": "If enabled, the Cursor movement is affected by the speed of your physical mouse movements.",
@@ -40,6 +40,6 @@ description: ""
## Registry Changes
Applications and System Components store and retrieve configuration data to modify windows settings, so we can use the registry to change many settings in one place.
Applications and System Components store and retrieve configuration data to modify Windows settings, so we can use the registry to change many settings in one place.
You can find information about the registry on [Wikipedia](https://www.wikiwand.com/en/Windows_Registry) and [Microsoft's Website](https://learn.microsoft.com/en-us/windows/win32/sysinfo/registry).
You can find information about the registry on [Wikipedia](https://en.wikipedia.org/wiki/Windows_Registry) and [Microsoft's Website](https://learn.microsoft.com/en-us/windows/win32/sysinfo/registry).
@@ -1,12 +1,12 @@
---
title: "Disable Multiplane Overlay"
title: "Multiplane Overlay"
description: ""
---
```json {filename="config/tweaks.json",linenos=inline,linenostart=2421}
```json {filename="config/tweaks.json",linenos=inline,linenostart=1463}
"WPFToggleMultiplaneOverlay": {
"Content": "Disable Multiplane Overlay",
"Description": "Disable the Multiplane Overlay which can sometimes cause issues with Graphics Cards.",
"Content": "Multiplane Overlay",
"Description": "Enable or disable the Multiplane Overlay, which can sometimes cause issues with graphics cards.",
"category": "Customize Preferences",
"panel": "2",
"Type": "Toggle",
@@ -14,9 +14,17 @@ description: ""
{
"Path": "HKLM:\\SOFTWARE\\Microsoft\\Windows\\Dwm",
"Name": "OverlayTestMode",
"Value": "5",
"Value": "0",
"Type": "DWord",
"OriginalValue": "<RemoveEntry>",
"OriginalValue": "5",
"DefaultState": "true"
},
{
"Path": "HKLM:\\SYSTEM\\CurrentControlSet\\Control\\GraphicsDrivers",
"Name": "DisableOverlays",
"Value": "1",
"Type": "DWord",
"OriginalValue": "0",
"DefaultState": "false"
}
],
@@ -24,6 +32,6 @@ description: ""
## Registry Changes
Applications and System Components store and retrieve configuration data to modify windows settings, so we can use the registry to change many settings in one place.
Applications and System Components store and retrieve configuration data to modify Windows settings, so we can use the registry to change many settings in one place.
You can find information about the registry on [Wikipedia](https://www.wikiwand.com/en/Windows_Registry) and [Microsoft's Website](https://learn.microsoft.com/en-us/windows/win32/sysinfo/registry).
You can find information about the registry on [Wikipedia](https://en.wikipedia.org/wiki/Windows_Registry) and [Microsoft's Website](https://learn.microsoft.com/en-us/windows/win32/sysinfo/registry).
@@ -1,11 +1,11 @@
---
title: "New Outlook"
title: "Microsoft Outlook New Version"
description: ""
---
```json {filename="config/tweaks.json",linenos=inline,linenostart=2379}
```json {filename="config/tweaks.json",linenos=inline,linenostart=1402}
"WPFToggleNewOutlook": {
"Content": "New Outlook",
"Content": "Microsoft Outlook New Version",
"Description": "If disabled, it removes the new Outlook toggle, disables the new Outlook migration, and ensures the classic Outlook application is used.",
"category": "Customize Preferences",
"panel": "2",
@@ -48,6 +48,6 @@ description: ""
## Registry Changes
Applications and System Components store and retrieve configuration data to modify windows settings, so we can use the registry to change many settings in one place.
Applications and System Components store and retrieve configuration data to modify Windows settings, so we can use the registry to change many settings in one place.
You can find information about the registry on [Wikipedia](https://www.wikiwand.com/en/Windows_Registry) and [Microsoft's Website](https://learn.microsoft.com/en-us/windows/win32/sysinfo/registry).
You can find information about the registry on [Wikipedia](https://en.wikipedia.org/wiki/Windows_Registry) and [Microsoft's Website](https://learn.microsoft.com/en-us/windows/win32/sysinfo/registry).
@@ -3,7 +3,7 @@ title: "Num Lock on Startup"
description: ""
---
```json {filename="config/tweaks.json",linenos=inline,linenostart=2221}
```json {filename="config/tweaks.json",linenos=inline,linenostart=1523}
"WPFToggleNumLock": {
"Content": "Num Lock on Startup",
"Description": "Toggle the Num Lock key state when your computer starts.",
@@ -15,7 +15,7 @@ description: ""
"Path": "HKU:\\.Default\\Control Panel\\Keyboard",
"Name": "InitialKeyboardIndicators",
"Value": "2",
"Type": "DWord",
"Type": "String",
"OriginalValue": "0",
"DefaultState": "false"
},
@@ -23,7 +23,7 @@ description: ""
"Path": "HKCU:\\Control Panel\\Keyboard",
"Name": "InitialKeyboardIndicators",
"Value": "2",
"Type": "DWord",
"Type": "String",
"OriginalValue": "0",
"DefaultState": "false"
}
@@ -32,6 +32,6 @@ description: ""
## Registry Changes
Applications and System Components store and retrieve configuration data to modify windows settings, so we can use the registry to change many settings in one place.
Applications and System Components store and retrieve configuration data to modify Windows settings, so we can use the registry to change many settings in one place.
You can find information about the registry on [Wikipedia](https://www.wikiwand.com/en/Windows_Registry) and [Microsoft's Website](https://learn.microsoft.com/en-us/windows/win32/sysinfo/registry).
You can find information about the registry on [Wikipedia](https://en.wikipedia.org/wiki/Windows_Registry) and [Microsoft's Website](https://learn.microsoft.com/en-us/windows/win32/sysinfo/registry).
@@ -3,7 +3,7 @@ title: "S3 Sleep"
description: ""
---
```json {filename="config/tweaks.json",linenos=inline,linenostart=2585}
```json {filename="config/tweaks.json",linenos=inline,linenostart=1567}
"WPFToggleS3Sleep": {
"Content": "S3 Sleep",
"Description": "Toggles between Modern Standby and S3 Sleep.",
@@ -24,6 +24,6 @@ description: ""
## Registry Changes
Applications and System Components store and retrieve configuration data to modify windows settings, so we can use the registry to change many settings in one place.
Applications and System Components store and retrieve configuration data to modify Windows settings, so we can use the registry to change many settings in one place.
You can find information about the registry on [Wikipedia](https://www.wikiwand.com/en/Windows_Registry) and [Microsoft's Website](https://learn.microsoft.com/en-us/windows/win32/sysinfo/registry).
You can find information about the registry on [Wikipedia](https://en.wikipedia.org/wiki/Windows_Registry) and [Microsoft's Website](https://learn.microsoft.com/en-us/windows/win32/sysinfo/registry).
@@ -0,0 +1,11 @@
---
title: "Scrollbars Always Visible"
description: ""
---
## Registry Changes
Applications and System Components store and retrieve configuration data to modify Windows settings, so we can use the registry to change many settings in one place.
You can find information about the registry on [Wikipedia](https://en.wikipedia.org/wiki/Windows_Registry) and [Microsoft's Website](https://learn.microsoft.com/en-us/windows/win32/sysinfo/registry).
@@ -1,11 +1,11 @@
---
title: "Show File Extensions"
title: "File Explorer File Extensions"
description: ""
---
```json {filename="config/tweaks.json",linenos=inline,linenostart=2467}
```json {filename="config/tweaks.json",linenos=inline,linenostart=1328}
"WPFToggleShowExt": {
"Content": "Show File Extensions",
"Content": "File Explorer File Extensions",
"Description": "If enabled, File extensions (e.g., .txt, .jpg) are visible.",
"category": "Customize Preferences",
"panel": "2",
@@ -34,6 +34,6 @@ description: ""
## Registry Changes
Applications and System Components store and retrieve configuration data to modify windows settings, so we can use the registry to change many settings in one place.
Applications and System Components store and retrieve configuration data to modify Windows settings, so we can use the registry to change many settings in one place.
You can find information about the registry on [Wikipedia](https://www.wikiwand.com/en/Windows_Registry) and [Microsoft's Website](https://learn.microsoft.com/en-us/windows/win32/sysinfo/registry).
You can find information about the registry on [Wikipedia](https://en.wikipedia.org/wiki/Windows_Registry) and [Microsoft's Website](https://learn.microsoft.com/en-us/windows/win32/sysinfo/registry).
@@ -1,12 +1,12 @@
---
title: "Modern Standby fix"
title: "S0 Sleep Network Connectivity"
description: ""
---
```json {filename="config/tweaks.json",linenos=inline,linenostart=2203}
```json {filename="config/tweaks.json",linenos=inline,linenostart=1549}
"WPFToggleStandbyFix": {
"Content": "Modern Standby fix",
"Description": "Disable network connection during S0 sleep. If network connectivity is turned on during S0 sleep it could cause overheating on modern laptops",
"Content": "S0 Sleep Network Connectivity",
"Description": "Enable or disable network connectivity during S0 Sleep.",
"category": "Customize Preferences",
"panel": "2",
"Type": "Toggle",
@@ -14,9 +14,9 @@ description: ""
{
"Path": "HKCU:\\SOFTWARE\\Policies\\Microsoft\\Power\\PowerSettings\\f15576e8-98b7-4186-b944-eafa664402d9",
"Name": "ACSettingIndex",
"Value": "0",
"Value": "1",
"Type": "DWord",
"OriginalValue": "<RemoveEntry>",
"OriginalValue": "0",
"DefaultState": "true"
}
],
@@ -24,6 +24,6 @@ description: ""
## Registry Changes
Applications and System Components store and retrieve configuration data to modify windows settings, so we can use the registry to change many settings in one place.
Applications and System Components store and retrieve configuration data to modify Windows settings, so we can use the registry to change many settings in one place.
You can find information about the registry on [Wikipedia](https://www.wikiwand.com/en/Windows_Registry) and [Microsoft's Website](https://learn.microsoft.com/en-us/windows/win32/sysinfo/registry).
You can find information about the registry on [Wikipedia](https://en.wikipedia.org/wiki/Windows_Registry) and [Microsoft's Website](https://learn.microsoft.com/en-us/windows/win32/sysinfo/registry).
@@ -1,11 +1,11 @@
---
title: "Recommendations in Start Menu"
title: "Start Menu Recommendations"
description: ""
---
```json {filename="config/tweaks.json",linenos=inline,linenostart=2265}
```json {filename="config/tweaks.json",linenos=inline,linenostart=1639}
"WPFToggleStartMenuRecommendations": {
"Content": "Recommendations in Start Menu",
"Content": "Start Menu Recommendations",
"Description": "If disabled, then you will not see recommendations in the Start Menu. WARNING: This will also disable Windows Spotlight on your Lock Screen as a side effect.",
"category": "Customize Preferences",
"panel": "2",
@@ -50,6 +50,6 @@ description: ""
## Registry Changes
Applications and System Components store and retrieve configuration data to modify windows settings, so we can use the registry to change many settings in one place.
Applications and System Components store and retrieve configuration data to modify Windows settings, so we can use the registry to change many settings in one place.
You can find information about the registry on [Wikipedia](https://www.wikiwand.com/en/Windows_Registry) and [Microsoft's Website](https://learn.microsoft.com/en-us/windows/win32/sysinfo/registry).
You can find information about the registry on [Wikipedia](https://en.wikipedia.org/wiki/Windows_Registry) and [Microsoft's Website](https://learn.microsoft.com/en-us/windows/win32/sysinfo/registry).
@@ -3,7 +3,7 @@ title: "Sticky Keys"
description: ""
---
```json {filename="config/tweaks.json",linenos=inline,linenostart=2361}
```json {filename="config/tweaks.json",linenos=inline,linenostart=1683}
"WPFToggleStickyKeys": {
"Content": "Sticky Keys",
"Description": "If enabled, Sticky Keys is activated. Sticky keys is an accessibility feature of some graphical user interfaces which assists users who have physical disabilities or help users reduce repetitive strain injury.",
@@ -24,6 +24,6 @@ description: ""
## Registry Changes
Applications and System Components store and retrieve configuration data to modify windows settings, so we can use the registry to change many settings in one place.
Applications and System Components store and retrieve configuration data to modify Windows settings, so we can use the registry to change many settings in one place.
You can find information about the registry on [Wikipedia](https://www.wikiwand.com/en/Windows_Registry) and [Microsoft's Website](https://learn.microsoft.com/en-us/windows/win32/sysinfo/registry).
You can find information about the registry on [Wikipedia](https://en.wikipedia.org/wiki/Windows_Registry) and [Microsoft's Website](https://learn.microsoft.com/en-us/windows/win32/sysinfo/registry).

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