Compare commits

...

173 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
215 changed files with 3254 additions and 7425 deletions
+118 -86
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
---
## Basic Git Workflow
### 1. Fork the Repository
Go to the ChrisTitusTech/winutil repository on GitHub and click the Fork button in the top right corner.
<img width="171" height="50" alt="{650A4723-F38A-44A4-9820-D232BC87C8A0}" src="https://github.com/user-attachments/assets/a214f27c-2fee-444a-920f-d87b14f5896f" />
---
### 2. Clone Your Fork
```powershell
git clone https://github.com/YOUR_USERNAME/winutil.git
cd winutil
```
!!! bug "Keep in mind"
---
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!
### 3. Create a Branch
## Issues
Never work directly on `main`.
* 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.
Create a branch related to your change:
## 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.
* 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 checkout -b feature-name
```
!!! info
This is a diagram to guide you through the process. It may vary depending on the type of change you're making.
Example:
### 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.
```powershell
git checkout -b add-firefox-tweak
```
![Fork Image](/docs/assets/images/Fork-Button-Dark.png#gh-dark-mode-only)
---
![Fork Image](/docs/assets/images/Fork-Button-Light.png#only-light#gh-light-mode-only)
### 4. Edit the Code
### Clone the Fork
!!! tip
Open the project in your preferred text editor and make your changes.
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.
Keep changes small and focused.
* 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.
---
* Now you can modify WinUtil to your liking using your preferred text editor.
### 5. Test Your Changes
Open Pwsh (Not Powershell) as Administrator.
### Testing your changes
Go to the project folder:
* To test to see if your changes work as intended run following commands in a powershell terminal as admin:
```powershell
cd path\to\winutil
```
* 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`
Run:
![Compile](/docs/assets/images/Complie.png)
```powershell
.\Compile.ps1 -Run
```
* 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.
Verify:
### Committing the changes
* Before committing your changes, please discard changes made to the `winutil.ps1` file, like the following:
- WinUtil launches correctly
- Your feature works
- Nothing else breaks
![Push Commit Image](/docs/assets/images/Discard-GHD.png)
If something fails, fix it before committing.
* Now, commit your changes once you are happy with the result.
---
![Commit Image](/docs/assets/images/Commit-GHD.png)
### 6. Review Your Changes
* Push the changes to upload them to your fork on github.com.
Check what changed:
![Push Commit Image](/docs/assets/images/Push-Commit.png)
```powershell
git status
```
### 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.
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.
+17 -1
View File
@@ -9,6 +9,15 @@ body:
- 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: "I have read the known issues"
description: "You [better do](https://winutil.christitus.com/knownissues/), cause your issue can be already there"
options:
- label: Yes, I did
required: true
- type: dropdown
id: affected_part
attributes:
@@ -29,8 +38,15 @@ body:
validations:
required: true
- type: textarea
id: tweaks_applied
attributes:
label: List the tweaks you applied before the issue occurred.
validations:
required: false
- type: textarea
id: error_output
attributes:
label: Paste the full error output (if available) or Screenshot.
label: Paste the full error output (if available) or Screenshot or Video.
placeholder: "Include any relevant logs or error messages."
+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
+3 -3
View File
@@ -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
+27 -121
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,
[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'
)
$msg = "Pre-req: Code Formatting"
Invoke-Preprocessing -WorkingDir "$workingdir" -ExcludedFiles $excludedFiles -ProgressStatusMessage $msg
# Create the script in memory.
Update-Progress "Pre-req: Allocating Memory" 0
$script_content = [System.Collections.Generic.List[string]]::new()
$script = [System.Collections.Generic.List[string]]::new()
Update-Progress "Adding: Version" 10
$script_content.Add($(Get-Content "scripts\start.ps1").replace('#{replaceme}',"$(Get-Date -Format yy.MM.dd)"))
$script.Add(
((Get-Content -Path 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
$script.Add((Get-ChildItem -Path functions -Recurse -File | Get-Content))
Get-ChildItem config | ForEach-Object {
$obj = Get-Content -Path $_.FullName | ConvertFrom-Json
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 🍻.
+294 -2040
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"
]
}
+5 -8
View File
@@ -57,8 +57,7 @@
"ScrollBarBackgroundColor": "#4A4D52",
"ScrollBarHoverColor": "#5A5D62",
"ScrollBarDraggingColor": "#6A6D72",
"ProgressBarForegroundColor": "#2e77ff",
"ProgressBarForegroundColor": "#2E77FF",
"ProgressBarBackgroundColor": "Transparent",
"ProgressBarTextColor": "#232629",
"ButtonInstallBackgroundColor": "#F7F7F7",
@@ -76,12 +75,11 @@
"ButtonBackgroundMouseoverColor": "#C2C2C2",
"ButtonBackgroundSelectedColor": "#F0F0F0",
"ButtonForegroundColor": "#232629",
"ToggleButtonOnColor": "#2e77ff",
"ToggleButtonOnColor": "#2E77FF",
"ToggleButtonOffColor": "#707070",
"ToolTipBackgroundColor": "#F7F7F7",
"BorderColor": "#232629",
"BorderOpacity": "0.2"
},
"Dark": {
"AppInstallUnselectedColor": "#232629",
@@ -90,16 +88,15 @@
"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",
+620 -1454
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

+120 -82
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
---
## Basic Git Workflow
### 1. Fork the Repository
Go to the ChrisTitusTech/winutil repository on GitHub and click the Fork button in the top right corner.
<img width="171" height="50" alt="{650A4723-F38A-44A4-9820-D232BC87C8A0}" src="https://github.com/user-attachments/assets/a214f27c-2fee-444a-920f-d87b14f5896f" />
---
### 2. Clone Your Fork
```bash
git clone https://github.com/YOUR_USERNAME/winutil.git
cd winutil
```
> [!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!
---
## Issues
### 3. Create a Branch
* 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.
Never work directly on `main`.
## Contribute Code
Create a branch related to your change:
* 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.
> [!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 checkout -b feature-name
```
> [!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.
Example:
{{< image src="images/Fork-Button" alt="Fork Image" >}}
```bash
git checkout -b add-firefox-tweak
```
### Clone the Fork
---
> [!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.
### 4. Edit the Code
* 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.
Open the project in your preferred text editor and make your changes.
* Now you can modify Winutil to your liking using your preferred text editor.
Keep changes small and focused.
---
### Testing your changes
### 5. Test Your Changes
* To test to see if your changes work as intended run following commands in a powershell terminal as admin:
Open PowerShell as Administrator.
* 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`
Go to the project folder:
{{< image src="images/Compile" alt="Compile" >}}
```powershell
cd path\to\winutil
```
* 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.
Run:
### Committing the changes
* Before committing your changes, please discard changes made to the `Winutil.ps1` file, like the following:
```powershell
.\Compile.ps1 -Run
```
{{< image src="images/Discard-GHD" alt="Push Commit Image" >}}
Verify:
* Now, commit your changes once you are happy with the result.
- WinUtil launches correctly
- Your feature works
- Nothing else breaks
{{< image src="images/Commit-GHD" alt="Commit Image" >}}
If something fails, fix it before committing.
* Push the changes to upload them to your fork on github.com.
---
{{< image src="images/Push-Commit" alt="Push Commit Image" >}}
### 6. Review Your Changes
### 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.
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.
+12 -6
View File
@@ -13,7 +13,7 @@ irm https://github.com/ChrisTitusTech/Winutil/releases/latest/download/Winutil.p
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).
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 |
| :--------: | :---------: | :-----------: |
@@ -22,8 +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:
`"WinUtil is unable to run on your system, powershell execution is restricted by security policies,"`
this means that your PowerShell session is in **Constrained Language Mode**, which prevents WinUtil from running.
### Ultimate Performance Plan Not Working
The Ultimate Performance power plan may not work on some laptops who do not fully support this power plan.
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:
```
+10 -18
View File
@@ -145,7 +145,7 @@ The **Win11 Creator** is a specialized subsystem within Winutil that creates cus
- `Invoke-WinUtilISOScript.ps1`: Applies modifications to mounted install.wim
- Removes provisioned AppX packages (40+ bloatware apps)
- Injects drivers (optional) from current system
- 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
@@ -167,7 +167,7 @@ Invoke-WinUtilISOMountAndVerify
├─ Extract available editions (Home, Pro, Enterprise, etc.)
└─ Store ISO path, drive letter, WIM path, image info in $sync
User optionally enables Driver Injection checkbox
User optionally enables the Driver Injection checkbox
Invoke-WinUtilISOModify (runs in background runspace)
├─ Create work directory: ~WinUtil_Win11ISO_[timestamp]
@@ -183,7 +183,7 @@ Invoke-WinUtilISOModify (runs in background runspace)
│ ├─ 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 modified install.wim (~10+ minutes, slowest step)
├─ 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
@@ -218,7 +218,7 @@ Invoke-WinUtilISOCleanAndReset (optional)
- Prevents redundant modifications
**Modification Safety**:
- All registry changes are documented in script (reversible)
- 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
@@ -256,7 +256,7 @@ The `Invoke-WinUtilISOScript` function applies **50+ offline registry tweaks**:
**System Features**:
- Disable BitLocker and device encryption
- Disable Chat icon from taskbar
- Disable Chat icon from the Taskbar
- Disable OneDrive folder backup
- Disable Copilot
- Disable Windows Update during OOBE (re-enabled at first login)
@@ -287,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)
@@ -333,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
```
@@ -380,13 +380,6 @@ Update UI
"Value": "0",
"OriginalValue": "1"
}
],
"ScheduledTask": [
{
"Name": "Microsoft\\Windows\\Autochk\\Proxy",
"State": "Disabled",
"OriginalState": "Enabled"
}
]
}
}
@@ -397,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
@@ -525,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
@@ -550,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
@@ -662,7 +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
- [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: ""
---
+6 -6
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"
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=2207}
```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=2165}
```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=2581}
```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=2711}
```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=2461}
```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=2331}
```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=2349}
```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=2443}
```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=2401}
```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=2243}
```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=2607}
```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=2489}
```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=2225}
```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=2287}
```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=2383}
```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).
@@ -1,11 +1,11 @@
---
title: "Task View Button in Taskbar"
title: "Taskbar Task View Icon"
description: ""
---
```json {filename="config/tweaks.json",linenos=inline,linenostart=2535}
```json {filename="config/tweaks.json",linenos=inline,linenostart=1747}
"WPFToggleTaskView": {
"Content": "Task View Button in Taskbar",
"Content": "Taskbar Task View Icon",
"Description": "If enabled, Task View Button in Taskbar will be shown.",
"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).

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