Compare commits

...

379 Commits

Author SHA1 Message Date
11333a1f17 Update pre-release.yaml 2024-08-07 15:37:14 -05:00
ff4398e45c Update Compile.ps1 2024-08-07 15:30:23 -05:00
7841f4bbce revamp of workflows by Marterich 2024-08-07 15:24:26 -05:00
5b993adba9 rework ci/cd 2024-08-07 15:01:03 -05:00
73d42dee20 Delete .github/workflows/release.yaml 2024-08-07 14:58:31 -05:00
ee0a2818b6 Compile Winutil 2024-08-07 16:57:14 +00:00
9a1fbd77a7 fix compile 2024-08-07 11:48:38 -05:00
5e3c6ba452 [Docs 02] Auto dev-docs & more (#2481)
* Compile Winutil

* pre-Releases (#1)

* Create pre-release.yaml

* Update release.yaml

* Update pre-release.yaml

* Create release-drafter.yml

* Update release-drafter.yml

* Update pre-release.yaml

* Update pre-release.yaml

* Update pre-release.yaml

* Update pre-release.yaml

* Update pre-release.yaml

* Update pre-release.yaml

* Update pre-release.yaml

* Update pre-release.yaml

* Update pre-release.yaml

* Update release-drafter.yml

* Update pre-release.yaml

* Update release-drafter.yml

* Update pre-release.yaml

* Update release-drafter.yml

* Update release-drafter.yml

* Update pre-release.yaml

* Update pre-release.yaml

* Update release-drafter.yml

* Update release-drafter.yml

* Update release.yaml

* Update release-drafter.yml

* Update release-drafter.yml

* Update pre-release.yaml

* Compile Winutil

* fixed end task with right click

* Compile Winutil

* code generator & compile integration

* Compile Winutil

* finish

- add autogenerated table of content page named "Dev Docs", with table of content to all .md files
- added invokescript & undoscript
- generate documentation files

* oops, remove dublicates

* undo winutil.ps1

* remove prefixes

WPF
WinUtil
Toggle
$category
Features
Tweaks
Panel
Fixes

* fixes

- fix inconsistency in Featurenaming
- add "Enable" & "Disable" as prefix to remove

* fix spellin mistake

* remove unneccesary whitespaces

update info
remove unnecessary whitespaces by only adding stuff to the md if it actually exists

* rewrite prefix removal into one line definition

* added taskscheduler support

* add support for function calling

add support for functioncalling
- replace code formatting for invoke & undo script from json to powershell

* content instead of displayname

* add last modified date

* contributing + docs generator

- moved contribute.md to root CONTRIBUTING.md
- referenced CONTRIBUTING.md in contribute.md
- added toggle & button reference to functions
- added function references in functions
- changed mkdocs site styling

* Use HashSet for processedFunctions

Use HashSet for processedFunctions:
- Ensures dynamic addition of functions without duplication.
Recursive Function Scanning:
- Includes all nested functions called by InvokeScript, UndoScript, ToggleScript, and ButtonScript.

* follow github standards

- add code of conduct
- reference code of conduct in docs
- regrouped docs navigation
- add comment about the sourced md file

* small fixes

* change color from teal to blue in light mode

* add links to tweaks

* add archiving feature to autodocs

* administrative

- add script to releases and remove from compile
- move link from after description to after category

* small fixes

- add S in feature.json
- fix dating
- move link to after category

* fix links

* undo link bc of bugs

* add progress bar to script

- add progress like in compile
- moved archive folder creation to the beginning of the script

* Simple improvements to 'auto-devdocs' branch (#3)

* Fix links for tweaks & features

* Make New Line characters work for Json Snippet

* Change NewLine Character from Unix Style (LF) to Windows/DOS Style (CRLF)

* rerun script

* und workflows & rearrange navigation items

* layer out itemname cutout

* rework links & temp removal of archivation

* fix adding link in json root

not adding link member to root in json files

* fix json generation

replace '\r\n',"`r`n" with ('\n',"`n")

* add features to auto md docs

* add minify plugin

* regex hotfix

* refractor

* add changelog to about section

add link to changelog in docs for about section

* undo changelog

* Cleanup 'devdocs-generator.ps1' - Implement Zig Multiline String Feature (#4)

* Cleanup 'devdocs-generator.ps1' - Implement Zig Multiline String Feature

* Fix NewLine character replace in 'devdocs-generator.ps1'

* run script

* run script

* Fix 'itemnametocut' RegEx in 'devdocs-generator.ps1' (#5)

* rerun script

* rework nav + remove code of conduct

* undo workflow changes

* run script

* remove changelog

---------

Co-authored-by: MyDrift-user <MyDrift-user@users.noreply.github.com>
Co-authored-by: Mr.k <mineshtine28546271@gmail.com>
2024-08-07 10:55:23 -05:00
478aa4ac7b Compile Winutil 2024-08-07 15:42:38 +00:00
123d78116b Delete .github/workflows/createchangelog.yml 2024-08-07 10:42:12 -05:00
a2d9f47ea6 Deploying to main from @ ChrisTitusTech/winutil@da824d58a7 🚀 2024-08-07 15:32:09 +00:00
da824d58a7 Compile Winutil 2024-08-06 20:51:10 +00:00
f38f534850 Edge Removal Fix 2024-08-06 15:50:36 -05:00
04c84dce45 Edge Removal Fix 2024-08-06 15:39:46 -05:00
3903eaaa24 Code Formatting of Repo - Add Preprocessing to Compilation Process - Introduction of Dev/Build Tools to WinUtil (Although very simple at the moment) (#2383)
* Replace Tabs with Spaces to follow the conventions

* Add Preprocessing in Compiler

* Compile from Anywhere you want - Running 'Compile.ps1' Works in any directory you call it from

* Code Formatting Changes

* Result of Preprocessing Step in 'Compile.ps1' Script - Remove Trailing Whitespace Characters

* Make Preprocessing more advanced

* Move Preprocessing to a separate script file

* Make Self Modification impossible for 'tools/Do-PreProcessing.ps1' Script - Make the workingdir same as sync.PSScriptRoot for consistency

* Revert commit b5dffd671f

* Patched a Bug of some Excluded Files not actually get excluded in 'Get-ChildItem' PS Cmdlet

* Update Replace Regex for Code Formatting in 'Do-PreProcessing' Script Tool

* Rename 'Do-PreProcessing' to 'Invoke-Preprocessing' - Update some Comments

* Make 'Invoke-Preprocessing' Modular - Update RegEx to handle more cases - Update Documentation - Add Validations & Useful feedback upon error

* Replace Tabs with Spaces to follow the conventions - 'applications.json' File

* Code Formatting Changes - 'Copy-Files' Private Function

* Update Replace Regex for Code Formatting in 'Invoke-Preprocessing' Script Tool

* Replace Tabs with Spaces to follow the conventions - Make 'ExcludedFiles' validation step check all filepaths before finally checking if any has failed

* Result of 'Invoke-Preprocessing' Script

* Update Replace Regex for Code Formatting in 'Invoke-Preprocessing' Script Tool
2024-08-06 15:35:17 -05:00
3b2af3fa2b EdgeRemoval Fix 2024-08-06 15:08:50 -05:00
c979dae926 set region 2024-08-06 14:20:51 -05:00
a5a8f3ff6f Compile Winutil 2024-08-06 18:42:06 +00:00
31aedcf684 Fix Numlock on startup
Fix Numlock on startup
2024-08-06 13:41:31 -05:00
ab6898aebc Compile Winutil 2024-08-06 18:33:26 +00:00
68437c2406 Update Phone Link application ID to Microsoft.YourPhone. (#2514) 2024-08-06 13:32:52 -05:00
7c214666b8 Compile Winutil 2024-08-06 17:57:49 +00:00
9284741cd3 fix dialogbox theme (#2490) 2024-08-06 12:57:21 -05:00
97e517a9dd Compile Winutil 2024-08-06 17:54:11 +00:00
97f67fa4b2 fix shortcut creation (#2488)
* fix shortcut creation

- using vars that actually exist instead of imaginary ones.
- remove empty row at the start of the file

* cleanup

remove unneccessary empty row
2024-08-06 12:53:41 -05:00
a77ef020fe Fix some bullet points in 'contribute.md' file as well as some improvments to the graph (#2472)
* Fix some bullet points in 'contribute.md' file as well as some improvments to the graph

* Make the badges in 'index.md' file be in one paragraph
2024-08-06 12:44:51 -05:00
2b01fb739f Compile Winutil 2024-08-06 17:42:49 +00:00
f3df13a4ca Debloat Edge Tweak (#2454)
* create debloat edge tweak

* removed changing privacy setting

instead of auto decline geo,sensor... it asks the user if needed
2024-08-06 12:42:18 -05:00
33d5d55b15 Delete edgeremoval.ps1
This was destroyed and GPT trash.
2024-08-06 12:38:35 -05:00
0bea5f8ceb Compile Winutil 2024-08-06 17:02:25 +00:00
de8a79df22 Pull Request (#2526)
* Update edgeremoval.ps1

* Update edgeremoval.ps1

* Update edgeremoval.ps1
2024-08-06 12:01:46 -05:00
1c9cef0079 Deploying to main from @ ChrisTitusTech/winutil@49100e1dd6 🚀 2024-08-06 15:32:21 +00:00
49100e1dd6 Deploying to main from @ ChrisTitusTech/winutil@547e433b0b 🚀 2024-08-05 15:32:09 +00:00
547e433b0b Merge branch 'main' of https://github.com/ChrisTitusTech/winutil 2024-08-02 19:10:14 -05:00
4ee41cf198 error check code signing 2024-08-02 19:10:09 -05:00
c2addcfedf Compile Winutil 2024-08-03 00:02:22 +00:00
09575b0f8d Merge branch 'main' of https://github.com/ChrisTitusTech/winutil 2024-08-02 19:01:51 -05:00
5a89053534 Update compile.yaml 2024-08-02 19:01:44 -05:00
1350013b3e Compile Winutil 2024-08-02 23:52:14 +00:00
80675b4c3f add code signing to ps1 file 2024-08-02 18:51:50 -05:00
2a530d0c12 Update createchangelog.yml 2024-07-30 21:41:52 -05:00
fb1a0b919c Update pre-release.yaml
bug fix and error handling
2024-07-30 21:33:30 -05:00
83bcf246f6 Merge branch 'main' of https://github.com/ChrisTitusTech/winutil 2024-07-30 21:16:52 -05:00
e2567bddc9 Update close-discussion.yml 2024-07-30 21:16:47 -05:00
2508f28806 Compile Winutil 2024-07-31 02:15:01 +00:00
2d185e1919 Disable the Generate Sponsors Cronjob on Forks (#2473)
* Compile Winutil

* Only run Sponsor Cron on Main Repo

* Remove winutil from pR

---------

Co-authored-by: Marterich <Marterich@users.noreply.github.com>
2024-07-30 21:14:36 -05:00
5ac13f265e Fix winget ID of Advanced Renamer (#2467)
* Compile Winutil

* Fix Winget ID For Advanced-Renamer

* Remove winutil from pr

---------

Co-authored-by: Marterich <Marterich@users.noreply.github.com>
2024-07-30 21:14:12 -05:00
128593a950 Compile Winutil 2024-07-31 02:13:58 +00:00
e7328c2739 Complete Winget Install Overhaul and Progress Bar in GUI (#2466)
* Compile Winutil

* first draft for Progress bar in GUI

* small optimizations to the loading bar

* Optimize the Winget Installation Function to make it more maintainable

* Apply loading bar to Tweaks

* Update colors

* Add docs

* Fix value range for the taskbar item

* Remove winutil.ps1 from PR

* Documention and fix an oversight in the uninstall logic

* Reduce even more repeaded code

---------

Co-authored-by: Marterich <Marterich@users.noreply.github.com>
2024-07-30 21:13:30 -05:00
18f9f5e35d Compile Winutil 2024-07-31 02:10:40 +00:00
760fb3d30a Update UniGetUI description (#2486) 2024-07-30 21:10:14 -05:00
a75c80057a Compile Winutil 2024-07-31 02:09:00 +00:00
514eddd0b6 Exit Codes and Win32 API calls (#2462)
- Change process code to Start-Process -PassThru, finally removing the need for a new process object
- Add code if ISO generation is not successful to display an error message in the system language from the Windows APIs
2024-07-30 21:08:34 -05:00
3929459106 Update close-discussion.yml 2024-07-30 21:05:13 -05:00
b4bf321e66 Make README.md more friendly (#2455) 2024-07-30 20:55:16 -05:00
74f58e7957 Compile Winutil 2024-07-31 01:52:23 +00:00
875864060e Disable Background Apps (#2452)
* add disable bg apps tweak

* change essentail to advanced tweak
2024-07-30 20:51:47 -05:00
e38615b4b4 Compile Winutil 2024-07-31 01:51:18 +00:00
9f33cb1b82 add "Disable detailed BSoD Preference" (#2451) 2024-07-30 20:50:50 -05:00
313c5f59de Deploying to main from @ ChrisTitusTech/winutil@7de93ae208 🚀 2024-07-28 15:32:00 +00:00
7de93ae208 Update github-pages.yml
revert to v4
2024-07-25 16:28:02 -05:00
140620e76c Update dependabot.yml
dependabot shit the bed on python v5
2024-07-25 16:27:42 -05:00
8ae328c4b5 Compile Winutil 2024-07-25 21:20:12 +00:00
1032d3d5aa Taskbaritem > Progressbar / Overlay icon / description / asset mgmt (#2309)
* Add Progress bar to some stuff

https://learn.microsoft.com/en-us/dotnet/api/system.windows.shell.taskbariteminfo?view=windowsdesktop-8.0

* add function to manage taskbar item

changed from manually setting the taskbar overlay, progressvalue and progress state to setting them through a function

* add description feature

* use Dispatcher.Invoke

* restructure, fix, additions

* fix merge conflicts

* add check to progresses

* remove progress from wiget & choco install

* fix

* polish

* fix

* Update functions/private/Set-WinUtilTaskbarItem.ps1

Co-authored-by: Mr.k <mineshtine28546271@gmail.com>

* fix syntax

* Update functions/private/Set-WinUtilTaskbarItem.ps1

Co-authored-by: Mr.k <mineshtine28546271@gmail.com>

* rework

- add overlay presets
- rework image saving & converting
- removed popup after uninstalling applications

* fix description of function

* undo winutil

* remove check.png

* Update functions/private/Set-WinUtilTaskbarItem.ps1

Co-authored-by: Mr.k <mineshtine28546271@gmail.com>

* Update functions/private/Set-WinUtilTaskbarItem.ps1

Co-authored-by: Mr.k <mineshtine28546271@gmail.com>

* rework assets directory & its usage

* fixes

- ability to set no overlay added
- added relative path to winutildir

* hotfix

* last fixes

* add comment

* remove trailing whitespaces

THX to Mr.K :)

* renamed checkmark & added warning

* last fixes

remove bitmap
remove unneeded "| out-null"

* hotfix for new commit

---------

Co-authored-by: Mr.k <mineshtine28546271@gmail.com>
2024-07-25 16:19:45 -05:00
84a84fd34d Compile Winutil 2024-07-25 21:10:23 +00:00
b23c685580 Updated DNS box (#2354) 2024-07-25 16:10:01 -05:00
214eb1d332 Compile Winutil 2024-07-25 21:09:37 +00:00
5083b84233 Added Try-Catch blocks for remaining removal tasks (#2365)
* Added Try-Catch blocks for remaining removal tasks

* Delete winutil.ps1 from tracking list

* Revert "Delete winutil.ps1 from tracking list"

This reverts commit 97044425ea.
2024-07-25 16:09:00 -05:00
4553f3e758 Added undoing tweak in FAQ (#2381)
* Added undoing tweak in FAQ

* fixed grammar

* fixed grammar... again

* Update docs/faq.md

Co-authored-by: Mr.k <mineshtine28546271@gmail.com>

---------

Co-authored-by: Mr.k <mineshtine28546271@gmail.com>
Co-authored-by: Chris Titus <contact@christitus.com>
2024-07-25 16:06:56 -05:00
8baacc2966 Bump actions/setup-python from 4 to 5 (#2388)
Bumps [actions/setup-python](https://github.com/actions/setup-python) from 4 to 5.
- [Release notes](https://github.com/actions/setup-python/releases)
- [Commits](https://github.com/actions/setup-python/compare/v4...v5)

---
updated-dependencies:
- dependency-name: actions/setup-python
  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>
2024-07-25 15:44:42 -05:00
a8c47e64d7 Compile Winutil 2024-07-25 20:43:59 +00:00
fcc48a2b22 Re-apply PR #2271 & Fix For Loop in 'Install-WinUtilProgramWinget' Private Function (#2396)
* Change Main loop from 'ForEach' to 'For' inside 'Install-WinUtilProgramWinget' Private Function (#2271)

* Fix Off By One Error by Replaceing Wrong Comparison Operator from '-le' (Less or Equal) to '-lt' (Less Than) in For Loop of 'Install-WinUtilProgramWinget' Private Function
2024-07-25 15:43:29 -05:00
f2a5574a8c Update changelog.md with all releases 2024-07-25 20:31:41 +00:00
363ed1c41b Fix 'Update changelog.md on Release' Workflow (#2410)
* A Fix for 'createchangelog.yml' & Rename File 'updates.md' to 'changelog.md'

* Fix GitHub CLI Not Working

* Increase the limit for Release List to 1000000

* Add '--exclude-drafts' & '--exclude-pre-releases' to GitHub CLI Release List Command

* Rewrite Bash Script found in a step of 'Update changelog.md on Release' GitHub Workflow

* Change the Content Generation a bit in 'Update changelog.md on Release' GitHub Workflow

* Reorder the Content Generation in 'Update changelog.md on Release' GitHub Workflow

* Update Regex for 'Update changelog.md on Release' Worflow

* Change the Release Event Types to 'Published, Edited, Created, Deleted' to ensure the Changelog is Up-To-Date
2024-07-25 15:27:09 -05:00
706328e674 Compile Winutil 2024-07-25 20:22:03 +00:00
2f43975735 Update MPC to fork thats still being developed (#2415)
- Change Choco id
- Update Description (to description from Githup Repo)
- Update Link to list the actual Github Page where the Updates are being published
2024-07-25 15:21:37 -05:00
d1a40217c1 Compile Winutil 2024-07-25 20:21:14 +00:00
790afac860 change ctt.com/win to github release url (#2420) 2024-07-25 15:20:51 -05:00
efee03b940 Compile Winutil 2024-07-25 20:20:06 +00:00
8beca950a8 renamed some preferences (#2421) 2024-07-25 15:19:32 -05:00
9bc6adf191 Fix 'Close Discussion on PR Merge' Workflow (#2423)
* A Fix for 'close-discussion.yml' Workflow

* Update Regex for 'Close Discussion on PR Merge' Worflow

* Finish last step in 'Close Discussion on PR Merge' Workflow

* Remove & Merge the Steps in 'Close Discussion on PR Merge' Workflow

* Re-Add Missing Environment Variable

* Update Regex for 'Close Discussion on PR Merge' Worflow
2024-07-25 15:17:54 -05:00
fb34c7cbd8 Compile Winutil 2024-07-25 20:16:01 +00:00
ae1b22552a Add explorer bloat tweak (#2424) 2024-07-25 15:15:37 -05:00
57f4eba692 Compile Winutil 2024-07-25 20:14:54 +00:00
22684da35b Added Gitbutler (#2425)
* Added Gitbutler

* Updated content
2024-07-25 15:14:28 -05:00
7acb213a77 Skip 'Close Issue on /close' Workflow if the comment was posted on a PR (#2426) 2024-07-25 15:12:06 -05:00
b9e8b9f697 Compile Winutil 2024-07-25 20:11:53 +00:00
300439c851 Update tweaks.json to correct stadby -> standby (#2432) 2024-07-25 15:11:23 -05:00
0e7ac225af fix OFGB typo (#2438) 2024-07-25 15:10:42 -05:00
0bbbe67446 Compile Winutil 2024-07-25 20:09:01 +00:00
376cc1d745 Fix typo in hybernation tweak. (#2439)
Changed 'stadby' to 'standby'
2024-07-25 15:08:37 -05:00
499848d643 Updates docs to try allow better customising and removes announcment banner. (#2448)
* Updates styling for WinUtil.

* Removes announcement and fixes grammar

* Revert "Deploying to main from @ ChrisTitusTech/winutil@8a6116cea1 🚀"

This reverts commit df2fe4a4c6.

* Revert "Deploying to main from @ ChrisTitusTech/winutil@e82870da89 🚀"

This reverts commit 8a6116cea1.

* Revert "Deploying to main from @ ChrisTitusTech/winutil@e784604a1a 🚀"

This reverts commit e82870da89.

* Revert "Update pre-release.yaml"

This reverts commit e784604a1a.

* Revert "Fixes release log (#2377)"

This reverts commit 5d3d47eeb5.

* Reapply "Fixes release log (#2377)"

This reverts commit 86f8d567b9.

* Reapply "Update pre-release.yaml"

This reverts commit 8761f3b815.

* Reapply "Deploying to main from @ ChrisTitusTech/winutil@e784604a1a 🚀"

This reverts commit 673f416257.

* Update README.md
2024-07-25 15:08:03 -05:00
601e338929 Compile Winutil 2024-07-25 05:27:02 +00:00
8045a78c44 [DOCS] Update (#2427)
* index, known issues & contribute

* revamp some existing stuff

* rework on existing stuff

* rework existing stuff + add new stuff

* remove unused folder & imgs

* undo winutil

* replace faulty formatted line with tip

Co-authored-by: Mr.k <mineshtine28546271@gmail.com>

* hotfix for tip

* fix grammer issues

* fix grammer issues

Corrected various grammatical errors in the documentation files. This includes fixing typos, adjusting punctuation, and improving sentence structure for better readability.

---------

Co-authored-by: Mr.k <mineshtine28546271@gmail.com>
2024-07-25 00:26:32 -05:00
df2fe4a4c6 Deploying to main from @ ChrisTitusTech/winutil@8a6116cea1 🚀 2024-07-24 15:32:23 +00:00
8a6116cea1 Deploying to main from @ ChrisTitusTech/winutil@e82870da89 🚀 2024-07-21 15:32:26 +00:00
e82870da89 Deploying to main from @ ChrisTitusTech/winutil@e784604a1a 🚀 2024-07-18 15:32:33 +00:00
e784604a1a Update pre-release.yaml 2024-07-17 13:54:22 -05:00
e8022b8556 Update github-pages.yml 2024-07-17 13:53:44 -05:00
e7ed7829cf Deploying to main from @ ChrisTitusTech/winutil@508f909fc9 🚀 2024-07-17 15:33:49 +00:00
508f909fc9 Update pre-release.yaml 2024-07-17 01:04:39 -05:00
60a6c387e2 Update pre-release.yaml 2024-07-17 01:01:44 -05:00
1307abc1d6 Update pre-release.yaml 2024-07-17 00:55:44 -05:00
45a103f76b Update pre-release.yaml 2024-07-17 00:53:21 -05:00
b84c0d9248 Update pre-release.yaml 2024-07-17 00:52:12 -05:00
f51c30023a Merge branch 'main' of https://github.com/ChrisTitusTech/winutil 2024-07-17 00:44:04 -05:00
bce4868896 Update pre-release.yaml 2024-07-17 00:43:58 -05:00
8141baa879 Bump actions/cache from 2 to 4 (#2390)
Bumps [actions/cache](https://github.com/actions/cache) from 2 to 4.
- [Release notes](https://github.com/actions/cache/releases)
- [Changelog](https://github.com/actions/cache/blob/main/RELEASES.md)
- [Commits](https://github.com/actions/cache/compare/v2...v4)

---
updated-dependencies:
- dependency-name: actions/cache
  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>
2024-07-17 00:38:57 -05:00
280f8a7dbc Bump actions/checkout from 2 to 4 (#2389)
Bumps [actions/checkout](https://github.com/actions/checkout) from 2 to 4.
- [Release notes](https://github.com/actions/checkout/releases)
- [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md)
- [Commits](https://github.com/actions/checkout/compare/v2...v4)

---
updated-dependencies:
- dependency-name: actions/checkout
  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>
2024-07-17 00:38:33 -05:00
0a472c06c4 Cleanup version creation 2024-07-17 00:36:59 -05:00
1c72007a29 Update pre-release.yaml 2024-07-17 00:29:37 -05:00
07434f706b Update pre-release.yaml 2024-07-17 00:13:56 -05:00
4176435ebf Update dependabot.yml 2024-07-17 00:06:43 -05:00
a38cfb14d3 pin action/stale and tag debug 2024-07-17 00:03:31 -05:00
b319c32ae6 Merge branch 'main' of https://github.com/ChrisTitusTech/winutil 2024-07-16 23:55:56 -05:00
829e46b3a8 fix github actions 2024-07-16 23:55:54 -05:00
2304b06f68 Compile Winutil 2024-07-17 04:49:41 +00:00
c90363181c Winget Reversion
A reversion was needed on winget install because a for loop was installing the latest winget submitted app as it ran over.
2024-07-16 23:48:27 -05:00
5d3d47eeb5 Fixes release log (#2377)
* Update createchangelog.yml

* Update createchangelog.yml

* Update createchangelog.yml

* Update createchangelog.yml

---------

Co-authored-by: Chris Titus <contact@christitus.com>
2024-07-16 15:26:48 -05:00
bc213d34d9 Update workflows to remove ::set-output (#2384)
remove ::set-output usage
remove `$version` asc a enviroment variable as ot's not used
2024-07-16 15:11:24 -05:00
df2cd71d1e Update close-discussion.yml 2024-07-16 14:08:24 -05:00
a760400aeb Add /close command for the active contributors to close issues (#2380)
* initialize slash commands

* Fix string

* fix username
2024-07-16 14:05:28 -05:00
07a78fc3d8 Compile Winutil 2024-07-16 19:03:21 +00:00
78a6a60d96 Repo Cleanup (#2367)
* remove trailing whitespaces, remove unused img folder

* Rename TweaksScreen.PNG to TweaksScreen.png

* restructure "Install-WinUtilProgramWinget"

* undo programwinget function rework

* fix typo
2024-07-16 14:02:31 -05:00
1fb986a05d Update close-discussion.yml (#2364) 2024-07-16 14:01:06 -05:00
51e5af41ed Update PULL_REQUEST_TEMPLATE.md (#2363) 2024-07-16 14:00:52 -05:00
7dba867101 fix duplicate items in releases 2024-07-16 13:58:31 -05:00
ce787a9074 gh update.mb docs 2024-07-16 13:14:55 -05:00
425ec42cb5 Update createchangelog.yml 2024-07-16 13:10:23 -05:00
b2cd7d7897 Compile Winutil 2024-07-16 15:56:01 +00:00
ad9cc6fffd Fixes an issue with create changelog not working (#2375)
* Update createchangelog.yml

* Update createchangelog.yml
2024-07-16 10:55:30 -05:00
594ee94f49 Deploying to main from @ ChrisTitusTech/winutil@30bea93dde 🚀 2024-07-16 15:32:11 +00:00
30bea93dde [Wiki] Automatically enabling Dark/Light mode set by user's browser Preference (#2366)
This allows the website to automatically switch to the theme set by the browser or the whole system.
2024-07-15 11:59:25 -05:00
2e26ae7ef1 Deploying to main from @ ChrisTitusTech/winutil@0138a76601 🚀 2024-07-15 15:33:20 +00:00
0138a76601 Compile Winutil 2024-07-15 04:00:39 +00:00
8340aca48f Fix WinUtil Crashing on Startup - Xaml Error from Generated Applications List (#2361) 2024-07-14 23:00:17 -05:00
265f4eb705 Deploying to main from @ ChrisTitusTech/winutil@40cf1f80ef 🚀 2024-07-15 02:03:01 +00:00
40cf1f80ef Merge branch 'main' of https://github.com/ChrisTitusTech/winutil 2024-07-14 21:01:19 -05:00
e182d2433f Sponsors 2024-07-14 21:01:12 -05:00
4831828b27 Make the 'Youtube Tutorial' Header be the link instead of the Youtube Thumbnail for it, Making the 'README.md' even shorter (#2359) 2024-07-14 20:49:27 -05:00
c9934a53b0 Compile Winutil 2024-07-15 01:48:28 +00:00
904e0ad468 Add New Windows 11 Specific Toggle - The 'Taskbar Alignment' Toggle (#2347) 2024-07-14 20:47:40 -05:00
792a5c4b38 label github page deployment action 2024-07-14 20:44:52 -05:00
ff0b3d29cf Optimize badges (#2356)
* Switch Readme to show total downloads of all time

* Add download counter for specific releases automatically to release
2024-07-14 20:16:38 -05:00
ac9b4fd645 Change the titles for each section from Bold Text to Header 2 in Bug Report Issue Template (#2339)
* Change the titles for each section from Bold Text to Header 3 in Bug Report Issue Template

* Change the Titles Header from Level 3 to Level 2 in 'Bug Report' Issue Template
2024-07-14 20:11:19 -05:00
84ca02a033 Compile Winutil 2024-07-15 01:10:26 +00:00
8cfd47e1b7 Adds Palemoon (#2332) 2024-07-14 20:10:03 -05:00
8df9a7c590 Compile Winutil 2024-07-15 01:08:08 +00:00
1d01b7490f fixed end task with right click (#2331) 2024-07-14 20:07:43 -05:00
3245756935 Remove Edge leftovers from WOW6432Node (#2328) 2024-07-14 20:07:20 -05:00
54ad3198dd Add application: Lenovo Legion Toolkit (#2324)
Co-authored-by: Chris Titus <contact@christitus.com>
2024-07-14 20:06:55 -05:00
7904380c8b Fix Compile Errors on PowerShell 5 (#2322)
* Fixed Extraction of JSON Object Names

* Update Comment to reflect the code

Co-authored-by: Mr.k <mineshtine28546271@gmail.com>

---------

Co-authored-by: Mr.k <mineshtine28546271@gmail.com>
2024-07-14 20:06:00 -05:00
81e8ca7fdc Compile Winutil 2024-07-15 01:05:53 +00:00
86cf331e01 add zoomit (#2319) 2024-07-14 20:05:27 -05:00
150a99026f Update applications.json (#2316)
Co-authored-by: Chris Titus <contact@christitus.com>
2024-07-14 20:05:03 -05:00
272a993099 Compile Winutil 2024-07-15 01:03:39 +00:00
d4faee5fbc Optimized: Shortcut Creation and PS7 Tweak (#2314)
* Clarified the wording

* Handle Computers without Windows Terminal (eg Win10)

* Modify Shortcut creation to use PS7 if possible
2024-07-14 20:03:12 -05:00
e5ba389606 Compile Winutil 2024-07-15 01:01:39 +00:00
af36d76e65 Hidden File Tweaks (#2320)
* Main

* Fixes previous issues

* Change the ordering of Some Toggle for Consistency

---------

Co-authored-by: Mr.k <mineshtine28546271@gmail.com>
2024-07-14 20:01:09 -05:00
5b7f0a0edf Update applications.json (#2313) 2024-07-14 20:00:52 -05:00
7294064aaa Compile Winutil 2024-07-15 01:00:22 +00:00
1e7b73df33 Update Install-WinUtilProgramChoco.ps1 (#2307) 2024-07-14 19:59:55 -05:00
c68b8d0f75 Compile Winutil 2024-07-14 23:51:06 +00:00
2c1031865f Sponsors Easter Egg 2024-07-14 18:50:40 -05:00
b1e995fcaf Added MicroWin documentation (#2349)
* Add MicroWin documentation

* Change style of headers of option types

* Fixed typo of EdgeWebView2
2024-07-13 15:47:36 -05:00
e798ec9126 Update README.md 2024-07-13 11:37:47 -05:00
c4daafbe79 Update README.md 2024-07-13 11:35:29 -05:00
1f0ee72834 Update README.md 2024-07-13 11:34:21 -05:00
950bd59e2f Update README.md 2024-07-13 11:32:22 -05:00
05267d8a37 Update README.md 2024-07-13 11:07:37 -05:00
37089aeb5c Documentation & ReadMe Cleanup (#2310)
* cleanup readme & create docs

* add icons

* Change Title to include Logo

* fix title

* title fix 2.0

* revert title

* Update .docs/Overview.md

Co-authored-by: Mr.k <mineshtine28546271@gmail.com>

* added link to latest release at download count

* moved files from wiki folder

* fix path

* fix2

* fix3

* add compatibility with new docs site

* fix link

* remove documentation

* fix known issues

---------

Co-authored-by: Mr.k <mineshtine28546271@gmail.com>
Co-authored-by: Chris Titus <contact@christitus.com>
2024-07-13 11:03:09 -05:00
bdb60b0b44 Discussions close on PR merge (#2336) 2024-07-13 11:00:37 -05:00
84242db2db Adds Community Discord to ReadMe file (#2343) 2024-07-13 11:00:00 -05:00
2844b0df54 Adds all files for winutil docs (#2342)
* Adds all files for winutil docs

* Adds and changes content

* Adds more content

* Added even more content to the docs

* Create screen-install.png

* Adds KnownIssues File

* Delete createchangelog.yml

* Fixes spelling
2024-07-13 10:59:35 -05:00
b2e3487989 Compile Winutil 2024-07-13 15:58:30 +00:00
01837b028a Create createchangelog.yml (#2346) 2024-07-13 10:58:07 -05:00
af1743066f Compile Winutil 2024-07-08 23:32:29 +00:00
d261f42ae4 Made changes (#2303) 2024-07-08 18:32:03 -05:00
02f335f4f3 Compile Winutil 2024-07-08 23:31:38 +00:00
3cb9a4f0ea Rework JDK packages with Corretto LTS ones (#2305) 2024-07-08 18:31:14 -05:00
d5c68029fe fix mb to md (#2304) 2024-07-08 18:29:41 -05:00
5375675347 Compile Winutil 2024-07-08 20:57:32 +00:00
8ed7732cbf Change category (#2302) 2024-07-08 15:57:03 -05:00
fb932d7e10 Compile Winutil 2024-07-08 20:56:40 +00:00
78f2aa5979 Merge branch 'main' of https://github.com/ChrisTitusTech/winutil 2024-07-08 15:56:05 -05:00
5176e3d4ff remove check for unit test. 2024-07-08 15:55:54 -05:00
b4aff6f7d3 Compile Winutil 2024-07-08 20:50:15 +00:00
ae240af11f checking for null unit test on Original Value 2024-07-08 15:49:49 -05:00
cedc752be5 fix missing bracket 2024-07-08 15:43:01 -05:00
a1f534e6b5 fix unit test fail 2024-07-08 15:39:53 -05:00
cb1aed3bdd Add download counter (#2300)
* Compile Winutil

* Update README.md

Add download Counter for the latest release

---------

Co-authored-by: Marterich <Marterich@users.noreply.github.com>
2024-07-08 15:34:12 -05:00
9e155c94d0 Adds PR template (#2299)
* Compile Winutil

* Update winutil.ps1

* Compile Winutil

* Addition of PULL_REQUEST_TEMPLATE.mb

* Update winutil.ps1

* Update winutil.ps1

* Update winutil.ps1

* Update PULL_REQUEST_TEMPLATE.mb

* Update PULL_REQUEST_TEMPLATE.mb

* Update PULL_REQUEST_TEMPLATE.mb

---------

Co-authored-by: Real-MullaC <Real-MullaC@users.noreply.github.com>
2024-07-08 15:33:27 -05:00
700a785092 Compile Winutil 2024-07-08 20:31:10 +00:00
80c7f6045f add app: modern flyouts (#2293) 2024-07-08 15:30:45 -05:00
3466ea222d Update applications.json (#2290)
WingetUI name changes if it makes sense
2024-07-08 15:30:33 -05:00
448d27f064 Fix Typo in 'Invoke-WinUtilTaskbarSearch' Private Function (#2275) 2024-07-08 15:30:19 -05:00
90f9c16446 Add new 'Disable Powershell 7 Telemetry' Tweak (#2273)
* Add new 'Disable Powershell 7 Telemetry' Tweak

* Add 'Disable Powershell 7 Telemetry' Tweak into the Standard Tweaks Preset
2024-07-08 15:29:53 -05:00
0a821f6e21 Compile Winutil 2024-07-08 20:29:23 +00:00
aaaf5f7f85 Fix 'Close Old Issues' Workflow (#2272)
* Downgrade 'actions/stale' GitHub Action to 'v8' from 'v9.0.0'

This will resolve the issue related to reserving the cache state found in 'v9.0.0' of this GitHub Action, which will make the Workflow process all Issues on every run.. which won't consume a lot of runtime resources by any means, as it's quite an optimized action.

* Increase the 'operations-per-run' from 100 to 150

This will ensure that the GitHub Action 'actions/stale' will not hit the limit of 200 items (an item either a PR or an Issue)
2024-07-08 15:28:57 -05:00
d7c2e2cf2a Change Main loop from 'ForEach' to 'For' inside 'Install-WinUtilProgramWinget' Private Function (#2271) 2024-07-08 15:28:22 -05:00
9f3ad1b998 Compile Winutil 2024-07-08 20:22:53 +00:00
88612b4225 fix ultimate performance plan (#2267)
- rewrote script

changed enabled to enable
changed disabled to disable
2024-07-08 15:22:26 -05:00
5c14d44afa Compile Winutil 2024-07-08 20:22:14 +00:00
d62d41347a Fix & Rename Nilesoft Shell (#2261)
* rename & fix Nilesoft Shell

* remove description in name
2024-07-08 15:21:47 -05:00
6aaeb09e73 Compile Winutil 2024-07-08 20:15:04 +00:00
96d80c486b Update Invoke-WPFMicrowin.ps1 (#2251)
Distinguish tasks better
2024-07-08 15:14:40 -05:00
47dbbfb4ff Compile Winutil 2024-07-08 20:14:32 +00:00
ce7d14b227 Fix Icon Support for Shortcut Creation (#2242)
* Make 'ConvertTo-Icon' Private Function Parameter more stricter

* Fix 'Invoke-WPFShortcut' Public Function Icon Support for the created shortcuts

* Replace Tabs with Spaces to follow the conventions

* Add new optional parameter to 'ConvertTo-Icon' and Improve the documentation for the function

* Update the Description for 'ConvertTo-Icon' Function

* Update some Documentation Wording in 'ConvertTo-Icon' Function

* Change behavior of one case from throwing an exception to doing an early return

Co-authored-by: Martin Wiethan <47688561+Marterich@users.noreply.github.com>

* Update Examples for 'ConvertTo-Icon' Functions & Add a new Example, as well as some other changes

Besides the updated documentation for 'ConvertTo-Icon' Function, the icon file path has changed from '$env:TEMP\cttlogo.ico' into '$env:LOCALAPPDATA\winutil\cttlogo.ico', and add edge-case of Folder not being found for the Icon File in 'ConvertTo-Icon' Code.

---------

Co-authored-by: Martin Wiethan <47688561+Marterich@users.noreply.github.com>
2024-07-08 15:14:10 -05:00
79afb8c1bd Compile Winutil 2024-07-08 20:12:49 +00:00
65f76c2a77 Add "Shotcut" in applications (#2238) 2024-07-08 15:12:20 -05:00
cf9cb52cdb fix code snipped formatting in .MDs (#2235) 2024-07-08 15:11:57 -05:00
7dcd0ed67e Added get installed check for classic start menu tweak (#2231)
Co-authored-by: Chris Titus <contact@christitus.com>
2024-07-08 15:11:39 -05:00
49b7224a6f Compile Winutil 2024-07-08 20:06:41 +00:00
f04c87f5a3 Update main.ps1 (#2229)
fuction -> function
2024-07-08 15:06:12 -05:00
d732c40b9a Add 'CONTRIBUTING.md' File (#2227)
* Add 'CONTRIBUTING.md' File

* Update 'CONTRIBUTING.md' File
2024-07-08 15:04:15 -05:00
8984c177a0 Redirect dev to latest Full Release if can't find prerelease (#2225)
* Redirect dev to latest Fulll Release if can't catch prerelease

* Fix logic and URL to select the latest release (#2)

* Compile Winutil

* fix redirect to latest release

---------

Co-authored-by: Marterich <Marterich@users.noreply.github.com>

* Set Powershell Window Title

* moved setting Window Name

* remove setting Windowname

Window Name gets overwritten

---------

Co-authored-by: Martin Wiethan <47688561+Marterich@users.noreply.github.com>
Co-authored-by: Marterich <Marterich@users.noreply.github.com>
2024-07-08 15:02:53 -05:00
747b1d76fd Known Issues: Removed redundancy caused by resolving the merge conflict. (#2224)
* remove launching issues from ReadME

* Add Launch Issues to Known Issues

* Relayout some stuff

* removed redundancy

* trying to resolve conflicts

* trying to reimplement a part

* removed trailing whitespaces

* fix

---------

Co-authored-by: Chris Titus <contact@christitus.com>
2024-07-08 15:01:37 -05:00
1b1ac22251 Delete Un-used 'helperscript.ps1' File (#2223) 2024-07-08 15:01:08 -05:00
bcc8ad8171 Compile Winutil 2024-07-08 20:00:22 +00:00
6b73f71876 [01] Refactoring UI code (#2274)
* Update Documentation for 'Get-TabXaml' Function

* Add More checks for Passed Parameters for 'Get-TabXaml' Function & A One Line change

* Make 'Get-TabXaml' Function do Proper Indentation to the Generated XML String & Add more Theming Options

* Re-formatting for a few lines in 'Get-TabXaml' Function

* Improve UI a bit

* Fix Buttons for Config Tab

* Add optional 'ButtonWidth' Field to Config Json Files that use 'Button' Type

* Simple Code Formatting in 'inputXML.xaml' File

* Make naming More Clear to the Developers

Rename the name of an element from 'CheckboxFilterClear' to 'SearchBarClearButton' and renamed style from 'ClearButtonStyle' to 'SearchBarClearButtonStyle'

* Rename 'FontFamilyHeading' to 'HeaderFontFamily' to match conventions & Make new Theming Property called 'SearchBarClearButtonFontSize'

* Remove Un-necessary 'ToString' Convertion in 'Get-TabXaml' Function

* Make naming More Clear to the Developers again

Rename the name of an element from 'CheckboxFilter' to 'SearchBar'.. although after some realization.. the naming might make sense at first,
because it filters only the checkboxes.. but CheckBoxFilter is less "Intutive" when saying it compared to "SearchBar".. _This's my own opinion, and it can reverted easily with git if needed._

* Remove Un-necessary Attributes in 'Get-TabXaml' Private Function

* Improve UI a bit

* Improve UI a bit

* Re-order some tweaks & Update their Content Fields to be more descriptive

* Remove the changing 'Off' & 'On' TextBlock next to Toggle Button/Checkbox

Removed it as it only takes up space in the right side of the Toggle Button/Checkbox, as well as making it difficult to correctly align it when change from/to 'On' & 'Off' Text,

* Some changes to the Generated Toggle Button/Checkbox in 'Get-TabXaml' Private Function

Increase the Side Margins of Toggle Button/Checkbox, as well as Change its side to be on the Left hand-side of the Label, rather then the Right hand-side.
2024-07-08 14:59:58 -05:00
b47036630c Move Launch Issues from ReadMe to Known Issues (#2222)
* remove launching issues from ReadME

* Add Launch Issues to Known Issues

* Relayout some stuff

---------

Co-authored-by: Chris Titus <contact@christitus.com>
2024-06-29 08:08:23 -05:00
e5ca44a0bd Improvements/Fixes for the Release Actions (#2221)
* add pre to tag to distinguish from full release

* explicitly serach for the newest pre-release

* set latest tag for releases
2024-06-29 06:46:52 -05:00
e7d49fe48b Pump up the value of 'operations-per-run' Field for 'Close Old Issues' Workflow (#2219)
Provides more 'head-room' for the 'stale' Actions to process all available Issues,
as well as PRs.. because they're processed no matter what, and I can't force this action not to.. as far as I know.
2024-06-29 06:45:29 -05:00
a5fbff142b Compile Winutil 2024-06-29 11:45:03 +00:00
e830894819 updated KnownIssues.md (#2216)
* Update README.md

* Update KnownIssues.md

* i didnt mean to push this update
2024-06-29 06:44:28 -05:00
d4dc9aec9b Attempt to simplify the launch command (#2214) 2024-06-28 18:29:28 -05:00
e4d0e16b26 Compile Winutil 2024-06-28 23:29:10 +00:00
d6102e8954 Add 'OFGB (Oh Frick Go Back)' App into 'applications.json' File (#2213) 2024-06-28 18:28:46 -05:00
227cb21c24 Compile Winutil 2024-06-28 22:16:05 +00:00
1891ea7966 Remove trailing whitespace characters (#2149)
* Remove All Trailing Whitespace Characters in '.ps1' Files

* Remove All Trailing Whitespace Characters in '.json' Files

* Remove All Trailing Whitespace Characters in '.yaml' Files

* Remove All Trailing Whitespace Characters in Different Files

* Remove Even More Trailing Whitespace Characters
2024-06-28 17:15:39 -05:00
6c49a8f2c9 Compile Winutil 2024-06-28 22:02:55 +00:00
ab384029f1 Replace Where-Object with .where Method (#2212)
* initialize Windev branch

* Formatting

* more Formatting

* fix applications

* init

* remove timer

* Compile Winutil

* revert winutil.ps1

* revert winutil.ps1

* update Get Winutilvariables to use .where method

---------

Co-authored-by: Marterich <Marterich@users.noreply.github.com>
2024-06-28 17:02:32 -05:00
0c32d016b4 Compiler simple improvements and remove app prefix from app list (#2117)
* Re-formate Comments to be a bit Clear-er

* Add New Helper Function to be an Interface for writing Progress Bar when Compiling

* Remove the Need to add 'WPFInstall' for every App Entry Name in 'applications.json' File

* Add 'ValidateRange' to 'Percent' Parameter for 'Update-Progress' Helper Function

This will insure that the passed value is neither below zero nor higher than 100

Co-authored-by: Martin Wiethan <47688561+Marterich@users.noreply.github.com>

* Remove the 'WPFInstall' prefix for several newly added apps

---------

Co-authored-by: Martin Wiethan <47688561+Marterich@users.noreply.github.com>
2024-06-28 16:59:38 -05:00
45818fd80c Compile Winutil 2024-06-28 21:27:55 +00:00
d08954945c Add 'voicemeeter potato' and 'windowgrid' to 'applications.json' (#2190)
* Add Voicemeeter Potato

* add WindowGrid

---------

Co-authored-by: Roshan Studley <OnyxAbove@users.noreply.github.com>
2024-06-28 16:27:34 -05:00
a7ab24e3c9 Compile Winutil 2024-06-28 21:24:06 +00:00
a924d91d65 Fix New Line Character for 'winutil.ps1' File (#2150)
* Change New Line Character from LF to CRLF in 'Get-TabXaml.ps1' Private Function

* Update '.gitattributes' File

Provide stricter rules to be used for multiple file types in the repo.
2024-06-28 16:23:41 -05:00
676e46f59f Add New Escape Character 'Em Dash' to 'Compile.ps1' File (#2153)
This will Insure that an App Entry can use the '—' Character (aka. the 'Em Dash' Character) in their Content (Title) and Description Fields without any worries.
2024-06-28 16:23:21 -05:00
37b9c552df Rework OneDrive removal Tweak (#2155)
* Revamp Onedrive Tweak

* fixes Description

* Add Reg key to Cleanup and Errorhandling
2024-06-28 16:23:05 -05:00
2e12176b2d Create Windev.ps1 loader (#2210)
* initialize Windev branch

* Formatting

* more Formatting
2024-06-28 16:13:12 -05:00
7d1e4a8d82 Update README.md (#2209)
Added automated release number.
2024-06-28 16:09:05 -05:00
4f8e7a8ea7 Compile Winutil 2024-06-28 21:08:42 +00:00
6c4c24b26d Change WinGet ID for 'Fastfetch' to be 'Fastfetch-cli.Fastfetch' instead of 'fastfetch' (#2204)
This will insure no ambiguity would happen in the near future for this App Entry.
2024-06-28 16:08:08 -05:00
d205e75030 docs: update README.md (#2203)
avaliable -> available
2024-06-28 16:07:42 -05:00
12561aba2c Compile Winutil 2024-06-28 21:06:13 +00:00
84fd1bc71c Update applications.json 2024-06-28 16:05:52 -05:00
b9cd563915 Fixed tweak not running and typo (#2201)
Tweak was not executing due to this
2024-06-28 10:25:33 -05:00
58df438b92 Fix 'close old issues' workflow (#2139)
* Remove un-necessary permissions in 'Close Old Issues' GitHub Workflow

* Update 'Close Old Issues' GitHub Workflow

* Re-add permissions in 'Close Old Issues' GitHub Workflow

Didn't know this was needed, reverting commit 8fe062421d
2024-06-28 10:15:16 -05:00
9086b30a75 Added Task View Tweak (#2141)
Co-authored-by: hubster-bot <hubsterbotbuisness@gmail.com>
Co-authored-by: Chris Titus <contact@christitus.com>
2024-06-28 10:14:05 -05:00
b268f98b91 Add 'Code With Mu (Mu Editor)' App into 'applications.json' File (#2142) 2024-06-28 10:12:45 -05:00
25a4ebe062 Add 'TagScanner (Tag Scanner)' App into 'applications.json' File (#2143) 2024-06-28 10:12:10 -05:00
60f5ef1f8e Remove Enable IPv6 because it is redundant with undo Disable IPv6 (#2147) 2024-06-28 10:11:06 -05:00
491b0b534c add fastfetch application (#2159) 2024-06-28 10:06:15 -05:00
a59a30f905 Modify Release Workflow (#2160)
* Add pre-release functionality

* Change Pre-Release Action Name

* commit set prerelease to false on release
2024-06-28 10:05:25 -05:00
227babe0e8 Toggle Search Button in the taskbar (#2162) 2024-06-28 10:02:32 -05:00
a0c4b33483 Add 'Advanced Ranamer' & 'Transmission' Apps into 'applications.json' File (#2163) 2024-06-28 10:01:02 -05:00
b831901967 Purging applications (#2169)
* Removed duplicate 'Ditto' entry

* Removed WinDirStat
WinDirStat is outdated and bloating app list. Wiztree should be used instead

* Removed BitCommet
BitCommet is adware and has a history of unethical practices

* Removed Bluestacks
Bluestack 5's installation proccess forceably install Bluestacks X and a crypto wallet alongside it

* Revert "Removed Bluestacks"

This reverts commit 9bd8ffa82d.

* Removed Bluestacks
Bluestack 5's installation proccess forceably install Bluestacks X and a crypto wallet alongside it

---------

Co-authored-by: Chris Titus <contact@christitus.com>
2024-06-28 09:59:15 -05:00
d0427403f1 Compile Winutil 2024-06-28 14:57:07 +00:00
312f42f39a Applications.json tweaks (#2172)
* Changed Go details

* Changed the details of go

* Removed winget trying to install multiple packages at once

* Update DevToys wniget package ID
2024-06-28 09:56:42 -05:00
f68c9bf213 Compile Winutil 2024-06-28 14:55:59 +00:00
7b6a624ec6 fix spelling mistake (#2173) 2024-06-28 09:55:35 -05:00
43304808a9 Add a Chocolatey package for Borderless Gaming (#2175)
Co-authored-by: Roshan Studley <OnyxAbove@users.noreply.github.com>
2024-06-28 09:55:14 -05:00
ad0ed09940 Compile Winutil 2024-06-28 14:54:54 +00:00
b9813f86b9 Moved OrcaSlicer to same category as PrusaSlicer (#2176) 2024-06-28 09:54:30 -05:00
2c5707e18f Update README.md so it gives people latest release. (#2177) 2024-06-28 09:53:52 -05:00
b646b139b8 Compile Winutil 2024-06-28 14:52:48 +00:00
5b369250b6 Update GPU Whitelist System (#2178)
* Compile Winutil

* Update Invoke-WinUtilGPU.ps1

* Re-Formate 'Invoke-WinUtilGPU.ps1' Private Function to be Shorter

* Refactor @blueswills changes

* Change Date to allow for easy merge

---------

Co-authored-by: Marterich <Marterich@users.noreply.github.com>
Co-authored-by: Mr.k <mineshtine28546271@gmail.com>
Co-authored-by: Martin Wiethan <47688561+Marterich@users.noreply.github.com>
2024-06-28 09:52:25 -05:00
9274c683a2 Compile Winutil 2024-06-28 14:50:24 +00:00
f559de3a8c Addition of Format Factory (#2183)
* Added formatfactory

* Remove Proton Drive from this PR

* Removes random space

---------

Co-authored-by: hubster-bot <hubsterbotbuisness@gmail.com>
Co-authored-by: Chris Titus <contact@christitus.com>
2024-06-28 09:49:57 -05:00
1e71020757 Compile Winutil 2024-06-28 14:48:21 +00:00
83ef15ccaf Fix 'Invoke-WPFPanelAutologin.ps1' Public Function (#2184) 2024-06-28 09:47:59 -05:00
c2938f9339 Compile Winutil 2024-06-28 14:46:59 +00:00
b2be290be2 DisableConsumerFeatures Tweak (#2187)
* Compile Winutil

* Remove ConsumerFeatures from Disable Telemetry and move it to seperate tweak

* Update winutil.ps1

---------

Co-authored-by: Marterich <Marterich@users.noreply.github.com>
2024-06-28 09:46:35 -05:00
b6723bebf0 Compile Winutil 2024-06-28 14:45:35 +00:00
42c1ef434c remove about redundancy (#2188) 2024-06-28 09:45:10 -05:00
a6ad919f16 remove duplicate of ditto (#2191)
* remove duplicate of ditto

* Update applications.json

---------

Co-authored-by: Roshan Studley <OnyxAbove@users.noreply.github.com>
Co-authored-by: Chris Titus <contact@christitus.com>
2024-06-28 09:44:48 -05:00
52fd667ef9 Compile Winutil 2024-06-28 14:43:13 +00:00
04130231ff Update Invoke-MicroWin-Helper.ps1 (#2192)
Added Try-Catch block for AppX package removal
2024-06-28 09:42:48 -05:00
a510b52acb Compile Winutil 2024-06-28 14:42:25 +00:00
48581d6aad Add Gitify to applications.json (#2193)
* add Gitify to applications.json

* changed link to website
2024-06-28 09:41:58 -05:00
c3a77e71ad Adobe Network Block Credit (#2194)
add credit in description
2024-06-28 09:41:38 -05:00
3d7b232248 Compile Winutil 2024-06-28 14:41:30 +00:00
b6d1dc50cb Add Mullvad VPN to applications.json (#2195) 2024-06-28 09:40:55 -05:00
f6af93afbd Add Overlay to Taskbaritem (#2196)
* Add taskbaritemoverlay

* remove old commented code
2024-06-28 09:40:38 -05:00
0c841f98e8 Compile Winutil 2024-06-28 14:40:12 +00:00
e4c44e4878 spell fix (#2197) 2024-06-28 09:39:47 -05:00
8a78c960ea Addition of Dropbox (#2200)
Co-authored-by: hubster-bot <hubsterbotbuisness@gmail.com>
2024-06-28 09:39:23 -05:00
cb3b64e195 Compile Winutil 2024-06-25 21:10:43 +00:00
83f93ceba4 Merge branch 'main' of https://github.com/ChrisTitusTech/winutil 2024-06-25 16:10:07 -05:00
9ac93fd2dc aveyo credit 2024-06-25 16:10:02 -05:00
13712b4c77 Compile Winutil 2024-06-25 20:55:56 +00:00
8d65f3bcf8 Added kicad (#2138)
Co-authored-by: hubster-bot <hubsterbotbuisness@gmail.com>
2024-06-25 15:55:33 -05:00
5c937efa9b Compile Winutil 2024-06-25 20:35:41 +00:00
ade1c3b830 Fixes Edge Removal (#2136)
* Fixes Edge Removal

* Update tweaks.json

add credit for edge removal

* Update tweaks.json

* Update tweaks.json

---------

Co-authored-by: hubster-bot <hubsterbotbuisness@gmail.com>
Co-authored-by: Chris Titus <contact@christitus.com>
2024-06-25 15:35:17 -05:00
8ded42a3ce Delete Un-used 'logs' Folder (#2135) 2024-06-25 15:25:46 -05:00
65b91330ed Compile Winutil 2024-06-25 20:15:43 +00:00
98f8b07951 Add rectangle & trigger to xaml (#2120)
- added rectangle with backgroundcolor
- added xName for Application ScrollViewer for identification
- added style to rectangle to show itself if horizontal & vertical scrollviewers are shown
2024-06-25 15:15:20 -05:00
acaad991a7 fix compile run always starting ps5 (#2165) 2024-06-25 15:05:19 -05:00
e00bc5f723 Remove Extra Tabs in 'applications.json' File (#2113) 2024-06-25 14:59:43 -05:00
a5fd8e355d Compile Winutil 2024-06-25 19:52:25 +00:00
8a2e1391e0 Remove unused Functions (#2102) 2024-06-25 14:51:49 -05:00
81c3722881 Compile Winutil 2024-06-25 19:49:16 +00:00
279e707a7a Removed Free File Sync because of Malware warning on choco repo (#2101) 2024-06-25 14:48:50 -05:00
e894613f68 Compile Winutil 2024-06-25 19:45:31 +00:00
be08211cdc lms order fix 2024-06-25 14:45:04 -05:00
118c3e3964 Compile Winutil 2024-06-25 19:40:49 +00:00
3f4e353d13 Merge branch 'main' of https://github.com/ChrisTitusTech/winutil 2024-06-25 14:40:05 -05:00
a09ae3e251 change lms to advanced 2024-06-25 14:39:56 -05:00
f9c09495fc Compile Winutil 2024-06-25 19:37:59 +00:00
de424ce636 Remove oosu essential tweak (#2099)
* Compile Winutil

* Remove the Essential OO Tweak Checkbox, Rename the OO Button and simplify the OO Script

* Remove The Entire 'Adding: Config *.cfg' Compilation Process

---------

Co-authored-by: Marterich <Marterich@users.noreply.github.com>
Co-authored-by: Mr.k <mineshtine28546271@gmail.com>
2024-06-25 14:37:34 -05:00
c28760e11a Compile Winutil 2024-06-25 19:34:53 +00:00
53090a6164 Merge branch 'main' of https://github.com/ChrisTitusTech/winutil 2024-06-25 14:34:00 -05:00
4661bf31ba update LMS vPro Tweak 2024-06-25 14:33:58 -05:00
5c687c98c6 Compile Winutil 2024-06-25 19:22:02 +00:00
495e08db05 Test (#1) (#2095)
* remove java 20

* remove java 20
2024-06-25 14:21:35 -05:00
a23d63613f Compile Winutil 2024-06-25 19:19:45 +00:00
acbabd4962 Added Plex Desktop along side Plex Media Server (#2091) 2024-06-25 14:19:20 -05:00
45a18b335f Compile Winutil 2024-06-25 19:15:55 +00:00
c23ea45e61 Remove WwanSvc Service From Manual Services Tweak (#2086)
* Compile Winutil

* Remove WwanSvc from manual Services tweak

---------

Co-authored-by: Marterich <Marterich@users.noreply.github.com>
2024-06-25 14:15:30 -05:00
1f01933cc0 Compile Winutil 2024-06-25 19:10:42 +00:00
4958c5efe9 Remove force install of Winget + Small improvements (#2083)
* Compile Winutil

* Add Run switch to Run winutil automatically after compilation

* Remove Winutil ForceInstall and unnecessary loading bar

---------

Co-authored-by: Marterich <Marterich@users.noreply.github.com>
2024-06-25 14:10:16 -05:00
5dd3bb492f Compile Winutil 2024-06-25 18:56:53 +00:00
9d6d21bd40 Rename app: ForceAutoHDR (#2081)
- Rename "GUI That Forces Auto HDR In Unsupported Games" to it's actual name (ForceAutoHDR) making it shorter & removing the horizontal scroll bar appearing from start. to feel cleaner.
2024-06-25 11:56:23 -07:00
ff80ef491a Compile Winutil 2024-06-25 18:54:42 +00:00
4bc54de8cd Hyperlinks to about section (#2080)
* Hyperlink to CustomDialogs

- added ability to add hyperlinks to CustomDialogs
- Added custom Dialog for every item in the About Section
- added custom link to see the commits of the day of the version the script is on
- added hover effect for linked items

* Fix

- change version link to match changes made to release
- removed date formatting as it is not needed anymore
- Renamed Github Link to "ChrisTitusTech/winutil" because you can't select the text but click on it to open the link directly so it is unnecessary

* fix opening link

- switched method to open hyperlinks
old: [System.Diagnostics.Process]::Start
new: Start-Process
2024-06-25 11:54:18 -07:00
864f063878 Compile Winutil 2024-06-20 19:27:25 +00:00
009ab5066c Create winutil.ps1 2024-06-20 12:27:03 -07:00
a735a02257 add manual trigger 2024-06-20 14:15:08 -07:00
360cc15b4b remove winutil tracking 2024-06-20 13:46:24 -07:00
1e906696f5 Compile Winutil 2024-06-20 18:35:38 +00:00
b6902c116a Add 'TeraCopy' and 'Ambie White Noise' Apps into 'applications.json' File (#2071)
* Add 'Ambie White Noise' App into 'applications.json' File

* Add 'TeraCopy' App into 'applications.json' File
2024-06-20 13:35:14 -05:00
8ace1a32bf Compile Winutil 2024-06-20 18:32:13 +00:00
4fcd3f5b2f Add 'croc' App to 'applications.json' File (#2070) 2024-06-20 13:31:47 -05:00
c942287172 Compile Winutil 2024-06-20 18:30:22 +00:00
7c58eb0e78 Add 'JoyToKey' and 'Wise Program Uninstaller' Apps into 'applications.json' File (#2069)
* Add 'Wise Program Uninstaller' App into 'applications.json' File

* Add 'JoyToKey' App into 'applications.json' File
2024-06-20 13:29:50 -05:00
9be030a4e2 Compile Winutil 2024-06-18 03:17:06 +00:00
4348f052c3 Update Invoke-WinUtilNumLock.ps1 (#2104) 2024-06-17 22:16:40 -05:00
ad81bab274 Update README.md 2024-06-10 23:57:44 -05:00
3a83203298 Update release.yaml 2024-06-10 23:52:52 -05:00
09b1e56967 Update release.yaml 2024-06-10 23:48:00 -05:00
af94adbabe Compile Winutil 2024-06-11 04:36:37 +00:00
a609f771c8 Fix the URL of an Example in 'README.md' File (#2063) 2024-06-10 23:36:11 -05:00
2b80e14bf9 Compile Cleanup and Tweak Fixes (#2062)
* Simple improvements to 'applications.json' File (#2043)

* Replace Spaces with Tabs in 'applications.json' File

* Correct 'AFFiNE' App Entry's Winget ID from 'AFFiNE.stable' to 'ToEverything.AFFiNE' in 'applications.json' File

* Compile Winutil

* Tweaks (#2051)

* Fix Numlock toggle (#2044)

* Fix Numlock at login

* Compile Winutil

---------

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

* Compile Winutil

* fix typo (#2041)

* Compile Winutil

* Update README.md

* * Fixed .getignore issues, it's it not enough to just add to gitgnore if it was already tracked by git it will be continued to be tracked by git, so you have to 'git rm' it
* Fixed ooshutup, there is no need to download configs, they are
  already compiled into winutil
+ Added a tweak to remove and disable Intel LMS, which have been
  identifed as a potential backdoor into Windows.

* Update winget.ps1

* + Added new release actions, every time we merge into main it will
  create a release by extracting the version fromwinutil.ps1 and setting
  all appropriate tags and versions

* fix merge

* add compile back in

* Update action to latest tools

* Ensure Compile is finished

---------

Co-authored-by: Chris Titus <contact@christitus.com>
Co-authored-by: ChrisTitusTech <ChrisTitusTech@users.noreply.github.com>
Co-authored-by: nikolan <94351312+nikolan123@users.noreply.github.com>
Co-authored-by: KonTy <KonTy@github.com>
Co-authored-by: Chris Titus <dfm.titus@gmail.com>

* Compile Winutil

* Rework Compile (#2061)

* Compile Winutil

---------

Co-authored-by: Mr.k <mineshtine28546271@gmail.com>
Co-authored-by: ChrisTitusTech <ChrisTitusTech@users.noreply.github.com>
Co-authored-by: KonTy <9524513+KonTy@users.noreply.github.com>
Co-authored-by: nikolan <94351312+nikolan123@users.noreply.github.com>
Co-authored-by: KonTy <KonTy@github.com>
Co-authored-by: Martin Wiethan <47688561+Marterich@users.noreply.github.com>
2024-06-10 15:24:12 -05:00
1325ef54b8 Compile Winutil 2024-06-10 20:19:12 +00:00
8a76641d20 Simplify 'Close Old Issues' Workflow by using 'actions/stale' GitHub Action (#2055) 2024-06-10 15:18:45 -05:00
3dca1ee43e Update README.md 2024-06-06 11:39:49 -05:00
7b6decb28a Compile Winutil 2024-06-06 16:35:38 +00:00
774b64b092 fix typo (#2041) 2024-06-06 11:35:12 -05:00
02ea93c80f Compile Winutil 2024-06-06 16:34:06 +00:00
5e10883547 Fix Numlock toggle (#2044)
* Fix Numlock at login

* Compile Winutil

---------

Co-authored-by: ChrisTitusTech <ChrisTitusTech@users.noreply.github.com>
2024-06-06 11:33:39 -05:00
a8af90a112 Test 2024 04 20 2 (#2030)
* Several Additions to 'applications.json' File (#1865)

* Add 'ditto' App to 'applications.json' File

* Add 'rdcman' App to 'applications.json' File

* Add 'mp3tag' App to 'applications.json' File

* Add 'fan control' App to 'applications.json' File

* Compile Winutil

* Add 'betterbird' App to 'applications.json' File (#1876)

* Compile Winutil

* Added fnm to the install menu (#1879)

* Compile Winutil

* Update applications.json (#1883)

* Compile Winutil

* Simple improvement: make WinUtil's Shortcut Function Do Less (Lazier) (#1903)

* Add Extra Comments to 'Invoke-WPFShortcut' to make the Logic a Bit Clearer

* Make The 'Invoke-WPFShortcut' Function Lazier for Added Efficiency and to not Display False Info whenever the User Cancels the 'Save As' Operation

* Compile Winutil

* Update applications.jsonremove Whatsapp because it is not being maintained and is named "outdated" when installed

* Update applications.json

remove Whatsapp because it is not being maintained and is named "outdated" when installed

* Compile Winutil

* Add option to remove Microsoft Copilot AI

* Add option to remove MS Copilot

* Update tweaks.json

* fix bugs

- remove appx caused a lockup
- also it looks like copilot will be the dependency for some built-in windows searches
Due to this I am changing it from a removal to a disable.

* Compile Winutil

* remove authy authy reached EOLhttps://help.twilio.com/articles/22771146070299-User-guide-End-of-Life-EOL-for-Twilio-Authy-Desktop-app

* remove authy 

authy reached EOL
https://help.twilio.com/articles/22771146070299-User-guide-End-of-Life-EOL-for-Twilio-Authy-Desktop-app

* Compile Winutil

* Update applications.jsonWindhawkThe customization marketplace for Windows programshttps://www.youtube.com/watch?v=ijG0nXnO2gQ

* Update applications.json

Windhawk
The customization marketplace for Windows programs

https://www.youtube.com/watch?v=ijG0nXnO2gQ

* add MSEdgeRedirect to applications.jsonperhaps a good "tweak" that could be added to Tweaks section down the road.  project is foss... could be   a good resource for someone with enough skills.in the meantime, does what it says it will, and does it well.

* add MSEdgeRedirect to applications.json

perhaps a good "tweak" that could be added to Tweaks section down the road.  project is foss... could be   a good resource for someone with enough skills.

in the meantime, does what it says it will, and does it well.

* Fix Winget Detection by doing Proper Error Handling using a Try-Catch

* Fix Winget Detection by doing Proper Error Handling using a Try-Catch

* Remove unnecessary Variable Initialization of 'wingetFullVersion'

Co-authored-by: Martin Wiethan <47688561+Marterich@users.noreply.github.com>

* Add Comments to be make The Logic a Lot More Clear to Follow and Understand

* Add Another Catch Statement with some 'Write-Warning' for Extra Information

* Remove StartAllBack + Adobe Debloater Tweak + Add Netbird

* remove StartAllBack

* Added Adobe Service Debloater

Sets Adobe Services to manual for people that sadly need to work with their apps.

* Add Netbird

https://netbird.io

* Compile Winutil

* Update applications.json

* Compile Winutil

* Added ability to import drivers

* Added ability to import drivers

Added the ability to import drivers from the active installation to the MicroWin image.

* Merge branch 'test-2024-04-20-2' into CW-MicroWin-240420

* Update inputXML.xaml

Removed warning because of a fluke

* Update Invoke-WPFMicrowin.ps1

Use the driver injection directory if it is specified and if the directory exists

* Merge branch 'test-2024-04-20-2' into CW-MicroWin-240420

* Merge branch 'test-2024-04-20-2' into CW-MicroWin-240420

* Compile Winutil

* Test 2024 04 20 2 | 7 additions to applications.json

* 7 additions to applications.json

Adds:

NetLimiter - https://www.netlimiter.com
OneCommander - https://www.onecommander.com
Borderless Gaming - https://github.com/Codeusa/Borderless-Gaming
Equalizer APO - https://sourceforge.net/projects/equalizerapo
FreeFileSync - https://freefilesync.org
Elgato Stream Deck - https://www.elgato.com/uk/en/s/downloads
Stardock Curtains - https://www.stardock.com/products/curtains

* Added Compact GUI support

Link: https://github.com/IridiumIO/CompactGUI

Since I wasn't sure what category to put it in, I chose Utilities.

* Added ExifCleaner support

Link: https://github.com/szTheory/exifcleaner

* Removed trial ware additions

Removed:

Net Limiter
One Commander
Elgato: Stream Deck
Stardock Curtains

* Compile Winutil

* add GlazeWM to applications.js (#1891)

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

* Compile Winutil

* Remove old Win7 game tweak

* Compile Winutil

* Test 1715290913 fix ugly ifs (#1957)

* fix nested ifs

* Compile Winutil

* fix syntax

* Compile Winutil

* Add Spotify and Choco Fallback

* Compile Winutil

---------

Co-authored-by: ty802 <ty802@users.noreply.github.com>
Co-authored-by: Chris Titus <contact@christitus.com>
Co-authored-by: ChrisTitusTech <ChrisTitusTech@users.noreply.github.com>

* Compile Winutil

* Fix incorrect url for jellyfin-media-player (#1912)

* Compile Winutil

* Update name and description for Element (#1930)

- Fixed the name and description for Element to reflect the name of the client, rather than the underlying technology-Matrix.

* Compile Winutil

* Optimize winget download speed (#1931)

* Optimize Winget Download Speed

* Add Downloading Message

* Compile Winutil

* Include OOSU Config in winutil.ps1 (#1932)

* Compile Winutil

* Only install choco if needed (#1943)

* Compile Winutil

* Install Choco if needed

* Compile Winutil

* Added ForceAutoHDR application to applications.json (#1951)

* Added ForceAutoHDR application to applications.json

Entry added on line 2642

* Update config/applications.json

Yep my bad I though games related tools should be under "Games"

Co-authored-by: Mr.k <mineshtine28546271@gmail.com>

---------

Co-authored-by: Mr.k <mineshtine28546271@gmail.com>

* Compile Winutil

* add Godot Engine to applications.json (#1933)

Added Godot Engine (https://godotengine.org/).

Godot Engine is a free, open-source 2D and 3D game engine with a focus on usability and flexibility.

* Compile Winutil

* Add GitKraken Client (#1927)

Adds development utility client for git repository management

* Compile Winutil

* Simplified Admin Check and Added Code Comments (#1938)

- Simplified the admin check by filtering the "WindowsIdentity" class for owner value and comparing against admin value
- Removed the need for an if admin check by moving its commands under the if not admin check.
- Added code comments

* Compile Winutil

* Main window handle (#1941)

Condition is comparing $proc.Id with [System.IntPtr]::Zero. The Id property is an integer, representing the process ID, and it's not directly related to window handles.
Instead, you should compare the MainWindowHandle property against [System.IntPtr]::Zero

* Compile Winutil

* Add SMPlayer to `applications.json` (#1948)

* Add SMPlayer to `applications.json`

* Fix formatting

---------

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

* Compile Winutil

* Adobe Network Blocking / Adobe Debloater / Tweak Fixes & more (#1954)

* Added Applications

AFFiNE: Open source Notion alternative with selfhostable option for syncing.

Wazuh Agent: Adgent for open-source security monitoring platform

* Change layout of toggles

Change the layout of the toggles to first show toggles and then the content (text).
- testet, works

* added snap related toggles

- disable snapping entirely (requires relogin of windows user)
- disable suggestion to snap other windows next to the snapped window

-tested

* Layouted Checkboxes, redesigned Toggles & renamed RDCMan

- Removed text inside toggle as it can be confusing because it sais "enable" while enabled and "disable" if disabled. The coloring should be enough to know in what state that setting is.
- without the text i could make it a little bit smaller while still letting it look good.
- Renamed "Remote Desktop Connection Manager (RDCMan)" to "RDCMan" because that name is shorter and also mostly used by the linked site.
- layouted checkboxes so they are not more left than the title and look tidy.

- tested

* Disable Acrobat auto-updates

- added script & undoscript to disable automatic downloads & installation of acrobat reader. The user gets a notified if there is an update available. I put some info to that inside the code

* edited AFFiNE description

* Tweak Adobe Debloater

-disable Adobe Desktop Service by getting ownership and renaming it.
- added AGMService service
- disable AGMService and AGSService entirely

* Block Adobe Network, Debloat Adobe & Compile

- fixes order of tweaks to always run "WPFTweaksRestorePoint" first. Before it was only the case because if was one of the first letter0s of the alphabet
- Fixed some stuff at Debloat Adobe & added Adobe Reader update stopper & "deactivated" Adobe Desktop Service.
- Added Blocking of Adobe Servers (as of your suggestion) to it's own Tweak.
- ran compile for testing & showing

* undo compilation

* added Note to AcrobatUpdates Management in Tweak "Debloat Adobe"

* Fix Right Click Method to use accurate names

* fixed my mistake in README

---------

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

* Compile Winutil

* Install flow rework (#1961)

* Install flow rework
Sperated Winget and Chocolatey setps when installing software add skip them when not needed

* fix uninstall

---------

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

* Compile Winutil

* Made disabling Fullscreen optimizations its own tweak (#1934)

* Removed "GameDVR_DXGIHonorFSEWindowsCompatible" modification from "Disable GameDVR" tweak
* Created advanced tweak "Disable fullscreen optimizations"
Disables fullscreen optimizations in all applications. (Which can cause problems with Color Management in Exclusive Fullscreen)

* Compile Winutil

* fix glaze

* Compile Winutil

* Fix Typo in the App Entry 'GlazeWM' in 'applications.json' File (#1958)

* Reorder Tweaks

* Fix ordering of Advanced Tweaks

* Compile Winutil

* Preset Update

* Organize Tweaks

* Compile Winutil

* Add the pixi package manager

* Add the pixi package manager

* Compile Winutil

* Add Arc Browser to the application list.

* Add Arc Browser to the application list.

* Compile Winutil

* Update applications.json - Added NDI toolsNDI, or Network Device Interface, is developed by Newtek. It enables the encoding, transmission, and reception of high-quality, low latency, video and audio over IP.https://ndi.video/Apologies if I'm not doing this right. I have zero experience using Github.

* Update applications.json - Added NDI tools

NDI, or Network Device Interface, is developed by Newtek. It enables the encoding, transmission, and reception of high-quality, low latency, video and audio over IP.

https://ndi.video/

Apologies if I'm not doing this right. I have zero experience using Github.

* Compile Winutil

* docs: minor spellchecking

* docs: minor spellchecking

* Fix scratch textbox bug

* Fix scratch textbox bug

* Fixing Microwin, no more errors and it creats image now without issues

* Compile Winutil

* Tweaks page overhaul:

* Toggle page overhaul:
* Modern toggles
+ Tweak: Disable Copilot
+ Tweak: Set hibernation to default (fix issue
  https://github.com/ChrisTitusTech/winutil/issues/1399)

* Merge branch 'test-2024-04-20-2' into TweaksToggles

* Compile Winutil

* Able to set the Default Terminal to Powershell 7 in Windows Terminal

* Run winget in open powershell window if possible and handle update

* add return code reference

* Seperated Logic for PS7 Profile change

* Add tweak

* Revert changes to last commit in Christitus Repo

* Merge pull request #1 from Marterich/PS7profile

Split Logic in different Script, Re-Add files with to reflect Chris's Repo

* Compile Winutil

* Update tweaks.json

* Compile Winutil

* Update tweaks.json

* Compile Winutil

* disables to disable

* Compile Winutil

* Update applications.json - Files, ditto, spotube, sagethumbs added & file converter choco variable fixed (#1996)

Added Files, ditto, spotube and sagethumbs.

Fixed File Converted by Adrien Allard with proper Choco variable.
"files">"file-conveter"
	"WPFInstallfileconverter": {
		"category": "Utilities",
		"choco": "file-converter",
		"content": "File-Converter",
		"description": "File Converter is a very simple tool which allows you to convert and compress one or several file(s) using the context menu in windows explorer.",
		"link": "https://file-converter.io/",
		"winget": "AdrienAllard.FileConverter"

* Compile Winutil

* Winget install return code handling & Window management (#1992)

* Run winget in open powershell window if possible and handle update

* add return code reference

* Compile Winutil

* Fix typo (#1965)

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

* Change voicemeeter URL to their newer site (#1967)

* Compile Winutil

* Change voicemeeter URL to newest site

* Compile Winutil

---------

Co-authored-by: Yuuh15 <Yuuh15@users.noreply.github.com>
Co-authored-by: Chris Titus <contact@christitus.com>

* Removed broken winget from applications.json (#1968)

The winget does not work for vencord. The installer downloads and then fails. (#1515)

* Compile Winutil

* Optimize Display Behaviour of Category Labels  (#1979)

* Hide Category title if empty

* Changed labels to a hashtable for faster access

* Extract WPFNamecreation to function, fix hide all if none match

* Compile Winutil

* ps1 ext add

* Update oosu10 config files and ad missing fileextension (#1980)

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

* Compile Winutil

* Fix fallback bug and merge choco uninstall rework (#1962)

* Implement Uninstall Command for Chocolatey, and Made a Starting Point on the Automatic Upgrade when a Package is Already Installed, similar to WinGet Install Command

* Add Extra Guards/Checks in 'Install-WinUtilProgramChoco' Private Function

* Fix fallback bug and merge choco uninstall rework

 - fixed return from wrong return from winget install
   Install-WinUtilProgramWinget
 - syntax/wording cleenup in Install-WinUtilProgramWinget

 - fix bugs in ty802/winutil#1 after merge

---------

Co-authored-by: Mr.k <mineshtine28546271@gmail.com>
Co-authored-by: Chris Titus <contact@christitus.com>

* Compile Winutil

* Update applications.json (#1976)

added qgis in right format

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

* Compile Winutil

* fix sagethumbs error

* Compile Winutil

---------

Co-authored-by: Mr.k <mineshtine28546271@gmail.com>
Co-authored-by: ChrisTitusTech <ChrisTitusTech@users.noreply.github.com>
Co-authored-by: Melloni <66322451+MelloniDev@users.noreply.github.com>
Co-authored-by: Justawildwolf <62820836+blusewill@users.noreply.github.com>
Co-authored-by: MyDrift <personal@mdiana.ch>
Co-authored-by: ModernTTY <165050080+ModernTTY@users.noreply.github.com>
Co-authored-by: Kasim <kasim@rafique.co.uk>
Co-authored-by: trenton4k <trenton4k@gmail.com>
Co-authored-by: Evan Galvin <evan.galvin@blissroms.org>
Co-authored-by: CodingWonders <101426328+CodingWonders@users.noreply.github.com>
Co-authored-by: misspent <78914154+misspent@users.noreply.github.com>
Co-authored-by: Federico Pulcino <78621373+FedeP14@users.noreply.github.com>
Co-authored-by: kian yamamoto <kiany@thatnameisnotavailable.com>
Co-authored-by: ty802 <ty802@users.noreply.github.com>
Co-authored-by: Callum Carmicheal <callumcarmicheal@gmail.com>
Co-authored-by: Rux <jonathan.e.rux@ruxunderscore.com>
Co-authored-by: Martin Wiethan <47688561+Marterich@users.noreply.github.com>
Co-authored-by: Andrew <121936658+7gxycn08@users.noreply.github.com>
Co-authored-by: Jelle <89023848+mrjbongo@users.noreply.github.com>
Co-authored-by: Marc Brooks <IDisposable@gmail.com>
Co-authored-by: Hayden Plumley <mrhaydendp@gmail.com>
Co-authored-by: Berrick Werkman <105836264+BKlaasWerkman@users.noreply.github.com>
Co-authored-by: o-iu <168581616+o-iu@users.noreply.github.com>
Co-authored-by: Luadih <50816896+Luadih@users.noreply.github.com>
Co-authored-by: Morten Enemark Lund <melund@gmail.com>
Co-authored-by: Pleș Alexandru <34649178+plesalex100@users.noreply.github.com>
Co-authored-by: tvrepairguy <170785918+tvrepairguy@users.noreply.github.com>
Co-authored-by: LazyStability <Klysmus@online.de>
Co-authored-by: KonTy <9524513+KonTy@users.noreply.github.com>
Co-authored-by: drabspirit <39843622+drabspirit@users.noreply.github.com>
Co-authored-by: Yuri Gabriel <97139700+Yuuh15@users.noreply.github.com>
Co-authored-by: Yuuh15 <Yuuh15@users.noreply.github.com>
Co-authored-by: Owen <78411938+Owen-3456@users.noreply.github.com>
Co-authored-by: Snoep <128747388+SnoepNFTs@users.noreply.github.com>
2024-06-04 22:27:27 -05:00
2354645b47 Fix ALL Program Installs (#1856)
* Compile Winutil

* Update Invoke-WPFOOSU

* Compile Winutil

* Modify Winget program installs

did a waterfall type installer. First trys systemwide at admin prompt, then user scope, then unelevated with no scope.
This should fix ALL program installs.

* Compile Winutil

---------

Co-authored-by: ChrisTitusTech <ChrisTitusTech@users.noreply.github.com>
2024-04-20 21:48:55 -05:00
9ef050442d Compile Winutil 2024-04-21 00:40:51 +00:00
c8ae4a812e Update Invoke-WPFOOSU 2024-04-20 19:40:30 -05:00
ad080f267e remove auto releases 2024-04-20 18:51:42 -05:00
fec5b68b10 Update release.yaml 2024-04-20 18:49:39 -05:00
57ff8b0188 Fix auto releases 2024-04-20 18:44:54 -05:00
9eceae6751 Fix Unit Tests and Official Releases (#1854)
* Update Unit Tests

* Update pester from 4 to 5

* Update compile and releases

* Working on making release tags

* Update release.yaml

* Compile Winutil

---------

Co-authored-by: ChrisTitusTech <ChrisTitusTech@users.noreply.github.com>
2024-04-20 18:30:38 -05:00
88a622c368 Test 2024 03 30 (#1852)
* Winget Sources fix (#1773)

- Sometimes, if Winget is installed under user-scope, the source isn't properly installed so that the Admin user can properly use Winget.
- This change installs the sources directly from the Winget CDN.
- Fixes #1771
https://github.com/microsoft/winget-cli/discussions/3258#discussioncomment-5951658

* Compile Winutil

* Finished conversion of DISM commands into DISM cmdlets (#1776)

* Continue conversion

Began 2nd stage of DISM command conversion. Almost all commands have been replaced by cmdlets

* Continue conversion (part 2)

Finished part 2 of DISM command to cmdlet conversion

* Add New Toggle to Disable/Enable Widgets found in Taskbar (#1768)

* Compile Winutil

* Fix Search Box Not Showing Apps/Tweaks Checkboxes When typing out Capital-Letters (#1770)

* Compile Winutil

* Add Microsoft Power Automate and Swift toolchain (#1774)

* Add power automate

* Add swift toolchain

* Compile Winutil

* Restart Explorer after Applying/Undoing Classic Right-Click Advance Tweak (#1778)

In general, I've added two lines of code to get the explorer process using 'Get-Process', then passed the process object into 'Stop-Process', Windows will automatically restart explorer, so there's no need to run a new process for explorer.

Note: restarting explorer in the UndoScript might not be necessary, as it works just fine without it, that's according to the tests done by the author of this commit.

* Compile Winutil

* editing edgeremoval.ps1 (#1834)

* editing edgeremoval.ps1

* Compile Winutil

---------

Co-authored-by: DaEpicR <DaEpicR@users.noreply.github.com>

* Compile Winutil

* Update Github Actions Auto Close Issues (#1801)

* Update Github Actions Auto Close Issues

* Add try-catch & Error Logging in Github Actions Auto Close Issues

* Add a Break Statement To Skip Checking The Remaining Labels of an Issue in Github Actions Auto Close Issues

* Add tweak (#1837)

* Compile Winutil

* Disable SCOOBE in WPFTweaksTele (#1832)

* Compile Winutil

* Fix 'Disable Storage Sense' Tweak in 'tweaks.json' File (#1843)

This was pointed out in GitHub issue https://github.com/ChrisTitusTech/winutil/issues/1838

* Compile Winutil

* Add 'UndoScript' to 'Enable End Task With Right Click' Tweak in 'tweaks.json' File (#1842)

* Compile Winutil

* - Changed version check for Winget to keep Winget updated to latest version and a couple formatting fixes. (#1829)

* Compile Winutil

* Add 'UndoScript' to 'Disable Hibernation' Tweak in 'teaks.json' File (#1799)

* Compile Winutil

* Added Requested Apps and Update Command Example in 'README.md' File (#1795)

* Add 'UltraVNC' App to 'application.json' File

* Update Command Example under sub-section 'Automation'

This Commit and its changes are related to issue #1767 , url for issue: https://github.com/ChrisTitusTech/winutil/issues/1767

* Add 'OrcaSlicer' App to 'application.json' File

* Add 'Tixati' App to 'application.json' File

* Add 'Unigram' App to 'application.json' File

* Add 'PDFgear' App to 'application.json' File

* Add 'Windows Firewall Control' App to 'application.json' File

* Add 'VistaSwitcher' App to 'application.json' File

* Add 'Windows Auto Dark Mode' App to 'application.json' File

* Add 'CapFrameX' App to 'application.json' File

* Update The Link for 'Unigram' App in 'application.json' File

* Add 'Magic Wormhole' App to 'application.json' File

* Compile Winutil

* Add apps from #250 (#1787)

* Add SQL management

* Add java runtimes

* Add azure data studio

* Compile Winutil

* Update inputXML.xaml (#1845)

- Added UseLayoutRounding="True"
- This may help fix some cases where text may look blurry on screen for some people.

* Compile Winutil

* A Temporary Fix to Compilation Program in 'Compile.ps1' Script (#1844)

For whatever reason, Compiling using the 'Compile.ps1' Script when there's a Single Quote, in the description of an App for example, it'll try "escaping" it by adding another Single Quote, which's kind of weird.

Before there was an Apostrophe, and it'll Compile into Question Marks, probably because the Compile Script doesn't know what an Apostrophe is, or it can't escape it (or for another reason, didn't dig deeper into it), in the end I've made it neither an Apostrophe nor a Single Quote, just the sentence without contractions (Without shortening by combining words).

* Compile Winutil

* Update Winget Install and Uninstall / Add NuGet and Microsoft.Winget.Client Modules (#1830)

* - Changed how WinGet installs and uninstalls are handled, by utilizing  and .

* Update Winget Install and Uninstall / Add NuGet and Microsoft.Winget.Client Modules
- Fixed commands for installing and uninstalling programs through WinGet.
- Added NuGet Package Providers (thanks @Marterich)
- Added Microsoft.WinGet.Client Module (thanks @Marterich)

* Compile Winutil

* Reopen #1747 PR (#1818)

* Add fxsound

* Add simplenote

* Add flow launcher

* Add CMake

* Add musescore

* Add jpegview

* Add explorer patcher

* Add lockhunter

* Add BRU

* Add spacesniffer

* Add Quick Look

* Add harmonoid

* Add revolt

* Add link shell extensions

* Add WizFile

* Add HWMonitor

* Add XnView

* Add tabby.sh

* Add signalRGB

* Add autoruns

* Fix typo for 'Autoruns' App in 'applications.json' File

* Remove 'Explorer Patcher' App in 'applications.json' File

as mentioned by Chris's Feedback on https://github.com/ChrisTitusTech/winutil/pull/1818 PR, Explorer Patcher is known to cause Stability Related Issues to Users who use it, removing it from the Applications List would be a better/wiser decision.

* Re-Add 'fxsound' App after Resolving Merge Conflict

* Re-Add 'tabby.sh' App after Resolving Merge Conflict

---------

Co-authored-by: ModernTTY <165050080+ModernTTY@users.noreply.github.com>

* Compile Winutil

* Fix Github Actions Auto Close Issues not leaving Issues Open (#1847)

* Compile Winutil

* Fix Robocopy Not Copying for Users who have a Space in their name (#1851)

This was pointed out in https://github.com/ChrisTitusTech/winutil/issues/1848 issue

* Compile Winutil

* bug fixes from bad pr

* Compile Winutil

* Better JSON Parsing for Compile Script!! (#1850)

* Better JSON Parsing for Compile Script!!

Rendering Special XML Character should be possible when parsing json files that have some of these special characters, and without the need to worry about them. Try these changes to see what will be affected, and what won't be.

* Undo #1844 PR Changes

The problem that #1844 PR Tried to resolve temporarly, should now be fixed permanently with the previous changes to 'Compile.ps1' Script.

* Compile Winutil

* OO Shutup 10 Tweaks revamped (#1828)

* Add new OOSU10 configs

* Removed old OOSU config, added install and uninstall calls for the new conrfigs

* change filenames, centralize logic in Invoke-WPFOOSU

* Change Config Paths to the CTT main repo

* removed whitespace

* Add -Wait to avoid race condition when OOSU is run together with temp file cleanup

---------

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

* Compile Winutil

* Add catch for restore point errors

* Compile Winutil

---------

Co-authored-by: Rux <jonathan.e.rux@ruxunderscore.com>
Co-authored-by: ChrisTitusTech <ChrisTitusTech@users.noreply.github.com>
Co-authored-by: CodingWonders <101426328+CodingWonders@users.noreply.github.com>
Co-authored-by: Mr.k <mineshtine28546271@gmail.com>
Co-authored-by: ModernTTY <165050080+ModernTTY@users.noreply.github.com>
Co-authored-by: Straight <107145976+DaEpicR@users.noreply.github.com>
Co-authored-by: DaEpicR <DaEpicR@users.noreply.github.com>
Co-authored-by: Consejos Tecnológicos de Edu <139326298+lCTdE@users.noreply.github.com>
Co-authored-by: Martin Wiethan <47688561+Marterich@users.noreply.github.com>
2024-04-20 16:38:43 -05:00
4a7c8a35bf Sacrifice to the AV Gods test 24-03-28 branch (#1766)
* Remove the Non-existing 'WPFMiscTweaksPower' found in the 'preset.json' File (#1763)

* Compile Winutil

* Update of Test-WinUtilPackageManager and Install-WinUtilWinget (#1757)

* Updated Install-WinUtilWinget and Test-WinUtilPackageManager

- Updated Test-WinUtilPackageManager to better handle the -Winget param and return a more verbose status.
- Moved many of the "is installed"/"is not installed" outputs to the Test-WinUtilPackageManager function.
- Changed Install-WinUtilWinget to use the GitHub install method as the primary method, and on error use the Chocolatey install method.
- Updated various functions to use the Test-WinUtilPackageManager function.

* Update Install-WinUtilWinget.ps1

- Changed handling of Test-WinUtilPackageManager in Install-WinUtilWinget, to prevent Test-WinUtilPackageManager from printing out to terminal twice.

* Compile Winutil

* Update Paint.NET Winget name. (#1758)

Paint.NET's winget package name changed.

* Compile Winutil

* Fixed Programms names and urls and github actions (#1759)

* Compile Winutil

* trying to fix github actions

* Update applications.json

* Compile Winutil

* updated winget package PaintDotNet

* Compile Winutil

* Update functions.Tests.ps1

* fixing typos in unittesting

* fixed the issue that made pester not to work

* Compile Winutil

* found a bug and fixed it

* Compile Winutil

---------

Co-authored-by: YusufKhalifadev <YusufKhalifadev@users.noreply.github.com>

* Detect free space of installation drive and compare it with the ISO size and delete temporary MicroWin files from previous runs (#1761)

* Detect free space of installation drive

Compare the size of the ISO file with the free space of the installation drive (or the drive containing the User files) and, if the free size is below a certain threshold, the script will throw either a warning or an error

* Delete temporary files from previous runs

* Add Simple Feature to keep the Service Startup upon Applying Service Tweaks, but not when Undoing it (#1760)

Added a new parameter that gives freedom of control on whether to disable this feature or not, and of course the simple feature in question.

The way it works is by Getting the service using its name, and see if the Startup Value of this service is equal to the default type that Windows comes with it, if not (The User has changed it in the past), then WinUtil won't change it by default (The KeepServiceStartup is true by default), this is a more desirable behaviour when compared to how it previously worked.

These changes were tested by the Author of this commit, Please read the commit patches for exact details on the changes.

* Compile Winutil

* Sacrifice to the AV Gods

Remove Self Elevation and Disable UAC

---------

Co-authored-by: Mr.k <mineshtine28546271@gmail.com>
Co-authored-by: ChrisTitusTech <ChrisTitusTech@users.noreply.github.com>
Co-authored-by: Rux <jonathan.e.rux@ruxunderscore.com>
Co-authored-by: YusufKhalifadev <yusufkhalifadev@gmail.com>
Co-authored-by: YusufKhalifadev <YusufKhalifadev@users.noreply.github.com>
Co-authored-by: CodingWonders <101426328+CodingWonders@users.noreply.github.com>
2024-03-30 11:46:29 -05:00
c3b12e89f8 Test 2024 03 21 (#1755)
* Fix unattended answer file woes for MicroWin (#1724)

* Update applications.json

Fake app add made by linux fanboy

* Compile Winutil

* Update files

- Add detections for whether the image to be processed by MicroWin is Windows 10 or later
- Add procedure to clear the indexes ComboBox (WinForms term) every time an ISO is specified

* Update screen-install.png (#1464)

* Compile Winutil

* applications.jsonAdded Foxit Reader app and updated Foxit Editor to show the difference.

* applications.json

Added Foxit Reader app and updated Foxit Editor to show the difference.

* Compile Winutil

* Fix Broken Link and add syncthingtray (#1508)

* Compile Winutil

* Remove Nano-Removed bugged Nano package for now

* Remove Nano

-Removed bugged Nano package for now

* Compile Winutil

* tweaks and fetures tabs clean up automation from inputXML.xaml

* tweaks and fetures tabs clean up automation from inputXML.xaml

* fixed some commas in tweaks.json file

* recompile

* Update tweaks.json

* Compile Winutil

* Choosing Alternate Scartch Path and Busy Messages

* Choosing Alternate Scartch Path and Busy Messages

* Change Selected index to be pro

* Compile Winutil

* Improve detection for Professional editions

* Update files

Updated the Test-CompatibleImage function to compare against a desired version, which is useful for determining if the Specialize pass needs to be added to the unattended answer file

* Automatic conversion of ESD files

Automatically convert the install.esd file from installation media into a WIM file that can be mounted, then delete the ESD file

* pull workflow github actions (#1716)

* Update close-old-issues.yaml

* Compile Winutil

* Update close-old-issues.yaml

* Update close-old-issues.yaml

* Update close-old-issues.yaml

* Compile Winutil

---------

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

* Update files

Force unattended answer file to use UTF-8 encoding

---------

Co-authored-by: Chris Titus <dfm.titus@gmail.com>
Co-authored-by: ChrisTitusTech <ChrisTitusTech@users.noreply.github.com>
Co-authored-by: Samq64 <81489795+Samq64@users.noreply.github.com>
Co-authored-by: Chris Titus <contact@christitus.com>
Co-authored-by: LoopTJ <34551682+LoopTJ@users.noreply.github.com>
Co-authored-by: Roc Wang <rocwang911@gmail.com>
Co-authored-by: Jes Herring <123990927+jesjess243@users.noreply.github.com>
Co-authored-by: ogfrm <96927197+ogfrm@users.noreply.github.com>
Co-authored-by: LeeDowA <157072913+LeeDowA@users.noreply.github.com>

* add tightvnc to address issue #1718 (#1721)

* Compile Winutil

* Add 'FireFox ESR' and 'lightshot' Apps to 'application.json' File (#1720)

* Add 'FireFox ESR' and 'lightshot' Apps to 'application.json' File

* Update 'FireFox ESR' description

* Compile Winutil

* Fix typo in the Description of 'Get-Oscdimg.ps1' private function (#1743)

* Compile Winutil

* IPv6 update (#1739)

* Compile Winutil

* Change ipv6 disable method

* Compile Winutil

* IPv6 + Teredo

* Compile Winutil

* IPv6 registry

* Compile Winutil

* Update Winutil

* Compile Winutil

* Fix to original command

* Compile Winutil

---------

Co-authored-by: Joanty24 <Joanty24@users.noreply.github.com>
Co-authored-by: Chris Titus <contact@christitus.com>

* Compile Winutil

* Implement New Winget Install Method (#1738)

- Removed Get-LatestHash from Install-WinUtilWinget.ps1, replaced by Get-WinUtilWingetLatest.ps1.
- Added new Winget Install method in case of choco failing to install. Environment refresh line included.
- Get-WinUtilWingetPrerequisites added: Downloads the prerequisites required for the latest version of Winget.
- Get-WinUtilWingetLatest added: Uses the GitHub API to find the latest version of Winget and download it along with the accompanied License1.xml file.

Fixes:
- Removed --scope=machine from winget install command in Install-WinUtilProgramWinget. Non-UWP Apps fail to install if scope is set to machine. Error code: 0x80070005. More information commented in file.

* Compile Winutil

* Change order for easier launch in README and fix outdated info (#1732)

* Update README.md

* Update README.md

---------

Co-authored-by: NewCodingAI <165050080+NewCodingAI@users.noreply.github.com>

* Upgrade Fix in #1181 (#1730)

* Compile Winutil

* Fixed Ventoy drive copy typo and began conversion of DISM commands into DISM cmdlets (#1727)

* Fixed Ventoy drive copy typo

* DISM cmdlet Update (Part 1)

Began replacing basic DISM commands with cmdlets from the DISM module.

This change only affects the mount, unmount, and export operations. All other operations still use DISM

---------

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

* Compile Winutil

* Fixed issue #1736 and #1749 (#1750)

* Compile Winutil

* Update Invoke-WinUtilGPU.ps1 (#1753)

- This should be a proper fix to Invoke-WinUtilGPU.ps1. Tested in Win10 and Win11.

* Compile Winutil

* Update .gitignore

---------

Co-authored-by: CodingWonders <101426328+CodingWonders@users.noreply.github.com>
Co-authored-by: ChrisTitusTech <ChrisTitusTech@users.noreply.github.com>
Co-authored-by: Samq64 <81489795+Samq64@users.noreply.github.com>
Co-authored-by: LoopTJ <34551682+LoopTJ@users.noreply.github.com>
Co-authored-by: Roc Wang <rocwang911@gmail.com>
Co-authored-by: Jes Herring <123990927+jesjess243@users.noreply.github.com>
Co-authored-by: ogfrm <96927197+ogfrm@users.noreply.github.com>
Co-authored-by: LeeDowA <157072913+LeeDowA@users.noreply.github.com>
Co-authored-by: Peter Gallwas <peg0252@arastudent.ac.nz>
Co-authored-by: Mr.k <mineshtine28546271@gmail.com>
Co-authored-by: Joan Solana Raduà <joansolana@proton.me>
Co-authored-by: Joanty24 <Joanty24@users.noreply.github.com>
Co-authored-by: Rux <jonathan.e.rux@gmail.com>
Co-authored-by: ModernTTY <165050080+ModernTTY@users.noreply.github.com>
Co-authored-by: NewCodingAI <165050080+NewCodingAI@users.noreply.github.com>
Co-authored-by: Justawildwolf <62820836+blusewill@users.noreply.github.com>
Co-authored-by: YusufKhalifadev <154465051+YusufKhalifadev@users.noreply.github.com>
Co-authored-by: Rux <jonathan.e.rux@ruxunderscore.com>
2024-03-28 14:50:29 -07:00
f776717f67 Update .gitignore 2024-03-28 16:45:50 -07:00
54a575274d Test 2024 03 21 (#1748)
* Fix unattended answer file woes for MicroWin (#1724)

* Update applications.json

Fake app add made by linux fanboy

* Compile Winutil

* Update files

- Add detections for whether the image to be processed by MicroWin is Windows 10 or later
- Add procedure to clear the indexes ComboBox (WinForms term) every time an ISO is specified

* Update screen-install.png (#1464)

* Compile Winutil

* applications.jsonAdded Foxit Reader app and updated Foxit Editor to show the difference.

* applications.json

Added Foxit Reader app and updated Foxit Editor to show the difference.

* Compile Winutil

* Fix Broken Link and add syncthingtray (#1508)

* Compile Winutil

* Remove Nano-Removed bugged Nano package for now

* Remove Nano

-Removed bugged Nano package for now

* Compile Winutil

* tweaks and fetures tabs clean up automation from inputXML.xaml

* tweaks and fetures tabs clean up automation from inputXML.xaml

* fixed some commas in tweaks.json file

* recompile

* Update tweaks.json

* Compile Winutil

* Choosing Alternate Scartch Path and Busy Messages

* Choosing Alternate Scartch Path and Busy Messages

* Change Selected index to be pro

* Compile Winutil

* Improve detection for Professional editions

* Update files

Updated the Test-CompatibleImage function to compare against a desired version, which is useful for determining if the Specialize pass needs to be added to the unattended answer file

* Automatic conversion of ESD files

Automatically convert the install.esd file from installation media into a WIM file that can be mounted, then delete the ESD file

* pull workflow github actions (#1716)

* Update close-old-issues.yaml

* Compile Winutil

* Update close-old-issues.yaml

* Update close-old-issues.yaml

* Update close-old-issues.yaml

* Compile Winutil

---------

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

* Update files

Force unattended answer file to use UTF-8 encoding

---------

Co-authored-by: Chris Titus <dfm.titus@gmail.com>
Co-authored-by: ChrisTitusTech <ChrisTitusTech@users.noreply.github.com>
Co-authored-by: Samq64 <81489795+Samq64@users.noreply.github.com>
Co-authored-by: Chris Titus <contact@christitus.com>
Co-authored-by: LoopTJ <34551682+LoopTJ@users.noreply.github.com>
Co-authored-by: Roc Wang <rocwang911@gmail.com>
Co-authored-by: Jes Herring <123990927+jesjess243@users.noreply.github.com>
Co-authored-by: ogfrm <96927197+ogfrm@users.noreply.github.com>
Co-authored-by: LeeDowA <157072913+LeeDowA@users.noreply.github.com>

* add tightvnc to address issue #1718 (#1721)

* Compile Winutil

* Add 'FireFox ESR' and 'lightshot' Apps to 'application.json' File (#1720)

* Add 'FireFox ESR' and 'lightshot' Apps to 'application.json' File

* Update 'FireFox ESR' description

* Compile Winutil

* Fix typo in the Description of 'Get-Oscdimg.ps1' private function (#1743)

* Compile Winutil

* IPv6 update (#1739)

* Compile Winutil

* Change ipv6 disable method

* Compile Winutil

* IPv6 + Teredo

* Compile Winutil

* IPv6 registry

* Compile Winutil

* Update Winutil

* Compile Winutil

* Fix to original command

* Compile Winutil

---------

Co-authored-by: Joanty24 <Joanty24@users.noreply.github.com>
Co-authored-by: Chris Titus <contact@christitus.com>

* Compile Winutil

* Implement New Winget Install Method (#1738)

- Removed Get-LatestHash from Install-WinUtilWinget.ps1, replaced by Get-WinUtilWingetLatest.ps1.
- Added new Winget Install method in case of choco failing to install. Environment refresh line included.
- Get-WinUtilWingetPrerequisites added: Downloads the prerequisites required for the latest version of Winget.
- Get-WinUtilWingetLatest added: Uses the GitHub API to find the latest version of Winget and download it along with the accompanied License1.xml file.

Fixes:
- Removed --scope=machine from winget install command in Install-WinUtilProgramWinget. Non-UWP Apps fail to install if scope is set to machine. Error code: 0x80070005. More information commented in file.

* Compile Winutil

* Change order for easier launch in README and fix outdated info (#1732)

* Update README.md

* Update README.md

---------

Co-authored-by: NewCodingAI <165050080+NewCodingAI@users.noreply.github.com>

* Upgrade Fix in #1181 (#1730)

* Compile Winutil

* Fixed Ventoy drive copy typo and began conversion of DISM commands into DISM cmdlets (#1727)

* Fixed Ventoy drive copy typo

* DISM cmdlet Update (Part 1)

Began replacing basic DISM commands with cmdlets from the DISM module.

This change only affects the mount, unmount, and export operations. All other operations still use DISM

---------

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

* Compile Winutil

---------

Co-authored-by: CodingWonders <101426328+CodingWonders@users.noreply.github.com>
Co-authored-by: ChrisTitusTech <ChrisTitusTech@users.noreply.github.com>
Co-authored-by: Samq64 <81489795+Samq64@users.noreply.github.com>
Co-authored-by: LoopTJ <34551682+LoopTJ@users.noreply.github.com>
Co-authored-by: Roc Wang <rocwang911@gmail.com>
Co-authored-by: Jes Herring <123990927+jesjess243@users.noreply.github.com>
Co-authored-by: ogfrm <96927197+ogfrm@users.noreply.github.com>
Co-authored-by: LeeDowA <157072913+LeeDowA@users.noreply.github.com>
Co-authored-by: Peter Gallwas <peg0252@arastudent.ac.nz>
Co-authored-by: Mr.k <mineshtine28546271@gmail.com>
Co-authored-by: Joan Solana Raduà <joansolana@proton.me>
Co-authored-by: Joanty24 <Joanty24@users.noreply.github.com>
Co-authored-by: Rux <jonathan.e.rux@gmail.com>
Co-authored-by: ModernTTY <165050080+ModernTTY@users.noreply.github.com>
Co-authored-by: NewCodingAI <165050080+NewCodingAI@users.noreply.github.com>
Co-authored-by: Justawildwolf <62820836+blusewill@users.noreply.github.com>
2024-03-28 12:39:23 -07:00
5cd75c0ed6 Test 2024 02 07 refactor noapps (#1717)
* pull workflow github actions (#1716)

* Update close-old-issues.yaml

* Compile Winutil

* Update close-old-issues.yaml

* Update close-old-issues.yaml

* Update close-old-issues.yaml

* Compile Winutil

---------

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

* Improve unattended answer file creation for MicroWin and add automatic conversion of ESD files (#1595)

* Update applications.json

Fake app add made by linux fanboy

* Compile Winutil

* Update files

- Add detections for whether the image to be processed by MicroWin is Windows 10 or later
- Add procedure to clear the indexes ComboBox (WinForms term) every time an ISO is specified

* Update screen-install.png (#1464)

* Compile Winutil

* applications.jsonAdded Foxit Reader app and updated Foxit Editor to show the difference.

* applications.json

Added Foxit Reader app and updated Foxit Editor to show the difference.

* Compile Winutil

* Fix Broken Link and add syncthingtray (#1508)

* Compile Winutil

* Remove Nano-Removed bugged Nano package for now

* Remove Nano

-Removed bugged Nano package for now

* Compile Winutil

* tweaks and fetures tabs clean up automation from inputXML.xaml

* tweaks and fetures tabs clean up automation from inputXML.xaml

* fixed some commas in tweaks.json file

* recompile

* Update tweaks.json

* Compile Winutil

* Choosing Alternate Scartch Path and Busy Messages

* Choosing Alternate Scartch Path and Busy Messages

* Change Selected index to be pro

* Compile Winutil

* Improve detection for Professional editions

* Update files

Updated the Test-CompatibleImage function to compare against a desired version, which is useful for determining if the Specialize pass needs to be added to the unattended answer file

* Automatic conversion of ESD files

Automatically convert the install.esd file from installation media into a WIM file that can be mounted, then delete the ESD file

---------

Co-authored-by: Chris Titus <dfm.titus@gmail.com>
Co-authored-by: ChrisTitusTech <ChrisTitusTech@users.noreply.github.com>
Co-authored-by: Samq64 <81489795+Samq64@users.noreply.github.com>
Co-authored-by: Chris Titus <contact@christitus.com>
Co-authored-by: LoopTJ <34551682+LoopTJ@users.noreply.github.com>
Co-authored-by: Roc Wang <rocwang911@gmail.com>
Co-authored-by: Jes Herring <123990927+jesjess243@users.noreply.github.com>
Co-authored-by: ogfrm <96927197+ogfrm@users.noreply.github.com>
Co-authored-by: LeeDowA <157072913+LeeDowA@users.noreply.github.com>

* Compile Winutil

* Change the Theme Configuration for low spec. (#1643)

* Update close-old-issues.yaml

* Compile Winutil

* Update close-old-issues.yaml

* Update close-old-issues.yaml

* Update close-old-issues.yaml

* Added New Dark Themes for Low Spec PC and added GPU Detection

* Compile Winutil

---------

Co-authored-by: Chris Titus <dfm.titus@gmail.com>
Co-authored-by: ChrisTitusTech <ChrisTitusTech@users.noreply.github.com>
Co-authored-by: Chris Titus <contact@christitus.com>

* Compile Winutil

* Fix OneDrive Remove Tweak not cleaning-up 'OneDrive' Folder under the 'localappdata' Environment Folder (#1654)

Besides the 'OneDrive' Folder found in 'Microsoft' Folder in 'localappdata', there's Yet Another Cache Folder that OneDrive uses, which's found under the 'localappdata' Environment Folder, read the commit patches for exact details.

* Compile Winutil

* MicroWin - Make the New Shortcut have 'Run as administrator' property on (#1659)

The added lines of PowerShell Code was taken from public function 'Invoke-WPFShortcut.ps1' under the 'functions/public' Folder.

* Compile Winutil

* Fixing an issue related to winget install & Improving winget uninstall command (#1662)

* Add the argument '--accept-source-agreements' to the Uninstall command of Winget

Added '--accept-source-agreements' to insure that the Package Uninstall process is completely unattended.

* Improve the Wording of the 'WPFInstall' function and 'inputXML.xaml' file

* Compile Winutil

* Handle preview versions of winget (#1682)

* Update close-old-issues.yaml

* Compile Winutil

* Update close-old-issues.yaml

* Update close-old-issues.yaml

* Update close-old-issues.yaml

* Added compatibility with preview versions of Winget

* Update winutil.ps1

* Update Test-WinUtilPackageManager.ps1

* Document Formatting

---------

Co-authored-by: Chris Titus <dfm.titus@gmail.com>
Co-authored-by: ChrisTitusTech <ChrisTitusTech@users.noreply.github.com>
Co-authored-by: Chris Titus <contact@christitus.com>

* Compile Winutil

* fix typo in applications (#1683)

* Compile Winutil

* fix DevToys winget id (#1685) (#1689)

* Compile Winutil

* fix DevToys winget id (#1685)

DevToys doesn't have a proper winget id unlike other programs

* Compile Winutil

* fix case

* Compile Winutil

* Compile Winutil

---------

Co-authored-by: K-Saikrishnan <K-Saikrishnan@users.noreply.github.com>
Co-authored-by: Chris Titus <contact@christitus.com>
Co-authored-by: ChrisTitusTech <ChrisTitusTech@users.noreply.github.com>

* Fixed and improved software URLs and updated names based on creator formatting (#1704)

Co-authored-by: Tyler Robb <tylerrobb@users.noreply.github.com>

* Compile Winutil

---------

Co-authored-by: ChrisTitusTech <ChrisTitusTech@users.noreply.github.com>
Co-authored-by: CodingWonders <101426328+CodingWonders@users.noreply.github.com>
Co-authored-by: Samq64 <81489795+Samq64@users.noreply.github.com>
Co-authored-by: LoopTJ <34551682+LoopTJ@users.noreply.github.com>
Co-authored-by: Roc Wang <rocwang911@gmail.com>
Co-authored-by: Jes Herring <123990927+jesjess243@users.noreply.github.com>
Co-authored-by: ogfrm <96927197+ogfrm@users.noreply.github.com>
Co-authored-by: LeeDowA <157072913+LeeDowA@users.noreply.github.com>
Co-authored-by: Justawildwolf <62820836+blusewill@users.noreply.github.com>
Co-authored-by: Mr.k <mineshtine28546271@gmail.com>
Co-authored-by: Martin Wiethan <47688561+Marterich@users.noreply.github.com>
Co-authored-by: glorp <152878702+choccyy-milk@users.noreply.github.com>
Co-authored-by: Saikrishnan K <53394202+K-Saikrishnan@users.noreply.github.com>
Co-authored-by: K-Saikrishnan <K-Saikrishnan@users.noreply.github.com>
Co-authored-by: Tyler Robb <6801620+tylerrobb@users.noreply.github.com>
Co-authored-by: Tyler Robb <tylerrobb@users.noreply.github.com>
2024-03-21 16:23:24 -07:00
6e7c5336c2 Compile Winutil 2024-03-21 22:02:18 +00:00
ca9c764cd7 Merge branch 'test-2024-02-07-refactor-noapps' into main 2024-03-21 15:01:54 -07:00
23af79852a Compile Winutil 2024-03-21 21:59:05 +00:00
7bfcd7cb25 compile refactor 2024-03-21 16:58:40 -07:00
4de1ac39ef Compile Winutil 2024-02-22 01:32:49 +00:00
4ac5b79fc8 Improve handling of Adobe's CC Cleaner tool (#1635)
* Update close-old-issues.yaml

* Compile Winutil

* Update close-old-issues.yaml

* Update close-old-issues.yaml

* Update close-old-issues.yaml

* Improve handling of Adobe's CC Cleaner tool

This PR implements a try-catch-finally struct to do a better handling of Adobe's Creative Cloud Cleaner tool downloading and running of such program.

This will allow to see any errors that occurs if the URL changes, the tool fails to run, or anything else.

I also have moved the cleaning up process to the finally part of the structure, as it makes the most sense.

This tries to fix or sanitize the issue #1563.

---------

Co-authored-by: Chris Titus <dfm.titus@gmail.com>
Co-authored-by: ChrisTitusTech <ChrisTitusTech@users.noreply.github.com>
Co-authored-by: Chris Titus <contact@christitus.com>
2024-02-21 19:32:14 -06:00
420f37f205 Compile Winutil 2024-02-22 01:28:48 +00:00
c6c3f0cd03 changed link to correct project (#1619) 2024-02-21 19:28:23 -06:00
dd2e4fb337 Merge branch 'test-2024-02-07-refactor-noapps' into main 2024-02-21 11:12:29 -06:00
31c6622926 Update close-old-issues.yaml 2024-02-19 21:43:49 -06:00
e745d798b1 Update close-old-issues.yaml 2024-02-19 18:43:44 -06:00
a29364984b Merge branch 'main' of https://github.com/ChrisTitusTech/winutil 2024-02-19 18:39:32 -06:00
07eeed310b Update close-old-issues.yaml 2024-02-19 18:39:24 -06:00
8e00077e50 Compile Winutil 2024-02-20 00:32:36 +00:00
fc505872d2 Update close-old-issues.yaml 2024-02-19 18:32:13 -06:00
245 changed files with 22065 additions and 18812 deletions

11
.gitattributes vendored
View File

@ -1,3 +1,12 @@
* text=auto
*.ps1 text eol=crlf
*.json text eol=crlf
*.cfg text eol=crlf
*.png binary
*.jpg binary
config/* diff
config/applications.json diff
*.json diff
*.json diff

View File

@ -4,24 +4,23 @@ about: Create a report to help us improve
title: ''
labels: ''
assignees: ''
---
**Describe the bug**
## Describe the bug
A clear and concise description of what the bug is.
**To Reproduce**
## To Reproduce
Steps to reproduce the behavior:
1. Go to '...'
2. Click on '....'
3. Scroll down to '....'
4. See error
**Expected behavior**
## Expected behavior
A clear and concise description of what you expected to happen.
**Screenshots**
## Screenshots
If applicable, add screenshots to help explain your problem.
**Additional context**
## Additional context
Add any other context about the problem here.

36
.github/PULL_REQUEST_TEMPLATE.md vendored Normal file
View File

@ -0,0 +1,36 @@
# Pull Request
## Title
[Provide a succinct and descriptive title for the pull request.]
## Type of Change
- [ ] New feature
- [ ] Bug fix
- [ ] Documentation update
- [ ] Refactoring
- [ ] Hotfix
- [ ] Security patch
- [ ] UI/UX improvement
## Description
[Provide a detailed explanation of the changes you have made. Include the reasons behind these changes and any relevant context. Link any related issues.]
## Testing
[Detail the testing you have performed to ensure that these changes function as intended. Include information about any added tests.]
## Impact
[Discuss the impact of your changes on the project. This might include effects on performance, new dependencies, or changes in behaviour.]
## Issue related to PR
[What issue/discussion is related to this PR (if any)]
- Resolves #
## Additional Information
[Any additional information that reviewers should be aware of.]
## Checklist
- [ ] My code adheres to the coding and style guidelines of the project.
- [ ] I have performed a self-review of my own code.
- [ ] I have commented my code, particularly in hard-to-understand areas.
- [ ] I have made corresponding changes to the documentation.
- [ ] My changes generate no errors/warnings/merge conflicts.

11
.github/dependabot.yml vendored Normal file
View File

@ -0,0 +1,11 @@
version: 2
updates:
- package-ecosystem: "github-actions"
directory: "/"
schedule:
interval: "weekly"
ignore:
- dependency-name: "actions/stale"
versions: '>= 9'
- dependency-name: "actions/setup-python"
versions: '> 4'

View File

@ -0,0 +1,43 @@
name: Close Discussion on PR Merge
on:
pull_request:
types: [closed]
jobs:
closeDiscussion:
runs-on: ubuntu-latest
steps:
- name: Checkout repository
uses: actions/checkout@v2
- name: Check if PR was merged
if: github.event.pull_request.merged == true
run: echo "PR was merged"
- name: Extract Discussion Number & Close If any Were Found
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
if: github.event.pull_request.merged == true
id: extract-discussion
run: |
pr_body="${{ github.event.pull_request.body }}"
discussion_ids=$(echo "$pr_body" | grep -oP '(?i)(resolve|fix|close)[s|d]? #\K[0-9]+')
if [ -z "$discussion_ids" ]; then
echo "No discussion IDs found."
exit 0
fi
for discussion_id in $discussion_ids; do
echo "Closing discussion #$discussion_id"
response=$(curl -s -o /dev/null -w "%{http_code}" -X PATCH -H "Authorization: token $GITHUB_TOKEN" \
-d '{"state": "closed"}' \
"https://api.github.com/repos/${{ github.repository }}/discussions/$discussion_id")
if [ "$response" -ne 200 ]; then
echo "Failed to close discussion #$discussion_id. HTTP status code: $response"
exit 1
fi
done
shell: bash

View File

@ -0,0 +1,45 @@
name: Close issue on /close
on:
issue_comment:
types: [created, edited]
jobs:
closeIssueOnClose:
# Skip this job if the comment was created/edited on a PR
if: ${{ !github.event.issue.pull_request }}
runs-on: ubuntu-latest
permissions:
issues: write
pull-requests: none
contents: read
steps:
- name: Check for /close comment
id: check_comment
run: |
if [[ "${{ contains(github.event.comment.body, '/close') }}" == "true" ]]; then
echo "comment=true" >> $GITHUB_ENV
else
echo "comment=false" >> $GITHUB_ENV
fi
- name: Check if the user is allowed
id: check_user
if: env.comment == 'true'
run: |
ALLOWED_USERS=("ChrisTitusTech" "og-mrk" "Marterich" "MyDrift-user" "Real-MullaC")
if [[ " ${ALLOWED_USERS[@]} " =~ " ${{ github.event.comment.user.login }} " ]]; then
echo "user=true" >> $GITHUB_ENV
else
echo "user=false" >> $GITHUB_ENV
fi
- name: Close issue if conditions are met
if: env.comment == 'true' && env.user == 'true'
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
ISSUE_NUMBER: ${{ github.event.issue.number }}
run: |
echo Closing the issue...
gh issue close $ISSUE_NUMBER --repo ${{ github.repository }}

View File

@ -4,62 +4,36 @@ on:
schedule:
- cron: '0 0 * * *' # Run daily
workflow_dispatch: # This line enables manual triggering
jobs:
close-issues:
runs-on: ubuntu-latest
permissions:
issues: write # Ensure necessary permissions for issues
pull-requests: none
contents: none
steps:
- name: Close inactive issues
uses: actions/github-script@v7
uses: actions/stale@v8
with:
github-token: ${{ secrets.GITHUB_TOKEN }}
script: |
const octokit = github;
// Get the repository owner and name
const { owner, repo } = context.repo;
// Define the inactivity period (14 days)
const inactivityPeriod = new Date();
inactivityPeriod.setDate(inactivityPeriod.getDate() - 14);
try {
// Get all open issues with pagination
for await (const response of octokit.paginate.iterator(octokit.rest.issues.listForRepo, {
owner,
repo,
state: 'open',
})) {
const issues = response.data;
// Close issues inactive for more than the inactivity period
for (const issue of issues) {
const lastCommentDate = issue.updated_at;
if (new Date(lastCommentDate) < inactivityPeriod) {
try {
// Close the issue
await octokit.rest.issues.update({
owner,
repo,
issue_number: issue.number,
state: 'closed',
});
// Add a comment
await octokit.rest.issues.createComment({
owner,
repo,
issue_number: issue.number,
body: 'Closed due to inactivity',
});
} catch (error) {
console.error(`Error updating or commenting on issue #${issue.number}: ${error}`);
}
}
}
}
} catch (error) {
console.error(`Error fetching issues: ${error}`);
}
# A list of labels to reference when looking through issues,
# and only when one (or even more) of these labels are found..
# then skip this issue, and never try to stale and/or close it.
exempt-issue-labels: "Keep Issue Open"
# Split it into two weeks, after one week the issue will be marked as stale,
# after another week have pasted without any update.. the issue will then be closed.
days-before-issue-stale: 7
days-before-issue-close: 7
# NEVER mark PRs as Stale or Close + this workflow should never have write permissions on PRs, EVER!
days-before-pr-stale: -1
days-before-pr-close: -1
# Sends a message for both the Stale and Close events of an issue.
stale-issue-message: "This issue was marked as stale because it has been inactive for 7 days"
close-issue-message: "This issue was closed because it has been inactive for 7 days since it was marked as stale"
# Increase this value if the project receives a lot of
# PRs (yes.. apparently they're processed no matter what) & Issues.
# Default value for it (according to the docs) is 30
operations-per-run: 200
# Make this field equal true if you want to test your configuration if it works correctly or not
debug-only: false
repo-token: ${{ secrets.GITHUB_TOKEN }}

22
.github/workflows/compile-check.yaml vendored Normal file
View File

@ -0,0 +1,22 @@
name: Compile & Check
on:
push:
branches: ["main"]
pull_request:
branches: ["main"]
workflow_dispatch: # Manual trigger added
workflow_call: # Allow other Actions to call this workflow
jobs:
Compile-and-Check:
runs-on: windows-latest
steps:
- name: Checkout Sources
uses: actions/checkout@v4
- name: Compile and Syntaxcheck winutil.ps1
shell: pwsh
run: |
Set-ExecutionPolicy Bypass -Scope Process -Force; ./Compile.ps1
continue-on-error: false # Directly fail the job on error, removing the need for a separate check

25
.github/workflows/github-pages.yaml vendored Normal file
View File

@ -0,0 +1,25 @@
name: GitHub Pages Deploy
on:
release:
types: [published, prereleased]
workflow_dispatch:
permissions:
contents: write
jobs:
deploy:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-python@v4
with:
python-version: 3.x
- uses: actions/cache@v4
with:
key: ${{ github.ref }}
path: .cache
- run: pip install mkdocs-material
- run: pip install pillow cairosvg
- run: pip install mkdocs-awesome-pages-plugin
- run: pip install mkdocs-git-revision-date-localized-plugin
- run: pip install mkdocs-minify-plugin
- run: mkdocs gh-deploy --force

89
.github/workflows/pre-release.yaml vendored Normal file
View File

@ -0,0 +1,89 @@
name: Pre-Release WinUtil
permissions:
contents: write
actions: read
on:
workflow_dispatch: # Manual trigger added
jobs:
build-runspace:
runs-on: windows-latest
env:
CERTIFICATE_BASE64: ${{ secrets.CERTIFICATE_BASE64 }}
steps:
- name: Checkout Repository
uses: actions/checkout@v4
- name: Compile project
shell: pwsh
run: |
Set-ExecutionPolicy Bypass -Scope Process -Force; ./Compile.ps1
continue-on-error: false # Directly fail the job on error, removing the need for a separate check
- name: Set Version to Todays Date
id: extract_version
run: |
$version = (Get-Date -Format "yy.MM.dd")
echo "VERSION=$version" >> $env:GITHUB_ENV
shell: pwsh
- name: Create Tag
id: create_tag
run: |
$tagExists = git tag -l $env:VERSION
if ($tagExists -eq "") {
git tag $env:VERSION
if ($LASTEXITCODE -ne 0) {
Write-Error "Failed to create tag $env:VERSION"
exit 1
}
git push origin $env:VERSION
if ($LASTEXITCODE -ne 0) {
Write-Error "Failed to push tag $env:VERSION"
exit 1
}
} else {
Write-Host "Tag $env:VERSION already exists, skipping tag creation"
}
shell: pwsh
- name: Create and import code signing certificate
shell: pwsh
run: |
[System.IO.File]::WriteAllBytes("$env:USERPROFILE\code-signing-cert.pfx", [System.Convert]::FromBase64String("$env:CERTIFICATE_BASE64"))
Import-PfxCertificate -FilePath "$env:USERPROFILE\code-signing-cert.pfx" -CertStoreLocation Cert:\CurrentUser\My
- name: Code sign winutil.ps1
shell: pwsh
run: |
$cert = Get-ChildItem -Path Cert:\CurrentUser\My -CodeSigningCert | Select-Object -First 1
if ($null -eq $cert) { throw "Code signing certificate not found" }
Set-AuthenticodeSignature -FilePath ./winutil.ps1 -Certificate $cert
- name: Verify code signature
shell: pwsh
run: |
$signature = Get-AuthenticodeSignature -FilePath ./winutil.ps1
if ($signature.Status -ne 'Valid') { throw "Code signing failed" }
- name: Upload winutil.ps1 as artifact
uses: actions/upload-artifact@v2
with:
name: winutil
path: ./winutil.ps1
- name: Create and Upload Release
id: create_release
uses: softprops/action-gh-release@v2
with:
tag_name: ${{ env.VERSION }}
name: Pre-Release ${{ env.VERSION }}
body: "![GitHub Downloads (specific asset, specific tag)](https://img.shields.io/github/downloads/ChrisTitusTech/winutil/${{ env.VERSION }}/winutil.ps1)"
append_body: false
files: ./winutil.ps1
prerelease: true
generate_release_notes: true
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}

View File

@ -1,21 +0,0 @@
name: Update Branch
on:
push:
branches:
- main
- test*
jobs:
build-runspace:
runs-on: windows-latest
steps:
- uses: actions/checkout@v3
with:
ref: ${{ github.head_ref }}
- name: Create local changes
run: |
powershell.exe -f Compile.ps1
- uses: stefanzweifel/git-auto-commit-action@v4.16.0
with:
commit_message: Compile Winutil

34
.github/workflows/remove-winutil.yaml vendored Normal file
View File

@ -0,0 +1,34 @@
name: Remove winutil.ps1 if included in a Push
on:
push:
branches:
- '**'
jobs:
check-and-delete-file:
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Check if winutil.ps1 exists
id: check_existence
run: |
if [ -f "winutil.ps1" ]; then
echo "winutil_exists=true" >> $GITHUB_OUTPUT
else
echo "winutil_exists=false" >> $GITHUB_OUTPUT
fi
- name: Delete winutil.ps1 if it exists
if: steps.check_existence.outputs.winutil_exists == 'true'
run: |
git config --global user.email "winutil-action@noreply.github.com"
git config --global user.name "winutil-action"
git rm winutil.ps1
git commit -m "Delete winutil.ps1 as it is not allowed"
git push origin HEAD:${{ github.ref }}
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}

26
.github/workflows/sponsors.yaml vendored Normal file
View File

@ -0,0 +1,26 @@
name: Generate Sponsors README
on:
workflow_dispatch:
schedule:
- cron: 30 15 * * 0-6
permissions:
contents: write
jobs:
deploy:
runs-on: ubuntu-latest
if: (github.event_name == 'schedule' && github.repository == 'ChrisTitusTech/winutil') || (github.event_name != 'schedule')
steps:
- name: Checkout 🛎️
uses: actions/checkout@v4
- name: Generate Sponsors 💖
uses: JamesIves/github-sponsors-readme-action@v1
with:
token: ${{ secrets.PAT }}
file: 'README.md'
- name: Deploy to GitHub Pages 🚀
uses: JamesIves/github-pages-deploy-action@v4
with:
branch: main
folder: '.'

View File

@ -1,14 +1,14 @@
name: Unit Tests
on:
push:
push:
jobs:
lint:
name: PS Script Analyzer
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- uses: actions/checkout@v4
- name: lint
uses: devblackops/github-action-psscriptanalyzer@master
with:
@ -22,19 +22,19 @@ jobs:
steps:
- name: Checkout code
uses: actions/checkout@v2
uses: actions/checkout@v4
- name: Install Pester
run: |
Set-ExecutionPolicy -ExecutionPolicy Bypass -Scope Process
Install-Module -Name Pester -Force -AllowClobber
Install-Module -Name Pester -Force -SkipPublisherCheck -AllowClobber
shell: pwsh
- name: Run Pester tests
run: |
Set-ExecutionPolicy -ExecutionPolicy Bypass -Scope Process
Invoke-Pester -Path 'pester/*.Tests.ps1' -EnableExit
Invoke-Pester -Path 'pester/*.Tests.ps1' -Output Detailed
shell: pwsh
env:
TEMP: ${{ runner.temp }}
TEMP: ${{ runner.temp }}

8
.gitignore vendored
View File

@ -15,6 +15,11 @@ winutil.pdb
# Folder config file
[Dd]esktop.ini
# Ignore Generated XAML Files
xaml/inputApp.xaml
xaml/inputFeatures.xaml
xaml/inputTweaks.xaml
# Executables and Configs
winget.msixbundle
pester.ps1
@ -39,3 +44,6 @@ Microsoft.PowerShell.ConsoleHost.dll
microwin.log
True
test.ps1
winutil.ps1
binary/

106
CONTRIBUTING.md Normal file
View File

@ -0,0 +1,106 @@
# How to Contribute?
## Testing
* Test the latest changes to WinUtil by running the pre-release and reporting issues you are encountering to help us continually improve WinUtil!
#### **Run the latest pre-release**
```ps1
irm christitus.com/windev | iex
```
!!! 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!
## Issues
* 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.
## 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
graph LR
  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];
  E --> F[Push Branch];
  H -->|No| J[Fix Issues];
  F --> K[Create Pull Request];
  K --> L[Fill out PR template];
  J --> G;
```
!!! info
This is a diagram to guide you through the process. It may vary depending on the type of change you're making.
### Fork the Repo
* Fork the WinUtil Repository [here](https://github.com/ChrisTitusTech/winutil) to create a copy that will be available in your repository list.
![Fork Image](assets/Fork-Button-Dark.png#only-dark)
![FOrk Image](assets/Fork-Button-Light.png#only-light)
### 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.
* 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.
### Testing your changes
* To test to see if your changes work as intended run following commands in a powershell teminal as admin:
* Change the directory where you are running the commands to the forked project.
* `cd {path to the folder with the compile.ps1}`
* Run the following command to compile and run WinUtil:
* `.\Compile.ps1 -run`
* ![Compile](assets/Compile.png)
* After seeing that your changes work properly, feel free to commit the changes to the repository and make a PR. For help on that, follow the documentation below.
### Committing the changes
* Before committing your changes, please discard changes made to the `winutil.ps1` file, like the following:
- ![Push Commit Image](assets/Discard-GHD.png)
* Now, commit your changes once you are happy with the result.
![Commit Image](assets/Commit-GHD.png)
* Push the changes to upload them to your fork on github.com.
![Push Commit Image](assets/Push-Commit.png)
### 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.

View File

@ -1,47 +1,164 @@
param (
[switch]$Debug,
[switch]$Run,
[switch]$SkipPreprocessing
)
$OFS = "`r`n"
$scriptname = "winutil.ps1"
$workingdir = $PSScriptRoot
# Variable to sync between runspaces
$sync = [Hashtable]::Synchronized(@{})
$sync.PSScriptRoot = $PSScriptRoot
$sync.PSScriptRoot = $workingdir
$sync.configs = @{}
if (Test-Path -Path "$($scriptname)")
{
Remove-Item -Force "$($scriptname)"
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
}
Write-output '
$header = @"
################################################################################################################
### ###
### WARNING: This file is automatically generated DO NOT modify this file directly as it will be overwritten ###
### ###
################################################################################################################
' | Out-File ./$scriptname -Append -Encoding ascii
"@
(Get-Content .\scripts\start.ps1).replace('#{replaceme}',"$(Get-Date -Format yy.MM.dd)") | Out-File ./$scriptname -Append -Encoding ascii
if (-NOT $SkipPreprocessing) {
Update-Progress "Pre-req: Running Preprocessor..." 0
Get-ChildItem .\functions -Recurse -File | ForEach-Object {
Get-Content $psitem.FullName | Out-File ./$scriptname -Append -Encoding ascii
# Dot source the 'Invoke-Preprocessing' Function from 'tools/Invoke-Preprocessing.ps1' Script
$preprocessingFilePath = ".\tools\Invoke-Preprocessing.ps1"
. "$(($workingdir -replace ('\\$', '')) + '\' + ($preprocessingFilePath -replace ('\.\\', '')))"
$excludedFiles = @('.\.git\', '.\.gitignore', '.\.gitattributes', '.\.github\CODEOWNERS', '.\LICENSE', "$preprocessingFilePath", '*.png', '*.exe')
$msg = "Pre-req: Code Formatting"
Invoke-Preprocessing -WorkingDir "$workingdir" -ExcludedFiles $excludedFiles -ProgressStatusMessage $msg
}
$xaml = (Get-Content .\xaml\inputXML.xaml).replace("'","''")
Write-output "`$inputXML = '$xaml'" | Out-File ./$scriptname -Append -Encoding ascii
# Create the script in memory.
Update-Progress "Pre-req: Allocating Memory" 0
$script_content = [System.Collections.Generic.List[string]]::new()
Update-Progress "Adding: Header" 5
$script_content.Add($header)
Update-Progress "Adding: Version" 10
$script_content.Add($(Get-Content "$workingdir\scripts\start.ps1").replace('#{replaceme}',"$(Get-Date -Format yy.MM.dd)"))
Update-Progress "Adding: Functions" 20
Get-ChildItem "$workingdir\functions" -Recurse -File | ForEach-Object {
$script_content.Add($(Get-Content $psitem.FullName))
}
Update-Progress "Adding: Config *.json" 40
Get-ChildItem "$workingdir\config" | Where-Object {$psitem.extension -eq ".json"} | ForEach-Object {
Get-ChildItem .\config | Where-Object {$psitem.extension -eq ".json"} | ForEach-Object {
$json = (Get-Content $psitem.FullName).replace("'","''")
# Replace every XML Special Character so it'll render correctly in final build
# Only do so if json files has content to be displayed (for example the applications, tweaks, features json files)
# Make an Array List containing every name at first level of Json File
$jsonAsObject = $json | convertfrom-json
$firstLevelJsonList = [System.Collections.ArrayList]::new()
$jsonAsObject.PSObject.Properties.Name | ForEach-Object {$null = $firstLevelJsonList.Add($_)}
# Note:
# Avoid using HTML Entity Codes, for example '&rdquo;' (stands for "Right Double Quotation Mark"),
# Use **HTML decimal/hex codes instead**, as using HTML Entity Codes will result in XML parse Error when running the compiled script.
for ($i = 0; $i -lt $firstLevelJsonList.Count; $i += 1) {
$firstLevelName = $firstLevelJsonList[$i]
if ($jsonAsObject.$firstLevelName.content -ne $null) {
$jsonAsObject.$firstLevelName.content = $jsonAsObject.$firstLevelName.content.replace('&','&#38;').replace('“','&#8220;').replace('”','&#8221;').replace("'",'&#39;').replace('<','&#60;').replace('>','&#62;').replace('—','&#8212;')
$jsonAsObject.$firstLevelName.content = $jsonAsObject.$firstLevelName.content.replace('&#39;&#39;',"&#39;") # resolves the Double Apostrophe caused by the first replace function in the main loop
}
if ($jsonAsObject.$firstLevelName.description -ne $null) {
$jsonAsObject.$firstLevelName.description = $jsonAsObject.$firstLevelName.description.replace('&','&#38;').replace('“','&#8220;').replace('”','&#8221;').replace("'",'&#39;').replace('<','&#60;').replace('>','&#62;').replace('—','&#8212;')
$jsonAsObject.$firstLevelName.description = $jsonAsObject.$firstLevelName.description.replace('&#39;&#39;',"&#39;") # resolves the Double Apostrophe caused by the first replace function in the main loop
}
}
# Add 'WPFInstall' as a prefix to every entry-name in 'applications.json' file
if ($psitem.Name -eq "applications.json") {
for ($i = 0; $i -lt $firstLevelJsonList.Count; $i += 1) {
$appEntryName = $firstLevelJsonList[$i]
$appEntryContent = $jsonAsObject.$appEntryName
# Remove the entire app entry, so we could add it later with a different name
$jsonAsObject.PSObject.Properties.Remove($appEntryName)
# Add the app entry, but with a different name (WPFInstall + The App Entry Name)
$jsonAsObject | Add-Member -MemberType NoteProperty -Name "WPFInstall$appEntryName" -Value $appEntryContent
}
}
# The replace at the end is required, as without it the output of 'converto-json' will be somewhat weird for Multiline Strings
# Most Notably is the scripts in some json files, making it harder for users who want to review these scripts, which're found in the compiled script
$json = ($jsonAsObject | convertto-json -Depth 3).replace('\r\n',"`r`n")
$sync.configs.$($psitem.BaseName) = $json | convertfrom-json
Write-output "`$sync.configs.$($psitem.BaseName) = '$json' `| convertfrom-json" | Out-File ./$scriptname -Append -Encoding ascii
$script_content.Add($(Write-output "`$sync.configs.$($psitem.BaseName) = '$json' `| convertfrom-json" ))
}
$xaml = (Get-Content "$workingdir\xaml\inputXML.xaml").replace("'","''")
# Dot-source the Get-TabXaml function
. .\functions\private\Get-TabXaml.ps1
. "$workingdir\functions\private\Get-TabXaml.ps1"
## Xaml Manipulation
$tabColumns = Get-TabXaml "applications" 5
$tabColumns | Out-File -FilePath ".\xaml\inputApp.xaml" -Encoding ascii
$tabColumns = Get-TabXaml "tweaks"
$tabColumns | Out-File -FilePath ".\xaml\inputTweaks.xaml" -Encoding ascii
$tabColumns = Get-TabXaml "feature"
$tabColumns | Out-File -FilePath ".\xaml\inputFeatures.xaml" -Encoding ascii
Update-Progress "Building: Xaml " 75
$appXamlContent = Get-TabXaml "applications" 5
$tweaksXamlContent = Get-TabXaml "tweaks"
$featuresXamlContent = Get-TabXaml "feature"
Get-Content .\scripts\main.ps1 | Out-File ./$scriptname -Append -Encoding ascii
Update-Progress "Adding: Xaml " 90
# Replace the placeholder in $inputXML with the content of inputApp.xaml
$xaml = $xaml -replace "{{InstallPanel_applications}}", $appXamlContent
$xaml = $xaml -replace "{{InstallPanel_tweaks}}", $tweaksXamlContent
$xaml = $xaml -replace "{{InstallPanel_features}}", $featuresXamlContent
$script_content.Add($(Write-output "`$inputXML = '$xaml'"))
$script_content.Add($(Get-Content "$workingdir\scripts\main.ps1"))
if ($Debug) {
Update-Progress "Writing debug files" 95
$appXamlContent | Out-File -FilePath "$workingdir\xaml\inputApp.xaml" -Encoding ascii
$tweaksXamlContent | Out-File -FilePath "$workingdir\xaml\inputTweaks.xaml" -Encoding ascii
$featuresXamlContent | Out-File -FilePath "$workingdir\xaml\inputFeatures.xaml" -Encoding ascii
} else {
Update-Progress "Removing temporary files" 99
Remove-Item "$workingdir\xaml\inputApp.xaml" -ErrorAction SilentlyContinue
Remove-Item "$workingdir\xaml\inputTweaks.xaml" -ErrorAction SilentlyContinue
Remove-Item "$workingdir\xaml\inputFeatures.xaml" -ErrorAction SilentlyContinue
}
Set-Content -Path "$workingdir\$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 {
$null = Get-Command -Syntax .\winutil.ps1
}
catch {
Write-Warning "Syntax Validation for 'winutil.ps1' has failed"
Write-Host "$($Error[0])" -ForegroundColor Red
}
Write-Progress -Activity "Validating" -Completed
if ($run) {
try {
Start-Process -FilePath "pwsh" -ArgumentList "$workingdir\$scriptname"
} catch {
Start-Process -FilePath "powershell" -ArgumentList "$workingdir\$scriptname"
}
}

View File

@ -0,0 +1 @@
"enabled": ["AT", "BE", "BG", "CH", "CY", "CZ", "DE", "DK", "EE", "ES", "FI", "FR", "GF", "GP", "GR", "HR", "HU", "IE", "IS", "IT", "LI", "LT", "LU", "LV", "MT", "MQ", "NL", "NO", "PL", "PT", "RE", "RO", "SE", "SI", "SK", "YT"]

View File

@ -1,33 +0,0 @@
## Known Issues and Fixes
- Windows taking longer to shut down:
- [#69](https://github.com/ChrisTitusTech/winutil/issues/69) Turn on fast startup: Press Windows key + R, then type:
```
control /name Microsoft.PowerOptions /page pageGlobalSettings
```
- If that doesn't work, Disable Hibernation: Press Windows Key+X and select 'PowerShell (Admin)' (Windows 10) or 'Windows Terminal (Admin)' (Windows 11) and enter:
```
powercfg /H off
```
- [#69](https://github.com/ChrisTitusTech/winutil/issues/69) [95](https://github.com/ChrisTitusTech/winutil/issues/95) [#232](https://github.com/ChrisTitusTech/winutil/issues/232) Windows Search does not work: Enable Background Apps
- [#198](https://github.com/ChrisTitusTech/winutil/issues/198) Xbox Game Bar Activation Broken: Set the Xbox Accessory Management Service to Automatic
```
Get-Service -Name "XboxGipSvc" | Set-Service -StartupType Automatic
```
- Windows Insider Builds not installing: Telemetry needs to be enabled
```
Set-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\DataCollection" -Name "AllowTelemetry" -Type DWord -Value 0
Set-ItemProperty -Path "HKLM:\SOFTWARE\Policies\Microsoft\Windows\DataCollection" -Name "AllowTelemetry" -Type DWord -Value 0
```
- Winget requires interaction on first run: Manually type 'y' and 'enter' into the PowerShell console to continue
- (Windows 11) Quick Settings no longer works: Launch the Script and click 'Enable Action Center'
- Explorer no longer launches: Go to Control Panel, File Explorer Options, Change the 'Open File Explorer to' option to 'This PC'.
- Script doesn't run/PowerShell crashes:
1. Press Windows Key+X and select 'PowerShell (Admin)' (Windows 10) or 'Windows Terminal (Admin)' (Windows 11)
2. Run:
```
Set-ExecutionPolicy Unrestricted -Scope Process -Force
```
3. Run:
```
irm christitus.com/win | iex
```

135
README.md
View File

@ -1,143 +1,64 @@
# Chris Titus Tech's Windows Utility
This utility is a compilation of Windows tasks I perform on each Windows system I use. It is meant to streamline *installs*, debloat with *tweaks*, troubleshoot with *config*, and fix Windows *updates*. I am extremely picky about any contributions to keep this project clean and efficient.
[![Version](https://img.shields.io/github/v/release/ChrisTitusTech/winutil?color=%230567ff&label=Latest%20Release&style=for-the-badge)](https://github.com/ChrisTitusTech/winutil/releases/latest)
![GitHub Downloads (specific asset, all releases)](https://img.shields.io/github/downloads/ChrisTitusTech/winutil/winutil.ps1?label=Total%20Downloads&style=for-the-badge)
[![](https://dcbadge.limes.pink/api/server/https://discord.gg/RUbZUZyByQ?theme=default-inverted&style=for-the-badge)](https://discord.gg/RUbZUZyByQ)
![screen-install](screen-install.png)
This utility is a compilation of Windows tasks I perform on each Windows system I use. It is meant to streamline *installs*, debloat with *tweaks*, troubleshoot with *config*, and fix Windows *updates*. I am extremely picky about any contributions to keep this project clean and efficient.
## Usage
![screen-install](./docs/assets/Title-Screen.png)
Winutil must be run in Admin mode because it performs system-wide tweaks. To achieve this, open PowerShell or Windows Terminal as an administrator. Here are a few ways to do it:
## 💡 Usage
1. **Right-Click Method:**
Winutil must be run in Admin mode because it performs system-wide tweaks. To achieve this, run PowerShell as an administrator. Here are a few ways to do it:
1. **Start menu Method:**
- Right-click on the start menu.
- Choose "PowerShell As Admin" (for Windows 10) or "Windows Terminal As Admin" (for Windows 11).
- Choose "Windows PowerShell (Admin)" (for Windows 10) or "Terminal (Admin)" (for Windows 11).
2. **Search and Launch Method:**
- Press the Windows key.
- Type "PowerShell" or "Terminal" (for Windows 11).
- Press `Ctrl + Shift + Enter` to launch it with administrator privileges.
- Press `Ctrl + Shift + Enter` or Right-click and choose "Run as administrator" to launch it with administrator privileges.
### Launch Command
#### Simple way
#### Stable Branch (Recommended)
```ps1
irm "https://christitus.com/win" | iex
```
iwr -useb https://christitus.com/win | iex
```
or by executing:
```
irm https://christitus.com/win | iex
```
Courtesy of the issue raised at: [#144](/../../issues/144)
#### Dev Branch
if for some reason this site is not reachable from your country please try running it directly from github
```
irm https://raw.githubusercontent.com/ChrisTitusTech/winutil/main/winutil.ps1 | iex
```ps1
irm "https://christitus.com/windev" | iex
```
#### Automation
If you have Issues, refer to [Known Issues](https://christitustech.github.io/winutil/KnownIssues/)
Some features are avaliable through automation. This allows you to save your config file pass it to Winutil walk away and come back to a finished system. Here is how you can set it up currently with Winutil >24.01.15
## 🎓 Documentation
1. On the Install Tab, click "Get Installed", this will get all installed apps **supported by Winutil** on the system
![GetInstalled](/wiki/Get-Installed.png)
2. Click on the Settings cog in the upper right corner and chose Export, chose file file and location, this will export the setting file.
![SettingsExport](/wiki/Settings-Export.png)
3. Copy this file to a USB or somewhere you can use after Windows installation.
4. Use Microwin tab to create a custom Windows image.
5. Install the Windows image.
6. In the new Windows, Open PowerShell in the admin mode and run command to automatically apply tweaks and install apps from the config file.
```
irm https://christitus.com/win -Config [path-to-your-config] -Run | iex
```
7. Have a cup of coffee! Come back when it's done.
### [WinUtil Official Documentation](https://christitustech.github.io/winutil/)
### [YouTube Tutorial](https://www.youtube.com/watch?v=6UQZ5oQg8XA)
## Issues:
### [ChrisTitus.com Article](https://christitus.com/windows-tool/)
- If you are unable to resolve christitus.com/win and are getting errors launching the tool, it might be due to India blocking GitHub's content domain and preventing downloads. You may use a VPN or change your DNS provider to Google/Cloudflare/etc.
Source: <https://timesofindia.indiatimes.com/gadgets-news/github-content-domain-blocked-for-these-indian-users-reports/articleshow/96687992.cms>
- Windows Security (formerly Defender) and other anti-virus software are known to block the script. The script gets flagged due to the fact that it requires administrator privileges & makes drastic system changes.
- If you are having TLS 1.2 issues, or are having trouble resolving `christitus.com/win` then run with the following command:
```
[Net.ServicePointManager]::SecurityProtocol=[Net.SecurityProtocolType]::Tls12;iex(New-Object Net.WebClient).DownloadString('https://raw.githubusercontent.com/ChrisTitusTech/winutil/main/winutil.ps1')
```
If you are still having issues try changing your DNS provider to 1.1.1.1 || 1.0.0.1 or 8.8.8.8 || 8.8.4.4
## Support
## 💖 Support
- To morally and mentally support the project, make sure to leave a ⭐️!
- EXE Wrapper for $10 @ https://www.cttstore.com/windows-toolbox
## Tutorial
## 💖 Sponsors
[![Watch the video](https://img.youtube.com/vi/6UQZ5oQg8XA/hqdefault.jpg)](https://www.youtube.com/watch?v=6UQZ5oQg8XA)
These are the sponsors that help keep this project alive with monthly contributions.
## Overview
<!-- sponsors --><a href="https://github.com/GregoryNavasarkian"><img src="https://github.com/GregoryNavasarkian.png" width="60px" alt="Gregory Navasarkian" /></a><a href="https://github.com/ysaito8015"><img src="https://github.com/ysaito8015.png" width="60px" alt="Yusuke Saito" /></a><a href="https://github.com/TriHydera"><img src="https://github.com/TriHydera.png" width="60px" alt="TriHydera" /></a><a href="https://github.com/jozozovko"><img src="https://github.com/jozozovko.png" width="60px" alt="" /></a><a href="https://github.com/DelDongo"><img src="https://github.com/DelDongo.png" width="60px" alt="" /></a><a href="https://github.com/markamos"><img src="https://github.com/markamos.png" width="60px" alt="Mark Amos" /></a><a href="https://github.com/dwelfusius"><img src="https://github.com/dwelfusius.png" width="60px" alt="" /></a><a href="https://github.com/mews-se"><img src="https://github.com/mews-se.png" width="60px" alt="" /></a><a href="https://github.com/jdiegmueller"><img src="https://github.com/jdiegmueller.png" width="60px" alt="Jason A. Diegmueller" /></a><a href="https://github.com/AlanTristar"><img src="https://github.com/AlanTristar.png" width="60px" alt="" /></a><a href="https://github.com/JennJones89"><img src="https://github.com/JennJones89.png" width="60px" alt="" /></a><a href="https://github.com/zepled112"><img src="https://github.com/zepled112.png" width="60px" alt="wyatt" /></a><a href="https://github.com/Owen-3456"><img src="https://github.com/Owen-3456.png" width="60px" alt="Owen" /></a><a href="https://github.com/altugtekiner"><img src="https://github.com/altugtekiner.png" width="60px" alt="" /></a><a href="https://github.com/getsmor"><img src="https://github.com/getsmor.png" width="60px" alt="" /></a><a href="https://github.com/robertsandrock"><img src="https://github.com/robertsandrock.png" width="60px" alt="" /></a><a href="https://github.com/jeffnesbit"><img src="https://github.com/jeffnesbit.png" width="60px" alt="" /></a><a href="https://github.com/mmomega"><img src="https://github.com/mmomega.png" width="60px" alt="" /></a><a href="https://github.com/KenichiQaz"><img src="https://github.com/KenichiQaz.png" width="60px" alt="Stefan" /></a><a href="https://github.com/thaddl"><img src="https://github.com/thaddl.png" width="60px" alt="thaddl" /></a><a href="https://github.com/paulsheets"><img src="https://github.com/paulsheets.png" width="60px" alt="Paul" /></a><a href="https://github.com/djones369"><img src="https://github.com/djones369.png" width="60px" alt="Dave Jones" /></a><a href="https://github.com/anthonymendez"><img src="https://github.com/anthonymendez.png" width="60px" alt="Anthony Mendez" /></a><a href="https://github.com/woobe-studio"><img src="https://github.com/woobe-studio.png" width="60px" alt="Michael Wozniak" /></a><!-- sponsors -->
- Install
- Install Selection: Organize programs by category and facilitate installation by enabling users to select programs and initiate the installation process with a single click.
- Upgrade All: Upgrade all existing programs to their latest versions, ensuring users have the most up-to-date and feature-rich software.
- Uninstall Selection: Effortlessly uninstall selected programs, providing users with a streamlined way to remove unwanted software from their system.
- Get Installed: Retrieve a comprehensive list of installed programs on the system, offering users visibility into the software currently installed on their computer.
- Import / Export: Enable users to import or export the selection list of programs, allowing them to save their preferred program configurations or share them with others. This feature promotes convenience and flexibility in managing program selections across different systems.
- Tweaks
- Recommended Selection: Provides pre-defined templates tailored for desktop, laptop, and minimal configurations, allowing users to select recommended settings and optimizations specific to their system type.
- Essential Tweaks: Offers a collection of essential tweaks aimed at improving system performance, privacy, and resource utilization. These tweaks include creating a system restore point, disabling telemetry, Wi-Fi Sense, setting services to manual, disabling location tracking, and HomeGroup, among others.
- Misc. Tweaks: Encompasses a range of various tweaks to further optimize the system. These tweaks include enabling/disabling power throttling, enabling num lock on startup, removing Cortana and Edge, disabling User Account Control (UAC), notification panel, and configuring TPM during updates, among others.
- Additional Tweaks: Introduces various other tweaks such as enabling dark mode, changing DNS settings, adding an Ultimate Performance mode, and creating shortcuts for WinUtil tools. These tweaks provide users with additional customization options to tailor their system to their preferences.
- Config
- Features: Allows users to easily install various essential components and features to enhance their Windows experience. These features include installing .NET Frameworks, enabling Hyper-V virtualization, enabling legacy media support for Windows Media Player and DirectPlay, enabling NFS (Network File System) for network file sharing, and enabling Windows Subsystem for Linux (WSL) for running Linux applications on Windows.
- Fixes: Provides a range of helpful fixes to address common issues and improve system stability. This includes setting up autologon for seamless login experiences, resetting Windows updates to resolve update-related problems, performing a system corruption scan to detect and repair corrupted files, and resetting network settings to troubleshoot network connectivity issues.
- Legacy Windows Panels: Includes access to legacy Windows panels from Windows 7, allowing users to access familiar and powerful tools. These panels include Control Panel for managing system settings, Network Connections for configuring network adapters and connections, Power Panel for adjusting power and sleep settings, Sound Settings for managing audio devices and settings, System Properties for viewing and modifying system information, and User Accounts for managing user profiles and account settings.
- Updates:
- Default (Out of Box) Settings: Provides the default settings that come with Windows for updates.
- Security (Recommended) Settings: Offers recommended settings, including a slight delay of feature updates by 2 years and installation of security updates 4 days after release.
- Disable All Updates (Not Recommended!): Allows users to disable all Windows updates, but it's not recommended due to potential security risks.
Video and Written Article walkthrough @ <https://christitus.com/windows-tool/>
## Issues
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 to promptly address any bugs or consider feature requests.
## Contribute Code
To contribute new code, please ensure that it is submitted to the **TEST BRANCH**. Please note that merges will not be performed directly on the MAIN branch.
When creating pull requests, it is essential to thoroughly document all changes made. This includes documenting any additions made to the tweaks section and ensuring that corresponding undo measures are in place to remove the newly added tweaks if necessary. Failure to adhere to this format may result in denial of the pull request. Additionally, comprehensive documentation is required for all code changes. 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 name so that it can be loaded into the runspace.
## Thanks to all Contributors
## 🏅 Thanks to all Contributors
Thanks a lot for spending your time helping Winutil grow. Thanks a lot! Keep rocking 🍻.
[![Contributors](https://contrib.rocks/image?repo=ChrisTitusTech/winutil)](https://github.com/ChrisTitusTech/winutil/graphs/contributors)
## GitHub Stats
## 📊 GitHub Stats
![Alt](https://repobeats.axiom.co/api/embed/aad37eec9114c507f109d34ff8d38a59adc9503f.svg "Repobeats analytics image")

5224
config/applications.json Executable file → Normal file

File diff suppressed because it is too large Load Diff

View File

@ -1,30 +1,50 @@
{
"Google":{
"Primary": "8.8.8.8",
"Secondary": "8.8.4.4"
"Secondary": "8.8.4.4",
"Primary6": "2001:4860:4860::8888",
"Secondary6": "2001:4860:4860::8844"
},
"Cloudflare":{
"Primary": "1.1.1.1",
"Secondary": "1.0.0.1"
"Secondary": "1.0.0.1",
"Primary6": "2606:4700:4700::1111",
"Secondary6": "2606:4700:4700::1001"
},
"Cloudflare_Malware":{
"Primary": "1.1.1.2",
"Secondary": "1.0.0.2"
"Secondary": "1.0.0.2",
"Primary6": "2606:4700:4700::1112",
"Secondary6": "2606:4700:4700::1002"
},
"Cloudflare_Malware_Adult":{
"Primary": "1.1.1.3",
"Secondary": "1.0.0.3"
},
"Level3":{
"Primary": "4.2.2.2",
"Secondary": "4.2.2.1"
"Secondary": "1.0.0.3",
"Primary6": "2606:4700:4700::1113",
"Secondary6": "2606:4700:4700::1003"
},
"Open_DNS":{
"Primary": "208.67.222.222",
"Secondary": "208.67.220.220"
"Secondary": "208.67.220.220",
"Primary6": "2620:119:35::35",
"Secondary6": "2620:119:53::53"
},
"Quad9":{
"Primary": "9.9.9.9",
"Secondary": "149.112.112.112"
"Secondary": "149.112.112.112",
"Primary6": "2620:fe::fe",
"Secondary6": "2620:fe::9"
},
"AdGuard_Ads_Trackers":{
"Primary": "94.140.14.14",
"Secondary": "94.140.15.15",
"Primary6": "2a10:50c0::ad1:ff",
"Secondary6": "2a10:50c0::ad2:ff"
},
"AdGuard_Ads_Trackers_Malware_Adult":{
"Primary": "94.140.14.15",
"Secondary": "94.140.15.16",
"Primary6": "2a10:50c0::bad1:ff",
"Secondary6": "2a10:50c0::bad2:ff"
}
}
}

View File

@ -9,9 +9,8 @@
"NetFx4-AdvSrvs",
"NetFx3"
],
"InvokeScript": [
]
"InvokeScript": [],
"link": "https://christitustech.github.io/winutil/dev/features/Features/dotnet"
},
"WPFFeatureshyperv": {
"Content": "HyperV Virtualization",
@ -31,7 +30,8 @@
],
"InvokeScript": [
"Start-Process -FilePath cmd.exe -ArgumentList '/c bcdedit /set hypervisorschedulertype classic' -Wait"
]
],
"link": "https://christitustech.github.io/winutil/dev/features/Features/hyperv"
},
"WPFFeatureslegacymedia": {
"Content": "Legacy Media (WMP, DirectPlay)",
@ -45,9 +45,8 @@
"DirectPlay",
"LegacyComponents"
],
"InvokeScript": [
]
"InvokeScript": [],
"link": "https://christitustech.github.io/winutil/dev/features/Features/legacymedia"
},
"WPFFeaturewsl": {
"Content": "Windows Subsystem for Linux",
@ -59,9 +58,8 @@
"VirtualMachinePlatform",
"Microsoft-Windows-Subsystem-Linux"
],
"InvokeScript": [
]
"InvokeScript": [],
"link": "https://christitustech.github.io/winutil/dev/features/Features/wsl"
},
"WPFFeaturenfs": {
"Content": "NFS - Network File System",
@ -80,7 +78,8 @@
"Set-ItemProperty -Path 'HKLM:\\SOFTWARE\\Microsoft\\ClientForNFS\\CurrentVersion\\Default' -Name 'AnonymousGID' -Type DWord -Value 0",
"nfsadmin client start",
"nfsadmin client localhost config fileaccess=755 SecFlavors=+sys -krb5 -krb5i"
]
],
"link": "https://christitustech.github.io/winutil/dev/features/Features/nfs"
},
"WPFFeatureEnableSearchSuggestions": {
"Content": "Enable Search Box Web Suggestions in Registry(explorer restart)",
@ -88,8 +87,7 @@
"category": "Features",
"panel": "1",
"Order": "a015_",
"feature": [
],
"feature": [],
"InvokeScript": [
"
If (!(Test-Path 'HKCU:\\SOFTWARE\\Policies\\Microsoft\\Windows\\Explorer')) {
@ -98,7 +96,8 @@
New-ItemProperty -Path 'HKCU:\\SOFTWARE\\Policies\\Microsoft\\Windows\\Explorer' -Name 'DisableSearchBoxSuggestions' -Type DWord -Value 0 -Force
Stop-Process -name explorer -force
"
]
],
"link": "https://christitustech.github.io/winutil/dev/features/Features/EnableSearchSuggestions"
},
"WPFFeatureDisableSearchSuggestions": {
"Content": "Disable Search Box Web Suggestions in Registry(explorer restart)",
@ -106,8 +105,7 @@
"category": "Features",
"panel": "1",
"Order": "a016_",
"feature": [
],
"feature": [],
"InvokeScript": [
"
If (!(Test-Path 'HKCU:\\SOFTWARE\\Policies\\Microsoft\\Windows\\Explorer')) {
@ -116,7 +114,8 @@
New-ItemProperty -Path 'HKCU:\\SOFTWARE\\Policies\\Microsoft\\Windows\\Explorer' -Name 'DisableSearchBoxSuggestions' -Type DWord -Value 1 -Force
Stop-Process -name explorer -force
"
]
],
"link": "https://christitustech.github.io/winutil/dev/features/Features/DisableSearchSuggestions"
},
"WPFFeatureRegBackup": {
"Content": "Enable Daily Registry Backup Task 12.30am",
@ -124,8 +123,7 @@
"category": "Features",
"panel": "1",
"Order": "a017_",
"feature": [
],
"feature": [],
"InvokeScript": [
"
New-ItemProperty -Path 'HKLM:\\SYSTEM\\CurrentControlSet\\Control\\Session Manager\\Configuration Manager' -Name 'EnablePeriodicBackup' -Type DWord -Value 1 -Force
@ -134,7 +132,8 @@
$trigger = New-ScheduledTaskTrigger -Daily -At 00:30
Register-ScheduledTask -Action $action -Trigger $trigger -TaskName 'AutoRegBackup' -Description 'Create System Registry Backups' -User 'System'
"
]
],
"link": "https://christitustech.github.io/winutil/dev/features/Features/RegBackup"
},
"WPFFeatureEnableLegacyRecovery": {
"Content": "Enable Legacy F8 Boot Recovery",
@ -142,8 +141,7 @@
"category": "Features",
"panel": "1",
"Order": "a018_",
"feature": [
],
"feature": [],
"InvokeScript": [
"
If (!(Test-Path 'HKLM:\\SYSTEM\\CurrentControlSet\\Control\\Session Manager\\Configuration Manager\\LastKnownGood')) {
@ -152,7 +150,8 @@
New-ItemProperty -Path 'HKLM:\\SYSTEM\\CurrentControlSet\\Control\\Session Manager\\Configuration Manager\\LastKnownGood' -Name 'Enabled' -Type DWord -Value 1 -Force
Start-Process -FilePath cmd.exe -ArgumentList '/c bcdedit /Set {Current} BootMenuPolicy Legacy' -Wait
"
]
],
"link": "https://christitustech.github.io/winutil/dev/features/Features/EnableLegacyRecovery"
},
"WPFFeatureDisableLegacyRecovery": {
"Content": "Disable Legacy F8 Boot Recovery",
@ -160,8 +159,7 @@
"category": "Features",
"panel": "1",
"Order": "a019_",
"feature": [
],
"feature": [],
"InvokeScript": [
"
If (!(Test-Path 'HKLM:\\SYSTEM\\CurrentControlSet\\Control\\Session Manager\\Configuration Manager\\LastKnownGood')) {
@ -170,104 +168,134 @@
New-ItemProperty -Path 'HKLM:\\SYSTEM\\CurrentControlSet\\Control\\Session Manager\\Configuration Manager\\LastKnownGood' -Name 'Enabled' -Type DWord -Value 0 -Force
Start-Process -FilePath cmd.exe -ArgumentList '/c bcdedit /Set {Current} BootMenuPolicy Standard' -Wait
"
]
],
"link": "https://christitustech.github.io/winutil/dev/features/Features/DisableLegacyRecovery"
},
"WPFFeaturesandbox": {
"WPFFeaturesSandbox": {
"Content": "Windows Sandbox",
"category": "Features",
"panel": "1",
"Order": "a021_",
"Description": "Windows Sandbox is a lightweight virtual machine that provides a temporary desktop environment to safely run applications and programs in isolation."
"Description": "Windows Sandbox is a lightweight virtual machine that provides a temporary desktop environment to safely run applications and programs in isolation.",
"link": "https://christitustech.github.io/winutil/dev/features/Features/Sandbox"
},
"WPFFeatureInstall": {
"Content": "Install Features",
"category": "Features",
"panel": "1",
"Order": "a060_",
"Type": "150"
"Type": "Button",
"ButtonWidth": "300",
"link": "https://christitustech.github.io/winutil/dev/features/Features/Install"
},
"WPFPanelAutologin": {
"Content": "Set Up Autologin",
"category": "Fixes",
"Order": "a040_",
"panel": "1",
"Type": "300"
"Type": "Button",
"ButtonWidth": "300",
"link": "https://christitustech.github.io/winutil/dev/features/Fixes/Autologin"
},
"WPFFixesUpdate": {
"Content": "Reset Windows Update",
"category": "Fixes",
"panel": "1",
"Order": "a041_",
"Type": "300"
"Type": "Button",
"ButtonWidth": "300",
"link": "https://christitustech.github.io/winutil/dev/features/Fixes/Update"
},
"WPFFixesNetwork": {
"Content": "Reset Network",
"category": "Fixes",
"Order": "a042_",
"panel": "1",
"Type": "300"
"Type": "Button",
"ButtonWidth": "300",
"link": "https://christitustech.github.io/winutil/dev/features/Fixes/Network"
},
"WPFPanelDISM": {
"Content": "System Corruption Scan",
"category": "Fixes",
"panel": "1",
"Order": "a043_",
"Type": "300"
"Type": "Button",
"ButtonWidth": "300",
"link": "https://christitustech.github.io/winutil/dev/features/Fixes/DISM"
},
"WPFFixesWinget": {
"Content": "WinGet Reinstall",
"category": "Fixes",
"panel": "1",
"Order": "a044_",
"Type": "300"
"Type": "Button",
"ButtonWidth": "300",
"link": "https://christitustech.github.io/winutil/dev/features/Fixes/Winget"
},
"WPFRunAdobeCCCleanerTool": {
"Content": "Remove Adobe Creative Cloud",
"category": "Fixes",
"panel": "1",
"Order": "a045_",
"Type": "300"
"Type": "Button",
"ButtonWidth": "300",
"link": "https://christitustech.github.io/winutil/dev/features/Fixes/RunAdobeCCCleanerTool"
},
"WPFPanelnetwork": {
"Content": "Network Connections",
"category": "Legacy Windows Panels",
"panel": "2",
"Type": "200"
"Type": "Button",
"ButtonWidth": "300",
"link": "https://christitustech.github.io/winutil/dev/features/Legacy-Windows-Panels/network"
},
"WPFPanelcontrol": {
"Content": "Control Panel",
"category": "Legacy Windows Panels",
"panel": "2",
"Type": "200"
"Type": "Button",
"ButtonWidth": "300",
"link": "https://christitustech.github.io/winutil/dev/features/Legacy-Windows-Panels/control"
},
"WPFPanelpower": {
"Content": "Power Panel",
"category": "Legacy Windows Panels",
"panel": "2",
"Type": "200"
"Type": "Button",
"ButtonWidth": "300",
"link": "https://christitustech.github.io/winutil/dev/features/Legacy-Windows-Panels/power"
},
"WPFPanelregion": {
"Content": "Region",
"category": "Legacy Windows Panels",
"panel": "2",
"Type": "200"
"Type": "Button",
"ButtonWidth": "300",
"link": "https://christitustech.github.io/winutil/dev/features/Legacy-Windows-Panels/region"
},
"WPFPanelsound": {
"Content": "Sound Settings",
"category": "Legacy Windows Panels",
"panel": "2",
"Type": "200"
"Type": "Button",
"ButtonWidth": "300",
"link": "https://christitustech.github.io/winutil/dev/features/Legacy-Windows-Panels/sound"
},
"WPFPanelsystem": {
"Content": "System Properties",
"category": "Legacy Windows Panels",
"panel": "2",
"Type": "200"
"Type": "Button",
"ButtonWidth": "300",
"link": "https://christitustech.github.io/winutil/dev/features/Legacy-Windows-Panels/system"
},
"WPFPaneluser": {
"Content": "User Accounts",
"category": "Legacy Windows Panels",
"panel": "2",
"Type": "200"
"Type": "Button",
"ButtonWidth": "300",
"link": "https://christitustech.github.io/winutil/dev/features/Legacy-Windows-Panels/user"
}
}

View File

@ -1,399 +0,0 @@
# This file is meant to assist in building out the json files inside this folder.
#===========================================================================
# applications.json
#===========================================================================
<#
Applications.json
-----------------
This file holds all the install commands to install the applications.
This file has the ability to expect multiple frameworks per checkbox.
You can also add multiple install commands by separating them with ;
The structure of the json is as follows
{
"Name of Button": {
"winget": "Winget command"
"choco": "Chocolatey command"
},
}
Example:
{
"WPFInstalladobe": {
"winget": "Adobe.Acrobat.Reader.64-bit"
"choco": "adobereader"
},
"WPFInstalladvancedip": {
"winget": "Famatech.AdvancedIPScanner"
"choco": "advanced-ip-scanner"
}
}
#>
# Modify the variables and run his code. It will import the current file and add your addition. From there you can create a pull request.
#------Do not delete WPF------
$NameofButton = "WPF" + ""
$WingetCommand = ""
$ChocoCommand = ""
$ButtonToAdd = New-Object psobject
$jsonfile = Get-Content ./config/applications.json | ConvertFrom-Json
# Remove if already exists
if($jsonfile.$NameofButton){
$jsonfile.psobject.Properties.remove($NameofButton)
}
Add-Member -InputObject $ButtonToAdd -MemberType NoteProperty -Name "Winget" -Value $WingetCommand
Add-Member -InputObject $ButtonToAdd -MemberType NoteProperty -Name "choco" -Value $ChocoCommand
Add-Member -InputObject $jsonfile.install -MemberType NoteProperty -Name $NameofButton -Value $ButtonToAdd
$jsonfile | ConvertTo-Json | Out-File ./config/applications.json
#===========================================================================
# feature.json
#===========================================================================
<#
feature.json
-----------------
This file holds all the windows commands to install specific features (IE Hyper-v)
The structure of the json is as follows
{
"Name of Button": [
"Array of",
"commands"
]
}
Example:
{
"Featurewsl": [
"VirtualMachinePlatform",
"Microsoft-Windows-Subsystem-Linux"
],
"Featurenfs": [
"ServicesForNFS-ClientOnly",
"ClientForNFS-Infrastructure",
"NFS-Administration"
]
}
#>
# Modify the variables and run his code. It will import the current file and add your addition. From there you can create a pull request.
$NameofButton = ""
$commands = @(
)
$jsonfile = Get-Content ./config/feature.json | ConvertFrom-Json
# Remove if already exists
if($jsonfile.$NameofButton){
$jsonfile.psobject.Properties.remove($NameofButton)
}
Add-Member -InputObject $jsonfile -MemberType NoteProperty -Name $NameofButton -Value $commands
$jsonfile | ConvertTo-Json | Out-File ./config/feature.json
#===========================================================================
# preset.json
#===========================================================================
<#
preset.json
-----------------
This file holds all check boxes you wish to check when clicking a preset button in the tweaks section.
The structure of the json is as follows
{
"Name of Button": [
"Array of",
"checkboxes to check"
]
}
Example:
{
"laptop": [
"EssTweaksAH",
"EssTweaksDVR",
"EssTweaksHome",
"EssTweaksLoc",
"EssTweaksOO",
"EssTweaksRP",
"EssTweaksServices",
"EssTweaksStorage",
"EssTweaksTele",
"EssTweaksWifi",
"MiscTweaksLapPower",
"MiscTweaksLapNum"
],
"minimal": [
"EssTweaksHome",
"EssTweaksOO",
"EssTweaksRP",
"EssTweaksServices",
"EssTweaksTele"
]
}
#>
# Modify the variables and run his code. It will import the current file and add your addition. From there you can create a pull request.
$NameofButton = "WPF" + ""
$commands = @(
)
$jsonfile = Get-Content ./config/preset.json | ConvertFrom-Json
# Remove if already exists
if($jsonfile.$NameofButton){
$jsonfile.psobject.Properties.remove($NameofButton)
}
Add-Member -InputObject $jsonfile -MemberType NoteProperty -Name $NameofButton -Value $commands
$jsonfile | ConvertTo-Json | Out-File ./config/preset.json
#===========================================================================
# tweaks.json
#===========================================================================
<#
tweaks.json
-----------------
This file holds all the tweaks needed to make modifications to windows. This file is the most complicated so modify with care.
The structure of the json is as follows
{
"Name of button": {
"registry" : [
{
"Path": "Path in registry",
"Name": "Name of Registry key",
"Type": "Item type",
"Value": "Value to modify",
"OriginalValue": "value to reset"
}
],
"service" : [
{
"Name": "Name of service",
"StartupType": "Startup type to set",
"OriginalType": "Startup type to reset"
}
],
"ScheduledTask" : [
{
"Name": "Path to scheduled task",
"State": "State to set",
"OriginalState": "State to reset"
}
],
"appx": [
List of appx,
files to uninstall
],
"InvokeScript": [
"Script to make modifications not possible with the above types
Special care needs to be taken here as converting from json to a scriptblock
can cause weird issues. Please look at the example below to get an idea of how things should work"
],
"UndoScript": [
"Same as above however is meant to undo what you did above"
]
}
}
Example:
{
EssTweaksAH": {
"registry" : [
{
"Path": "HKLM:\\SOFTWARE\\Policies\\Microsoft\\Windows\\System",
"Name": "EnableActivityFeed",
"Type": "DWord",
"Value": "0",
"OriginalValue": "1"
},
{
"Path": "HKLM:\\SOFTWARE\\Policies\\Microsoft\\Windows\\System",
"Name": "PublishUserActivities",
"Type": "DWord",
"Value": "0",
"OriginalValue": "1"
}
]
},
"EssTweaksHome": {
"service" : [
{
"Name": "HomeGroupListener",
"StartupType": "Manual",
"OriginalType": "Automatic"
},
{
"Name": "HomeGroupProvider",
"StartupType": "Manual",
"OriginalType": "Automatic"
}
]
},
"EssTweaksTele": {
"ScheduledTask" : [
{
"Name": "Microsoft\\Windows\\Application Experience\\Microsoft Compatibility Appraiser",
"State": "Disabled",
"OriginalState": "Enabled"
},
{
"Name": "Microsoft\\Windows\\Application Experience\\ProgramDataUpdater",
"State": "Disabled",
"OriginalState": "Enabled"
}
]
},
"EssTweaksDeBloat": {
"appx": [
"Microsoft.Microsoft3DViewer",
"Microsoft.AppConnector"
]
},
"EssTweaksOO": {
"InvokeScript": [
"Import-Module BitsTransfer
Start-BitsTransfer -Source \"https://raw.githubusercontent.com/ChrisTitusTech/win10script/master/ooshutup10.cfg\" -Destination C:\\Windows\\Temp\\ooshutup10.cfg
Start-BitsTransfer -Source \"https://dl5.oo-software.com/files/ooshutup10/OOSU10.exe\" -Destination C:\\Windows\\Temp\\OOSU10.exe
C:\\Windows\\Temp\\OOSU10.exe C:\\Windows\\Temp\\ooshutup10.cfg /quiet"
]
}
}
#>
# Modify the variables and run his code. It will import the current file and add your addition. From there you can create a pull request.
# Make sure to uncomment the sections you which to add.
#$Registry = @(
# # To add more repeat this separated by a comma
# @{
# Path = ""
# Name = ""
# Type = ""
# Value = ""
# OriginalValue = ""
# }
#)
#$Service = @(
# # To add more repeat this separated by a comma
# @{
# Name = ""
# StartupType = ""
# OriginalType = ""
# }
#)
#$ScheduledTask = @(
# # To add more repeat this separated by a comma
# @{
# Name = ""
# State = ""
# OriginalState = ""
# }
#)
#$Appx = @(
# ""
#)
#$InvokeScript = @(
# ""
#)
#$UndoScript = @(
# ""
#)
$NameofButton = "WPF" + ""
$ButtonToAdd = New-Object psobject
$jsonfile = Get-Content ./config/tweaks.json | ConvertFrom-Json
# Remove if already exists
if($jsonfile.$NameofButton){
$jsonfile.psobject.Properties.remove($NameofButton)
}
if($Registry){Add-Member -InputObject $ButtonToAdd -MemberType NoteProperty -Name "registry" -Value $Registry}
if($Service){Add-Member -InputObject $ButtonToAdd -MemberType NoteProperty -Name "service" -Value $Service}
if($ScheduledTask){Add-Member -InputObject $ButtonToAdd -MemberType NoteProperty -Name "ScheduledTask" -Value $ScheduledTask}
if($Appx){Add-Member -InputObject $ButtonToAdd -MemberType NoteProperty -Name "Appx" -Value $Appx}
if($InvokeScript){Add-Member -InputObject $ButtonToAdd -MemberType NoteProperty -Name "InvokeScript" -Value $InvokeScript}
if($UndoScript){Add-Member -InputObject $ButtonToAdd -MemberType NoteProperty -Name "UndoScript" -Value $UndoScript}
Add-Member -InputObject $jsonfile -MemberType NoteProperty -Name $NameofButton -Value $ButtonToAdd
($jsonfile | ConvertTo-Json -Depth 5).replace('\r\n',"`r`n") | Out-File ./config/tweaks.json
#===========================================================================
# dns.json
#===========================================================================
<#
dns.json
-----------------
This file holds all the DNS entries.
The structure of the json is as follows
{
"DNS Provider": [
"Primary": "IP address",
"Secondary": "IP address"
]
}
Example:
{
"Cloudflare":{
"Primary": "1.1.1.1",
"Secondary": "1.0.0.1"
}
}
#>
# Modify the variables and run his code. It will import the current file and add your addition. From there you can create a pull request.
$NameofProvider = "" -replace " ","_"
$IPAddress = @{
"Primary" = "0.0.0.0"
"Secondary" = "0.0.0.0"
}
$ButtonToAdd = New-Object psobject
$jsonfile = Get-Content ./config/dns.json | ConvertFrom-Json
# Remove if already exists
if($jsonfile.$NameofProvider){
$jsonfile.psobject.Properties.remove($NameofProvider)
}
Add-Member -InputObject $jsonfile -MemberType NoteProperty -Name $NameofProvider -Value $IPAddress
($jsonfile | ConvertTo-Json -Depth 5).replace('\r\n',"`r`n") | Out-File ./config/dns.json

View File

@ -1,32 +1,25 @@
{
"desktop": [
"Standard": [
"WPFTweaksAH",
"WPFTweaksConsumerFeatures",
"WPFTweaksDVR",
"WPFTweaksHiber",
"WPFTweaksHome",
"WPFTweaksLoc",
"WPFTweaksOO",
"WPFTweaksServices",
"WPFTweaksStorage",
"WPFTweaksTele",
"WPFTweaksWifi",
"WPFMiscTweaksPower"
"WPFTweaksDiskCleanup",
"WPFTweaksDeleteTempFiles",
"WPFTweaksEndTaskOnTaskbar",
"WPFTweaksRestorePoint",
"WPFTweaksTeredo",
"WPFTweaksPowershell7Tele"
],
"laptop": [
"WPFTweaksAH",
"WPFTweaksDVR",
"Minimal": [
"WPFTweaksConsumerFeatures",
"WPFTweaksHome",
"WPFTweaksLoc",
"WPFTweaksOO",
"WPFTweaksServices",
"WPFTweaksStorage",
"WPFTweaksTele",
"WPFTweaksWifi",
"WPFMiscTweaksLapPower"
],
"minimal": [
"WPFTweaksHome",
"WPFTweaksOO",
"WPFTweaksServices",
"WPFTweaksTele"
]

View File

@ -1,14 +1,55 @@
{
"Classic": {
"Classic": {
"CustomDialogFontSize": "12",
"CustomDialogFontSizeHeader": "14",
"CustomDialogIconSize": "25",
"CustomDialogWidth": "400",
"CustomDialogHeight": "200",
"FontSize": "12",
"FontFamily": "Arial",
"FontSizeHeading": "14",
"HeaderFontFamily": "Consolas, Monaco",
"CheckBoxBulletDecoratorFontSize": "14",
"CheckBoxMargin": "15,0,0,2",
"TabButtonFontSize": "14",
"TabButtonWidth": "100",
"TabButtonHeight": "25",
"TabRowHeightInPixels": "50",
"IconFontSize": "14",
"IconButtonSize": "35",
"WinUtilIconSize": "Auto",
"SettingsIconFontSize": "18",
"MicroWinLogoSize": "10",
"ProgressBarForegroundColor": "#FFAC1C",
"ProgressBarBackgroundColor": "Transparent",
"ProgressBarTextColor": "#000000",
"ComboBoxBackgroundColor": "#FFFFFF",
"LabelboxForegroundColor": "#000000",
"MainForegroundColor": "#000000",
"MainBackgroundColor": "#FFFFFF",
"LabelBackgroundColor": "#FAFAFA",
"LinkForegroundColor": "#000000",
"LinkHoverForegroundColor": "#000000",
"LinkHoverForegroundColor": "#000000",
"GroupBorderBackgroundColor": "#000000",
"ComboBoxForegroundColor": "#000000",
"ButtonFontSize": "12",
"ButtonFontFamily": "Arial",
"ButtonWidth": "200",
"ButtonHeight": "25",
"ConfigTabButtonFontSize": "16",
"SearchBarWidth": "200",
"SearchBarHeight": "25",
"SearchBarTextBoxFontSize": "16",
"SearchBarClearButtonFontSize": "14",
"ButtonInstallBackgroundColor": "#FFFFFF",
"ButtonTweaksBackgroundColor": "#FFFFFF",
"ButtonConfigBackgroundColor": "#FFFFFF",
@ -23,42 +64,157 @@
"ButtonBackgroundMouseoverColor": "#C2C2C2",
"ButtonBackgroundSelectedColor": "#F0F0F0",
"ButtonForegroundColor": "#000000",
"ToggleButtonOnColor": "#2e77ff",
"ButtonBorderThickness": "1",
"ButtonMargin": "1",
"ButtonCornerRadius": "2",
"ToggleButtonHeight": "25",
"BorderColor": "#000000",
"BorderOpacity": "0.2",
"ShadowPulse": "Forever"
},
},
"Matrix": {
"ComboBoxBackgroundColor": "#000000",
"LabelboxForegroundColor": "#FFEE58",
"MainForegroundColor": "#9CCC65",
"MainBackgroundColor": "#000000",
"LabelBackgroundColor": "#000000",
"LinkForegroundColor": "#add8e6",
"LinkHoverForegroundColor": "#FFFFFF",
"ComboBoxForegroundColor": "#FFEE58",
"ButtonInstallBackgroundColor": "#222222",
"ButtonTweaksBackgroundColor": "#333333",
"ButtonConfigBackgroundColor": "#444444",
"ButtonUpdatesBackgroundColor": "#555555",
"ButtonInstallForegroundColor": "#FFFFFF",
"ButtonTweaksForegroundColor": "#FFFFFF",
"ButtonConfigForegroundColor": "#FFFFFF",
"ButtonUpdatesForegroundColor": "#FFFFFF",
"ButtonBackgroundColor": "#000019",
"ButtonBackgroundPressedColor": "#FFFFFF",
"ButtonBackgroundMouseoverColor": "#A55A64",
"ButtonBackgroundSelectedColor": "#FF5733",
"ButtonForegroundColor": "#9CCC65",
"ButtonBorderThickness": "1",
"ButtonMargin": "1",
"ButtonCornerRadius": "2",
"ToggleButtonHeight": "25",
"BorderColor": "#FFAC1C",
"BorderOpacity": "0.8",
"ShadowPulse": "0:0:3"
"CustomDialogFontSize": "12",
"CustomDialogFontSizeHeader": "14",
"CustomDialogIconSize": "25",
"CustomDialogWidth": "400",
"CustomDialogHeight": "200",
"FontSize": "12",
"FontFamily": "Arial",
"FontSizeHeading": "14",
"HeaderFontFamily": "Consolas, Monaco",
"CheckBoxBulletDecoratorFontSize": "14",
"CheckBoxMargin": "15,0,0,2",
"TabButtonFontSize": "14",
"TabButtonWidth": "100",
"TabButtonHeight": "25",
"TabRowHeightInPixels": "50",
"IconFontSize": "14",
"IconButtonSize": "35",
"WinUtilIconSize": "Auto",
"SettingsIconFontSize": "18",
"MicroWinLogoSize": "10",
"ProgressBarForegroundColor": "#222222",
"ProgressBarBackgroundColor": "Transparent",
"ProgressBarTextColor": "#cccccc",
"ComboBoxBackgroundColor": "#000000",
"LabelboxForegroundColor": "#FFEE58",
"MainForegroundColor": "#9CCC65",
"MainBackgroundColor": "#000000",
"LabelBackgroundColor": "#000000",
"LinkForegroundColor": "#add8e6",
"LinkHoverForegroundColor": "#FFFFFF",
"ComboBoxForegroundColor": "#FFEE58",
"ButtonFontSize": "12",
"ButtonFontFamily": "Arial",
"ButtonWidth": "200",
"ButtonHeight": "25",
"ConfigTabButtonFontSize": "16",
"SearchBarWidth": "200",
"SearchBarHeight": "25",
"SearchBarTextBoxFontSize": "16",
"SearchBarClearButtonFontSize": "14",
"ButtonInstallBackgroundColor": "#222222",
"ButtonTweaksBackgroundColor": "#333333",
"ButtonConfigBackgroundColor": "#444444",
"ButtonUpdatesBackgroundColor": "#555555",
"ButtonInstallForegroundColor": "#FFFFFF",
"ButtonTweaksForegroundColor": "#FFFFFF",
"ButtonConfigForegroundColor": "#FFFFFF",
"ButtonUpdatesForegroundColor": "#FFFFFF",
"ButtonBackgroundColor": "#000019",
"ButtonBackgroundPressedColor": "#FFFFFF",
"ButtonBackgroundMouseoverColor": "#A55A64",
"ButtonBackgroundSelectedColor": "#FF5733",
"ButtonForegroundColor": "#9CCC65",
"ToggleButtonOnColor": "#2e77ff",
"ButtonBorderThickness": "1",
"ButtonMargin": "1",
"ButtonCornerRadius": "2",
"BorderColor": "#FFAC1C",
"BorderOpacity": "0.8",
"ShadowPulse": "0:0:3"
},
"Dark": {
"CustomDialogFontSize": "12",
"CustomDialogFontSizeHeader": "14",
"CustomDialogIconSize": "25",
"CustomDialogWidth": "400",
"CustomDialogHeight": "200",
"FontSize": "12",
"FontFamily": "Arial",
"FontSizeHeading": "14",
"HeaderFontFamily": "Consolas, Monaco",
"CheckBoxBulletDecoratorFontSize": "14",
"CheckBoxMargin": "15,0,0,2",
"TabButtonFontSize": "14",
"TabButtonWidth": "100",
"TabButtonHeight": "25",
"TabRowHeightInPixels": "50",
"IconFontSize": "14",
"IconButtonSize": "35",
"WinUtilIconSize": "Auto",
"SettingsIconFontSize": "18",
"MicroWinLogoSize": "10",
"ProgressBarForegroundColor": "#222222",
"ProgressBarBackgroundColor": "Transparent",
"ProgressBarTextColor": "#FFFFFF",
"ComboBoxBackgroundColor": "#000000",
"LabelboxForegroundColor": "#FFEE58",
"MainForegroundColor": "#9CCC65",
"MainBackgroundColor": "#000000",
"LabelBackgroundColor": "#000000",
"LinkForegroundColor": "#add8e6",
"LinkHoverForegroundColor": "#FFFFFF",
"ComboBoxForegroundColor": "#FFEE58",
"ButtonFontSize": "12",
"ButtonFontFamily": "Arial",
"ButtonWidth": "200",
"ButtonHeight": "25",
"ConfigTabButtonFontSize": "16",
"SearchBarWidth": "200",
"SearchBarHeight": "25",
"SearchBarTextBoxFontSize": "16",
"SearchBarClearButtonFontSize": "14",
"ButtonInstallBackgroundColor": "#222222",
"ButtonTweaksBackgroundColor": "#333333",
"ButtonConfigBackgroundColor": "#444444",
"ButtonUpdatesBackgroundColor": "#555555",
"ButtonInstallForegroundColor": "#FFFFFF",
"ButtonTweaksForegroundColor": "#FFFFFF",
"ButtonConfigForegroundColor": "#FFFFFF",
"ButtonUpdatesForegroundColor": "#FFFFFF",
"ButtonBackgroundColor": "#000019",
"ButtonBackgroundPressedColor": "#9CCC65",
"ButtonBackgroundMouseoverColor": "#FF5733",
"ButtonBackgroundSelectedColor": "#FF5733",
"ButtonForegroundColor": "#9CCC65",
"ToggleButtonOnColor": "#2e77ff",
"ButtonBorderThickness": "1",
"ButtonMargin": "1",
"ButtonCornerRadius": "2",
"BorderColor": "#FFAC1C",
"BorderOpacity": "0.2",
"ShadowPulse": "Forever"
}
}

File diff suppressed because it is too large Load Diff

644
devdocs-generator.ps1 Normal file
View File

@ -0,0 +1,644 @@
<#
.DESCRIPTION
This script generates markdown files for the development documentation based on the existing JSON files.
Create table of content and archive any files in the dev folder not modified by this script.
This script is not meant to be used manually, it is called by the github action workflow.
#>
function Process-MultilineStrings {
param (
[Parameter(Mandatory, position=0)]
[string]$str
)
$lines = $str.Split("`r`n")
$count = $lines.Count
# Loop through every line, expect last line in the string
# We'll add it after the for loop
for ($i = 0; $i -lt ($count - 1); $i++) {
$line = $lines[$i]
$processedStr += $line -replace ('^\s*\\\\', '')
# Add the previously removed NewLine character by 'Split' Method
$processedStr += "`r`n"
}
# Add last line *without* a NewLine character.
$processedStr += $lines[$($count - 1)] -replace ('^\s*\\\\', '')
return $processedStr
}
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
}
function Load-Functions {
param (
[Parameter(Mandatory, position=0)]
[string]$dir
)
Get-ChildItem -Path $dir -Filter *.ps1 | ForEach-Object {
$functionName = $_.BaseName
$functionContent = Get-Content -Path $_.FullName -Raw
$functions[$functionName] = $functionContent
}
}
function Get-CalledFunctions {
param (
[Parameter(Mandatory, position=0)]
$scriptContent,
[Parameter(Mandatory, position=1)]
[hashtable]$functionList,
[Parameter(Mandatory, position=2)]
[ref]$processedFunctions
)
$calledFunctions = @()
foreach ($functionName in $functionList.Keys) {
if ($scriptContent -match "\b$functionName\b" -and -not $processedFunctions.Value.Contains($functionName)) {
$calledFunctions += $functionName
$processedFunctions.Value.Add($functionName)
if ($functionList[$functionName]) {
$nestedFunctions = Get-CalledFunctions -scriptContent $functionList[$functionName] -functionList $functionList -processedFunctions $processedFunctions
$calledFunctions += $nestedFunctions
}
}
}
return $calledFunctions
}
function Get-AdditionalFunctionsFromToggle {
param (
[Parameter(Mandatory, position=0)]
[string]$buttonName
)
$invokeWpfToggleContent = Get-Content -Path "$publicFunctionsDir/Invoke-WPFToggle.ps1" -Raw
$lines = $invokeWpfToggleContent -split "`r`n"
foreach ($line in $lines) {
if ($line -match "`"$buttonName`" \{Invoke-(WinUtil[a-zA-Z]+)") {
return $matches[1]
}
}
}
function Get-AdditionalFunctionsFromButton {
param (
[Parameter(Mandatory, position=0)]
[string]$buttonName
)
$invokeWpfButtonContent = Get-Content -Path "$publicFunctionsDir/Invoke-WPFButton.ps1" -Raw
$lines = $invokeWpfButtonContent -split "`r`n"
foreach ($line in $lines) {
if ($line -match "`"$buttonName`" \{Invoke-(WPF[a-zA-Z]+)") {
return $matches[1]
}
}
}
function Add-LinkAttribute {
param (
[Parameter(Mandatory)]
[PSCustomObject]$jsonObject
)
$totalProperties = ($jsonObject.PSObject.Properties | Measure-Object).Count
$progressIncrement = 50 / $totalProperties
$currentProgress = 50
foreach ($property in $jsonObject.PSObject.Properties) {
if ($property.Value -is [PSCustomObject]) {
Add-LinkAttribute -jsonObject $property.Value
} elseif ($property.Value -is [System.Collections.ArrayList]) {
foreach ($item in $property.Value) {
if ($item -is [PSCustomObject]) {
Add-LinkAttribute -jsonObject $item
}
}
}
$currentProgress += $progressIncrement
$roundedProgress = [math]::Round($currentProgress)
Update-Progress -StatusMessage "Adding documentation links" -Percent $roundedProgress
}
if ($jsonObject -ne $global:rootObject) {
$jsonObject | Add-Member -NotePropertyName "link" -NotePropertyValue "" -Force
}
}
function Generate-MarkdownFiles {
param (
[Parameter(Mandatory, position=0)]
[PSCustomObject]$data,
[Parameter(Mandatory, position=1)]
[string]$outputDir,
[Parameter(Mandatory, position=2)]
[string]$jsonFilePath,
[Parameter(Mandatory, position=3)]
[string]$lastModified,
[Parameter(Mandatory, position=4)]
[string]$type,
[Parameter(position=5)]
[int]$initialProgress
)
# TODO: Make the function reference generation better by making a Graph, so it highlights
# Which function "depends" on which, and makes it clearer on a high-level for the reader
# to understand the general structure.
$totalItems = ($data.PSObject.Properties | Measure-Object).Count
$progressIncrement = 10 / $totalItems
$currentProgress = [int]$initialProgress
$tocEntries = @()
$processedFiles = @()
foreach ($itemName in $data.PSObject.Properties.Name) {
# Create Category Directory if needed.
$itemDetails = $data.$itemName
$category = $itemDetails.category -replace '[^a-zA-Z0-9]', '-'
$categoryDir = "$outputDir/$category"
if (-Not (Test-Path -Path $categoryDir)) {
New-Item -ItemType Directory -Path $categoryDir | Out-Null
}
# Create empty files with correct path
$fullItemName = $itemName
$displayName = $itemName -replace $itemnametocut, ''
$filename = "$categoryDir/$displayName.md"
$relativePath = "$outputDir/$category/$displayName.md" -replace '^docs/', ''
if (-Not (Test-Path -Path $filename)) {
Set-Content -Path $filename -Value "" -Encoding utf8
}
# Add the entry to 'tocEntries' so we can generate Table Of Content easily
# And add the Full FileName of entry
$tocEntries += @{
Category = $category
Path = $relativePath
Name = $itemDetails.Content
Type = $type
}
$processedFiles += (Get-Item $filename).FullName
$header = "# $([string]$itemDetails.Content)" + "`r`n"
$lastUpdatedNotice = "Last Updated: $lastModified" + "`r`n"
$autoupdatenotice = Process-MultilineStrings @"
\\!!! info
\\ The Development Documentation is auto generated for every compilation of WinUtil, meaning a part of it will always stay up-to-date. **Developers do have the ability to add custom content, which won't be updated automatically.**
"@
$description = Process-MultilineStrings @"
\\## Description
\\
\\$([string]$itemDetails.Description)
"@
$jsonContent = ($itemDetails | ConvertTo-Json -Depth 10).replace('\n',"`n").replace('\r', "`r")
$codeBlock = Process-MultilineStrings @"
\\<details>
\\<summary>Preview Code</summary>
\\
\\``````json
\\$jsonContent
\\``````
\\
\\</details>
"@
# Clear the variable before continuing, will cause problems otherwise
$FeaturesDocs = ""
if ($itemDetails.feature) {
$FeaturesDocs += Process-MultilineStrings @"
\\## Features
\\
\\
\\Optional Windows Features are additional functionalities or components in the Windows operating system that users can choose to enable or disable based on their specific needs and preferences.
\\
\\
\\You can find information about Optional Windows Features on [Microsoft's Website for Optional Features](https://learn.microsoft.com/en-us/windows/client-management/client-tools/add-remove-hide-features?pivots=windows-11).
\\
\\
"@
if (($itemDetails.feature).Count -gt 1) {
$FeaturesDocs += "### Features to install" + "`r`n"
} else {
$FeaturesDocs += "### Feature to install" + "`r`n"
}
foreach ($feature in $itemDetails.feature) {
$FeaturesDocs += "- $($feature)" + "`r`n"
}
}
# Clear the variable before continuing, will cause problems otherwise
$InvokeScript = ""
if ($itemDetails.InvokeScript) {
$InvokeScriptContent = $itemDetails.InvokeScript | Out-String
$InvokeScript = Process-MultilineStrings @"
\\## Invoke Script
\\
\\``````powershell
\\$InvokeScriptContent
\\``````
"@
}
# Clear the variable before continuing, will cause problems otherwise
$UndoScript = ""
if ($itemDetails.UndoScript) {
$UndoScriptContent = $itemDetails.UndoScript | Out-String
$UndoScript = Process-MultilineStrings @"
\\## Undo Script
\\
\\``````powershell
\\$UndoScriptContent
\\``````
"@
}
# Clear the variable before continuing, will cause problems otherwise
$ToggleScript = ""
if ($itemDetails.ToggleScript) {
$ToggleScriptContent = $itemDetails.ToggleScript | Out-String
$ToggleScript = Process-MultilineStrings @"
\\## Toggle Script
\\
\\``````powershell
\\$ToggleScriptContent
\\``````
"@
}
# Clear the variable before continuing, will cause problems otherwise
$ButtonScript = ""
if ($itemDetails.ButtonScript) {
$ButtonScriptContent = $itemDetails.ButtonScript | Out-String
$ButtonScript = Process-MultilineStrings @"
\\## Button Script
\\
\\``````powershell
\\$ButtonScriptContent
\\``````
"@
}
# Clear the variable before continuing, will cause problems otherwise
$FunctionDetails = ""
$processedFunctions = New-Object 'System.Collections.Generic.HashSet[System.String]'
$allScripts = @($itemDetails.InvokeScript, $itemDetails.UndoScript, $itemDetails.ToggleScript, $itemDetails.ButtonScript)
foreach ($script in $allScripts) {
if ($script) {
$calledFunctions = Get-CalledFunctions -scriptContent $script -functionList $functions -processedFunctions ([ref]$processedFunctions)
foreach ($functionName in $calledFunctions) {
if ($functions.ContainsKey($functionName)) {
$FunctionDetails += Process-MultilineStrings @"
\\## Function: $functionName
\\
\\``````powershell
\\$($functions[$functionName])
\\``````
\\
"@
}
}
}
}
$additionalFunctionToggle = Get-AdditionalFunctionsFromToggle -buttonName $fullItemName
if ($additionalFunctionToggle) {
$additionalFunctionNameToggle = "Invoke-$additionalFunctionToggle"
if ($functions.ContainsKey($additionalFunctionNameToggle) -and -not $processedFunctions.Contains($additionalFunctionNameToggle)) {
$FunctionDetails += Process-MultilineStrings @"
\\## Function: $additionalFunctionNameToggle
\\
\\``````powershell
\\$($functions[$additionalFunctionNameToggle])
\\``````
\\
"@
$processedFunctions.Add($additionalFunctionNameToggle)
}
}
$additionalFunctionButton = Get-AdditionalFunctionsFromButton -buttonName $fullItemName
if ($additionalFunctionButton) {
$additionalFunctionNameButton = "Invoke-$additionalFunctionButton"
if ($functions.ContainsKey($additionalFunctionNameButton) -and -not $processedFunctions.Contains($additionalFunctionNameButton)) {
$FunctionDetails += Process-MultilineStrings @"
\\## Function: $additionalFunctionNameButton
\\
\\``````powershell
\\$($functions[$additionalFunctionNameButton])
\\``````
\\
"@
$processedFunctions.Add($additionalFunctionNameButton)
}
}
# Clear the variable before continuing, will cause problems otherwise
$registryDocs = ""
if ($itemDetails.registry) {
$registryDocs += Process-MultilineStrings @"
\\## 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://www.wikiwand.com/en/Windows_Registry) and [Microsoft's Website](https://learn.microsoft.com/en-us/windows/win32/sysinfo/registry).
\\
\\
"@
foreach ($regEntry in $itemDetails.registry) {
$registryDocs += Process-MultilineStrings @"
\\### Registry Key: $($regEntry.Name)
\\
\\**Type:** $($regEntry.Type)
\\
\\**Original Value:** $($regEntry.OriginalValue)
\\
\\**New Value:** $($regEntry.Value)
\\
\\
"@
}
}
# Clear the variable before continuing, will cause problems otherwise
$serviceDocs = ""
if ($itemDetails.service) {
$serviceDocs = Process-MultilineStrings @"
\\## Service Changes
\\
\\Windows services are background processes for system functions or applications. Setting some to manual optimizes performance by starting them only when needed.
\\
\\You can find information about services on [Wikipedia](https://www.wikiwand.com/en/Windows_service) and [Microsoft's Website](https://learn.microsoft.com/en-us/dotnet/framework/windows-services/introduction-to-windows-service-applications).
\\
\\
"@
foreach ($service in $itemDetails.service) {
$serviceDocs += Process-MultilineStrings @"
\\### Service Name: $($service.Name)
\\
\\**Startup Type:** $($service.StartupType)
\\
\\**Original Type:** $($service.OriginalType)
\\
\\
"@
}
}
# Clear the variable before continuing, will cause problems otherwise
$scheduledTaskDocs = ""
if ($itemDetails.ScheduledTask) {
$scheduledTaskDocs = Process-MultilineStrings @"
\\## Scheduled Task Changes
\\
\\Windows scheduled tasks are used to run scripts or programs at specific times or events. Disabling unnecessary tasks can improve system performance and reduce unwanted background activity.
\\
\\
\\You can find information about scheduled tasks on [Wikipedia](https://www.wikiwand.com/en/Windows_Task_Scheduler) and [Microsoft's Website](https://learn.microsoft.com/en-us/windows/desktop/taskschd/about-the-task-scheduler).
\\
\\
"@
foreach ($task in $itemDetails.ScheduledTask) {
$scheduledTaskDocs += Process-MultilineStrings @"
\\### Task Name: $($task.Name)
\\
\\**State:** $($task.State)
\\
\\**Original State:** $($task.OriginalState)
\\
\\
"@
}
}
$jsonLink = "[View the JSON file](https://github.com/ChrisTitusTech/winutil/tree/main/$jsonFilePath)"
$customContentStartTag = "<!-- BEGIN CUSTOM CONTENT -->"
$customContentEndTag = "<!-- END CUSTOM CONTENT -->"
$secondCustomContentStartTag = "<!-- BEGIN SECOND CUSTOM CONTENT -->"
$secondCustomContentEndTag = "<!-- END SECOND CUSTOM CONTENT -->"
if (Test-Path -Path "$filename") {
$existingContent = Get-Content -Path "$filename" -Raw
$customContentPattern = "(?s)$customContentStartTag(.*?)$customContentEndTag"
$secondCustomContentPattern = "(?s)$secondCustomContentStartTag(.*?)$secondCustomContentEndTag"
if ($existingContent -match $customContentPattern) {
$customContent = $matches[1].Trim()
}
if ($existingContent -match $secondCustomContentPattern) {
$secondCustomContent = $matches[1].Trim()
}
}
$fileContent = Process-MultilineStrings @"
\\$header
\\$lastUpdatedNotice
\\
\\$autoupdatenotice
\\$( if ($itemDetails.Description) { $description } )
\\
\\$customContentStartTag
\\$customContent
\\$customContentEndTag
\\
\\$codeBlock
\\
\\$(
if ($FeaturesDocs) { $FeaturesDocs + "`r`n" }
if ($itemDetails.InvokeScript) { $InvokeScript + "`r`n" }
if ($itemDetails.UndoScript) { $UndoScript + "`r`n" }
if ($itemDetails.ToggleScript) { $ToggleScript + "`r`n" }
if ($itemDetails.ButtonScript) { $ButtonScript + "`r`n" }
if ($FunctionDetails) { $FunctionDetails + "`r`n" }
if ($itemDetails.registry) { $registryDocs + "`r`n" }
if ($itemDetails.service) { $serviceDocs + "`r`n" }
if ($itemDetails.ScheduledTask) { $scheduledTaskDocs + "`r`n" }
)
\\$secondCustomContentStartTag
\\$secondCustomContent
\\$secondCustomContentEndTag
\\
\\
\\$jsonLink
"@
Set-Content -Path "$filename" -Value "$fileContent" -Encoding utf8
# TODO: For whatever reason, some headers have a space before them,
# so as a temporary fix.. we'll remove these it so mkdocs can render properly
(Get-Content -Raw -Path "$filename").Replace(' ##', '##') | Set-Content "$filename"
$currentProgress += $progressIncrement
$roundedProgress = [math]::Round($currentProgress)
Update-Progress -StatusMessage "Generating content for documentation" -Percent $roundedProgress
}
return [PSCustomObject]@{
TocEntries = $tocEntries
ProcessedFiles = $processedFiles
}
}
function Generate-TypeSectionContent {
param (
[array]$entries
)
$totalEntries = $entries.Count
$progressIncrement = 10 / $totalEntries
$currentProgress = 90
$sectionContent = ""
$categories = @{}
foreach ($entry in $entries) {
if (-Not $categories.ContainsKey($entry.Category)) {
$categories[$entry.Category] = @()
}
$categories[$entry.Category] += $entry
$currentProgress += $progressIncrement
$roundedProgress = [math]::Round($currentProgress)
Update-Progress -StatusMessage "Generating table of contents" -Percent $roundedProgress
}
foreach ($category in $categories.Keys) {
$sectionContent += "### $category`r`n`r`n"
foreach ($entry in $categories[$category]) {
$sectionContent += "- [$($entry.Name)]($($entry.Path))`r`n"
}
}
return $sectionContent
}
function Add-LinkAttributeToJson {
param (
[string]$jsonFilePath,
[string]$outputDir
)
$jsonText = Get-Content -Path $jsonFilePath -Raw
$jsonData = $jsonText | ConvertFrom-Json
$totalItems = ($jsonData.PSObject.Properties | Measure-Object).Count
$progressIncrement = 20 / $totalItems
$currentProgress = 70
foreach ($item in $jsonData.PSObject.Properties) {
$itemName = $item.Name
$itemDetails = $item.Value
$category = $itemDetails.category -replace '[^a-zA-Z0-9]', '-'
$displayName = $itemName -replace "$itemnametocut", ''
$relativePath = "$outputDir/$category/$displayName" -replace '^docs/', ''
$docLink = "https://christitustech.github.io/winutil/$relativePath"
$jsonData.$itemName.link = $docLink
$currentProgress += $progressIncrement
$roundedProgress = [math]::Round($currentProgress)
Update-Progress -StatusMessage "Adding documentation links to JSON" -Percent $roundedProgress
}
$jsonText = ($jsonData | ConvertTo-Json -Depth 10).replace('\n',"`n").replace('\r', "`r")
Set-Content -Path $jsonFilePath -Value ($jsonText) -Encoding utf8
}
Update-Progress "Loading JSON files" 10
$tweaks = Get-Content -Path "config/tweaks.json" | ConvertFrom-Json
$features = Get-Content -Path "config/feature.json" | ConvertFrom-Json
Update-Progress "Getting last modified dates of the JSON files" 20
$tweaksLastModified = (Get-Item "config/tweaks.json").LastWriteTime.ToString("yyyy-MM-dd")
$featuresLastModified = (Get-Item "config/feature.json").LastWriteTime.ToString("yyyy-MM-dd")
$tweaksOutputDir = "docs/dev/tweaks"
$featuresOutputDir = "docs/dev/features"
$privateFunctionsDir = "functions/private"
$publicFunctionsDir = "functions/public"
$functions = @{}
$itemnametocut = "WPF(WinUtil|Toggle|Features?|Tweaks?|Panel|Fix(es)?)?"
Update-Progress "Creating Directories" 30
if (-Not (Test-Path -Path $tweaksOutputDir)) {
New-Item -ItemType Directory -Path $tweaksOutputDir | Out-Null
}
if (-Not (Test-Path -Path $featuresOutputDir)) {
New-Item -ItemType Directory -Path $featuresOutputDir | Out-Null
}
Update-Progress "Loading existing Functions" 40
Load-Functions -dir $privateFunctionsDir
Load-Functions -dir $publicFunctionsDir
Update-Progress "Adding documentation links to JSON files" 50
# Define the JSON file paths
$jsonPaths = @(".\config\feature.json", ".\config\tweaks.json")
# Loop through each JSON file path
foreach ($jsonPath in $jsonPaths) {
# Load the JSON content
$json = Get-Content -Raw -Path $jsonPath | ConvertFrom-Json
# Set the global root object to the current json object
$global:rootObject = $json
# Add the "link" attribute to the JSON
Add-LinkAttribute -jsonObject $json
# Convert back to JSON with the original formatting
$jsonString = ($json | ConvertTo-Json -Depth 100).replace('\n',"`n").replace('\r', "`r")
# Save the JSON back to the file
Set-Content -Path $jsonPath -Value $jsonString
}
Add-LinkAttributeToJson -jsonFilePath "config/tweaks.json" -outputDir "dev/tweaks"
Add-LinkAttributeToJson -jsonFilePath "config/feature.json" -outputDir "dev/features"
Update-Progress "Generating content for documentation" 60
$tweakResult = Generate-MarkdownFiles -data $tweaks -outputDir $tweaksOutputDir -jsonFilePath "config/tweaks.json" -lastModified $tweaksLastModified -type "tweak" -initialProgress 60
$featureResult = Generate-MarkdownFiles -data $features -outputDir $featuresOutputDir -jsonFilePath "config/feature.json" -lastModified $featuresLastModified -type "feature" -initialProgress 70
Update-Progress "Generating table of contents" 80
$allTocEntries = $tweakResult.TocEntries + $featureResult.TocEntries
$tweakEntries = ($allTocEntries).where{ $_.Type -eq 'tweak' } | Sort-Object Category, Name
$featureEntries = ($allTocEntries).where{ $_.Type -eq 'feature' } | Sort-Object Category, Name
$indexContent += Process-MultilineStrings @"
\\# Table of Contents
\\
\\
\\## Tweaks
\\
\\
"@
$indexContent += $(Generate-TypeSectionContent $tweakEntries) + "`r`n"
$indexContent += Process-MultilineStrings @"
\\## Features
\\
\\
"@
$indexContent += $(Generate-TypeSectionContent $featureEntries) + "`r`n"
Set-Content -Path "docs/devdocs.md" -Value $indexContent -Encoding utf8
Update-Progress "Process Completed" 100

179
docs/KnownIssues.md Normal file
View File

@ -0,0 +1,179 @@
### Launch Issues:
- Windows Security (formerly Defender) and other anti-virus software are known to block the script. The script gets flagged due to the fact that it requires administrator privileges & makes drastic system changes.
- If possible: Allow script in Anti-Virus software settings.
- If you are having TLS 1.2 issues, or are having trouble resolving `christitus.com/win` then run with the following command:
```ps1
[Net.ServicePointManager]::SecurityProtocol=[Net.SecurityProtocolType]::Tls12;iex(New-Object Net.WebClient).DownloadString('https://github.com/ChrisTitusTech/winutil/releases/latest/download/winutil.ps1')
```
- If you are unable to resolve `christitus.com/win` and are getting errors launching the tool, it might be due to India blocking GitHub's content domain and preventing downloads.
- Source: <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:
| Provider | Primary DNS | Secondary DNS |
|:------------:|:------------:|:-------------:|
| Cloudflare | `1.1.1.1` | `1.0.0.1` |
| Google | `8.8.8.8` | `8.8.4.4` |
- Script doesn't run/PowerShell crashes:
1. Press Windows Key+X and select 'PowerShell (Admin)' (Windows 10) or 'Windows Terminal (Admin)' (Windows 11)
2. Run:
```ps1
Set-ExecutionPolicy Unrestricted -Scope Process -Force
```
3. Run:
```ps1
irm christitus.com/win | iex
```
### Other Issues:
- Windows taking longer to shut down:
- [#69](https://github.com/ChrisTitusTech/winutil/issues/69) Turn on fast startup: Press Windows key + R, then type:
```
control /name Microsoft.PowerOptions /page pageGlobalSettings
```
- If that doesn't work, Disable Hibernation: Press Windows Key+X and select 'PowerShell (Admin)' (Windows 10) or 'Windows Terminal (Admin)' (Windows 11) and enter:
```ps1
powercfg /H off
```
- [#69](https://github.com/ChrisTitusTech/winutil/issues/69) [95](https://github.com/ChrisTitusTech/winutil/issues/95) [#232](https://github.com/ChrisTitusTech/winutil/issues/232) Windows Search does not work: Enable Background Apps
- [#198](https://github.com/ChrisTitusTech/winutil/issues/198) Xbox Game Bar Activation Broken: Set the Xbox Accessory Management Service to Automatic
```ps1
Get-Service -Name "XboxGipSvc" | Set-Service -StartupType Automatic
```
- Winget requires interaction on first run: Manually type 'y' and 'enter' into the PowerShell console to continue
- (Windows 11) Quick Settings no longer works: Launch the Script and click 'Enable Action Center'
- Explorer no longer launches: Go to Control Panel, File Explorer Options, Change the 'Open File Explorer to' option to 'This PC'.
### Battery drains too fast.
* When your battery on the laptop drains too fast, please perform these steps and report the results back to the Winutil community.
1. **Check Battery Health:**
- Open a Command Prompt as an administrator.
- Run the following command to generate a battery report:
```powershell
powercfg /batteryreport /output "C:\battery_report.html"
```
- Open the generated HTML report to review information about battery health and usage.
2. **Review Power Settings:**
- Go to "Settings" > "System" > "Power & sleep."
- Adjust power plan settings based on your preferences and usage patterns.
- Click on "Additional power settings" to access advanced power settings.
3. **Identify Power-Hungry Apps:**
- Right-click on the taskbar and select "Task Manager."
- Navigate to the "Processes" tab to identify applications with high CPU or memory usage.
- Consider closing unnecessary background applications.
4. **Update Drivers:**
- Visit your laptop manufacturer's website or use Windows Update to check for driver updates.
- Ensure graphics, chipset, and other essential drivers are up to date.
5. **Check for Windows Updates:**
- Go to "Settings" > "Update & Security" > "Windows Update."
- Check for and install any available updates for your operating system.
6. **Reduce Screen Brightness:**
- Adjust screen brightness based on your preferences and lighting conditions.
- Go to "Settings" > "System" > "Display" to adjust brightness.
7. **Battery Saver Mode:**
- Go to "Settings" > "System" > "Battery."
- Turn on "Battery saver" to limit background activity and conserve power.
8. **Check Power Usage in Settings:**
- Go to "Settings" > "System" > "Battery" > "Battery usage by app."
- Review the list of apps and their power usage.
9. **Check Background Apps:**
- Go to "Settings" > "Privacy" > "Background apps."
- Disable unnecessary apps running in the background.
10. **Use Powercfg for Analysis:**
- Open a Command Prompt as an administrator.
- Run the following command to analyze energy usage and generate a report:
```powershell
powercfg /energy /output "C:\energy_report.html"
```
- Open the generated HTML report to identify energy consumption patterns.
11. **Review Event Viewer:**
- Open Event Viewer by searching for it in the Start menu.
- Navigate to "Windows Logs" > "System."
- Look for events with the source "Power-Troubleshooter" to identify power-related events.
12. **Check Wake-up Sources:**
- Open a Command Prompt as an administrator.
- Use the command `powercfg /requests` to identify processes preventing sleep.
- Check Task Scheduler for tasks waking up the computer.
- Use the command `powercfg /waketimers` to view active wake timers.
13. **Resource Monitor:**
- Open Resource Monitor from the Start menu.
- Navigate to the "CPU" tab and identify processes with high CPU usage.
14. **Windows Settings - Activity History:**
- In "Settings," go to "Privacy" > "Activity history."
- Turn off "Let Windows collect my activities from this PC."
15. **Network Adapters:**
- Open Device Manager by searching for it in the Start menu.
- Locate your network adapter, right-click, and go to "Properties."
- Under the "Power Management" tab, uncheck the option that allows the device to wake the computer.
16. **Review Installed Applications:**
- Manually review installed applications by searching for "Add or remove programs" in the Start menu.
- Check settings/preferences of individual applications for power-related options.
- Uninstall unnecessary or problematic software.
* By following these detailed instructions, you should be able to thoroughly diagnose and address battery drain issues on your Windows laptop. Adjust settings as needed to optimize power management and improve battery life.
### Troubleshoot errors during Microwin usage
#### Error `0x80041031`
* This error code typically indicates an issue related to Windows Management Instrumentation (WMI). Here are a few steps you can try to resolve the issue:
1. **Reboot Your Computer:**
Sometimes, a simple reboot can resolve temporary issues. Restart your computer and try mounting the ISO again.
2. **Check for System Corruption:**
Run the System File Checker (SFC) utility to scan and repair system files that may be corrupted.
```powershell
sfc /scannow
```
3. **Update Your System:**
Make sure your operating system is up-to-date. Check for Windows updates and install any pending updates.
4. **Check WMI Service:**
Ensure that the Windows Management Instrumentation (WMI) service is running. You can do this through the Services application:
- Press `Win + R` to open the Run dialog.
- Type `services.msc` and press Enter.
- Locate "Windows Management Instrumentation" in the list.
- Make sure to set its status to "Running" and the startup type to "Automatic."
5. **Check for Security Software Interference:**
Security software can sometimes interfere with WMI operations. Temporarily disable your antivirus or security software and check if the issue persists.
6. **Event Viewer:**
Check the Event Viewer for more detailed error information. Look for entries related to the `80041031` error and check if there are any additional details that can help identify the cause.
- Press `Win + X` and select "Event Viewer."
- Navigate to "Windows Logs" -> "Application" or "System."
- Look for entries with the source related to WMI or the application use to mount the ISO.
7. **ISO File Integrity:**
Ensure that the ISO file you are trying to mount is uncorrupted. Try mounting a different ISO file to see if the issue persists.
* If the problem persists after trying these steps, additional troubleshooting is required. Consider seeking assistance from Microsoft support or community forums for more specific guidance based on your system configuration and the software you use to mount the ISO.

BIN
docs/assets/Commit-GHD.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 194 KiB

BIN
docs/assets/Compile.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 17 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 12 KiB

BIN
docs/assets/Discard-GHD.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 14 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 22 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 36 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 27 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 152 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 137 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 102 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 108 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 79 KiB

BIN
docs/assets/Push-Commit.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 77 KiB

BIN
docs/assets/Screen.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 264 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 40 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 28 KiB

View File

Before

Width:  |  Height:  |  Size: 339 KiB

After

Width:  |  Height:  |  Size: 339 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 150 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 99 KiB

BIN
docs/assets/favicon.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.6 KiB

3
docs/contribute.md Normal file
View File

@ -0,0 +1,3 @@
--8<-- "CONTRIBUTING.md"
<!-- The content is sourced from "CONTRIBUTING.md," located in the root directory of the project. -->

View File

@ -0,0 +1,61 @@
# Disable Legacy F8 Boot Recovery
Last Updated: 2024-08-07
!!! info
The Development Documentation is auto generated for every compilation of WinUtil, meaning a part of it will always stay up-to-date. **Developers do have the ability to add custom content, which won't be updated automatically.**
## Description
Disables Advanced Boot Options screen that lets you start Windows in advanced troubleshooting modes.
<!-- BEGIN CUSTOM CONTENT -->
<!-- END CUSTOM CONTENT -->
<details>
<summary>Preview Code</summary>
```json
{
"Content": "Disable Legacy F8 Boot Recovery",
"Description": "Disables Advanced Boot Options screen that lets you start Windows in advanced troubleshooting modes.",
"category": "Features",
"panel": "1",
"Order": "a019_",
"feature": [],
"InvokeScript": [
"
If (!(Test-Path 'HKLM:\\SYSTEM\\CurrentControlSet\\Control\\Session Manager\\Configuration Manager\\LastKnownGood')) {
New-Item -Path 'HKLM:\\SYSTEM\\CurrentControlSet\\Control\\Session Manager\\Configuration Manager\\LastKnownGood' -Force | Out-Null
}
New-ItemProperty -Path 'HKLM:\\SYSTEM\\CurrentControlSet\\Control\\Session Manager\\Configuration Manager\\LastKnownGood' -Name 'Enabled' -Type DWord -Value 0 -Force
Start-Process -FilePath cmd.exe -ArgumentList '/c bcdedit /Set {Current} BootMenuPolicy Standard' -Wait
"
],
"link": "https://christitustech.github.io/winutil/dev/features/Features/DisableLegacyRecovery"
}
```
</details>
## Invoke Script
```powershell
If (!(Test-Path 'HKLM:\SYSTEM\CurrentControlSet\Control\Session Manager\Configuration Manager\LastKnownGood')) {
New-Item -Path 'HKLM:\SYSTEM\CurrentControlSet\Control\Session Manager\Configuration Manager\LastKnownGood' -Force | Out-Null
}
New-ItemProperty -Path 'HKLM:\SYSTEM\CurrentControlSet\Control\Session Manager\Configuration Manager\LastKnownGood' -Name 'Enabled' -Type DWord -Value 0 -Force
Start-Process -FilePath cmd.exe -ArgumentList '/c bcdedit /Set {Current} BootMenuPolicy Standard' -Wait
```
<!-- BEGIN SECOND CUSTOM CONTENT -->
<!-- END SECOND CUSTOM CONTENT -->
[View the JSON file](https://github.com/ChrisTitusTech/winutil/tree/main/config/feature.json)

View File

@ -0,0 +1,61 @@
# Disable Search Box Web Suggestions in Registry(explorer restart)
Last Updated: 2024-08-07
!!! info
The Development Documentation is auto generated for every compilation of WinUtil, meaning a part of it will always stay up-to-date. **Developers do have the ability to add custom content, which won't be updated automatically.**
## Description
Disables web suggestions when searching using Windows Search.
<!-- BEGIN CUSTOM CONTENT -->
<!-- END CUSTOM CONTENT -->
<details>
<summary>Preview Code</summary>
```json
{
"Content": "Disable Search Box Web Suggestions in Registry(explorer restart)",
"Description": "Disables web suggestions when searching using Windows Search.",
"category": "Features",
"panel": "1",
"Order": "a016_",
"feature": [],
"InvokeScript": [
"
If (!(Test-Path 'HKCU:\\SOFTWARE\\Policies\\Microsoft\\Windows\\Explorer')) {
New-Item -Path 'HKCU:\\SOFTWARE\\Policies\\Microsoft\\Windows\\Explorer' -Force | Out-Null
}
New-ItemProperty -Path 'HKCU:\\SOFTWARE\\Policies\\Microsoft\\Windows\\Explorer' -Name 'DisableSearchBoxSuggestions' -Type DWord -Value 1 -Force
Stop-Process -name explorer -force
"
],
"link": "https://christitustech.github.io/winutil/dev/features/Features/DisableSearchSuggestions"
}
```
</details>
## Invoke Script
```powershell
If (!(Test-Path 'HKCU:\SOFTWARE\Policies\Microsoft\Windows\Explorer')) {
New-Item -Path 'HKCU:\SOFTWARE\Policies\Microsoft\Windows\Explorer' -Force | Out-Null
}
New-ItemProperty -Path 'HKCU:\SOFTWARE\Policies\Microsoft\Windows\Explorer' -Name 'DisableSearchBoxSuggestions' -Type DWord -Value 1 -Force
Stop-Process -name explorer -force
```
<!-- BEGIN SECOND CUSTOM CONTENT -->
<!-- END SECOND CUSTOM CONTENT -->
[View the JSON file](https://github.com/ChrisTitusTech/winutil/tree/main/config/feature.json)

View File

@ -0,0 +1,61 @@
# Enable Legacy F8 Boot Recovery
Last Updated: 2024-08-07
!!! info
The Development Documentation is auto generated for every compilation of WinUtil, meaning a part of it will always stay up-to-date. **Developers do have the ability to add custom content, which won't be updated automatically.**
## Description
Enables Advanced Boot Options screen that lets you start Windows in advanced troubleshooting modes.
<!-- BEGIN CUSTOM CONTENT -->
<!-- END CUSTOM CONTENT -->
<details>
<summary>Preview Code</summary>
```json
{
"Content": "Enable Legacy F8 Boot Recovery",
"Description": "Enables Advanced Boot Options screen that lets you start Windows in advanced troubleshooting modes.",
"category": "Features",
"panel": "1",
"Order": "a018_",
"feature": [],
"InvokeScript": [
"
If (!(Test-Path 'HKLM:\\SYSTEM\\CurrentControlSet\\Control\\Session Manager\\Configuration Manager\\LastKnownGood')) {
New-Item -Path 'HKLM:\\SYSTEM\\CurrentControlSet\\Control\\Session Manager\\Configuration Manager\\LastKnownGood' -Force | Out-Null
}
New-ItemProperty -Path 'HKLM:\\SYSTEM\\CurrentControlSet\\Control\\Session Manager\\Configuration Manager\\LastKnownGood' -Name 'Enabled' -Type DWord -Value 1 -Force
Start-Process -FilePath cmd.exe -ArgumentList '/c bcdedit /Set {Current} BootMenuPolicy Legacy' -Wait
"
],
"link": "https://christitustech.github.io/winutil/dev/features/Features/EnableLegacyRecovery"
}
```
</details>
## Invoke Script
```powershell
If (!(Test-Path 'HKLM:\SYSTEM\CurrentControlSet\Control\Session Manager\Configuration Manager\LastKnownGood')) {
New-Item -Path 'HKLM:\SYSTEM\CurrentControlSet\Control\Session Manager\Configuration Manager\LastKnownGood' -Force | Out-Null
}
New-ItemProperty -Path 'HKLM:\SYSTEM\CurrentControlSet\Control\Session Manager\Configuration Manager\LastKnownGood' -Name 'Enabled' -Type DWord -Value 1 -Force
Start-Process -FilePath cmd.exe -ArgumentList '/c bcdedit /Set {Current} BootMenuPolicy Legacy' -Wait
```
<!-- BEGIN SECOND CUSTOM CONTENT -->
<!-- END SECOND CUSTOM CONTENT -->
[View the JSON file](https://github.com/ChrisTitusTech/winutil/tree/main/config/feature.json)

View File

@ -0,0 +1,61 @@
# Enable Search Box Web Suggestions in Registry(explorer restart)
Last Updated: 2024-08-07
!!! info
The Development Documentation is auto generated for every compilation of WinUtil, meaning a part of it will always stay up-to-date. **Developers do have the ability to add custom content, which won't be updated automatically.**
## Description
Enables web suggestions when searching using Windows Search.
<!-- BEGIN CUSTOM CONTENT -->
<!-- END CUSTOM CONTENT -->
<details>
<summary>Preview Code</summary>
```json
{
"Content": "Enable Search Box Web Suggestions in Registry(explorer restart)",
"Description": "Enables web suggestions when searching using Windows Search.",
"category": "Features",
"panel": "1",
"Order": "a015_",
"feature": [],
"InvokeScript": [
"
If (!(Test-Path 'HKCU:\\SOFTWARE\\Policies\\Microsoft\\Windows\\Explorer')) {
New-Item -Path 'HKCU:\\SOFTWARE\\Policies\\Microsoft\\Windows\\Explorer' -Force | Out-Null
}
New-ItemProperty -Path 'HKCU:\\SOFTWARE\\Policies\\Microsoft\\Windows\\Explorer' -Name 'DisableSearchBoxSuggestions' -Type DWord -Value 0 -Force
Stop-Process -name explorer -force
"
],
"link": "https://christitustech.github.io/winutil/dev/features/Features/EnableSearchSuggestions"
}
```
</details>
## Invoke Script
```powershell
If (!(Test-Path 'HKCU:\SOFTWARE\Policies\Microsoft\Windows\Explorer')) {
New-Item -Path 'HKCU:\SOFTWARE\Policies\Microsoft\Windows\Explorer' -Force | Out-Null
}
New-ItemProperty -Path 'HKCU:\SOFTWARE\Policies\Microsoft\Windows\Explorer' -Name 'DisableSearchBoxSuggestions' -Type DWord -Value 0 -Force
Stop-Process -name explorer -force
```
<!-- BEGIN SECOND CUSTOM CONTENT -->
<!-- END SECOND CUSTOM CONTENT -->
[View the JSON file](https://github.com/ChrisTitusTech/winutil/tree/main/config/feature.json)

View File

@ -0,0 +1,80 @@
# Install Features
Last Updated: 2024-08-07
!!! info
The Development Documentation is auto generated for every compilation of WinUtil, meaning a part of it will always stay up-to-date. **Developers do have the ability to add custom content, which won't be updated automatically.**
<!-- BEGIN CUSTOM CONTENT -->
<!-- END CUSTOM CONTENT -->
<details>
<summary>Preview Code</summary>
```json
{
"Content": "Install Features",
"category": "Features",
"panel": "1",
"Order": "a060_",
"Type": "Button",
"ButtonWidth": "300",
"link": "https://christitustech.github.io/winutil/dev/features/Features/Install"
}
```
</details>
## Function: Invoke-WPFFeatureInstall
```powershell
function Invoke-WPFFeatureInstall {
<#
.SYNOPSIS
Installs selected Windows Features
#>
if($sync.ProcessRunning) {
$msg = "[Invoke-WPFFeatureInstall] Install process is currently running."
[System.Windows.MessageBox]::Show($msg, "Winutil", [System.Windows.MessageBoxButton]::OK, [System.Windows.MessageBoxImage]::Warning)
return
}
$Features = (Get-WinUtilCheckBoxes)["WPFFeature"]
Invoke-WPFRunspace -ArgumentList $Features -DebugPreference $DebugPreference -ScriptBlock {
param($Features, $DebugPreference)
$sync.ProcessRunning = $true
if ($Features.count -eq 1) {
$sync.form.Dispatcher.Invoke([action]{ Set-WinUtilTaskbaritem -state "Indeterminate" -value 0.01 -overlay "logo" })
} else {
$sync.form.Dispatcher.Invoke([action]{ Set-WinUtilTaskbaritem -state "Normal" -value 0.01 -overlay "logo" })
}
Invoke-WinUtilFeatureInstall $Features
$sync.ProcessRunning = $false
$sync.form.Dispatcher.Invoke([action]{ Set-WinUtilTaskbaritem -state "None" -overlay "checkmark" })
Write-Host "==================================="
Write-Host "--- Features are Installed ---"
Write-Host "--- A Reboot may be required ---"
Write-Host "==================================="
}
}
```
<!-- BEGIN SECOND CUSTOM CONTENT -->
<!-- END SECOND CUSTOM CONTENT -->
[View the JSON file](https://github.com/ChrisTitusTech/winutil/tree/main/config/feature.json)

View File

@ -0,0 +1,61 @@
# Enable Daily Registry Backup Task 12.30am
Last Updated: 2024-08-07
!!! info
The Development Documentation is auto generated for every compilation of WinUtil, meaning a part of it will always stay up-to-date. **Developers do have the ability to add custom content, which won't be updated automatically.**
## Description
Enables daily registry backup, previously disabled by Microsoft in Windows 10 1803.
<!-- BEGIN CUSTOM CONTENT -->
<!-- END CUSTOM CONTENT -->
<details>
<summary>Preview Code</summary>
```json
{
"Content": "Enable Daily Registry Backup Task 12.30am",
"Description": "Enables daily registry backup, previously disabled by Microsoft in Windows 10 1803.",
"category": "Features",
"panel": "1",
"Order": "a017_",
"feature": [],
"InvokeScript": [
"
New-ItemProperty -Path 'HKLM:\\SYSTEM\\CurrentControlSet\\Control\\Session Manager\\Configuration Manager' -Name 'EnablePeriodicBackup' -Type DWord -Value 1 -Force
New-ItemProperty -Path 'HKLM:\\SYSTEM\\CurrentControlSet\\Control\\Session Manager\\Configuration Manager' -Name 'BackupCount' -Type DWord -Value 2 -Force
$action = New-ScheduledTaskAction -Execute 'schtasks' -Argument '/run /i /tn \"\\Microsoft\\Windows\\Registry\\RegIdleBackup\"'
$trigger = New-ScheduledTaskTrigger -Daily -At 00:30
Register-ScheduledTask -Action $action -Trigger $trigger -TaskName 'AutoRegBackup' -Description 'Create System Registry Backups' -User 'System'
"
],
"link": "https://christitustech.github.io/winutil/dev/features/Features/RegBackup"
}
```
</details>
## Invoke Script
```powershell
New-ItemProperty -Path 'HKLM:\SYSTEM\CurrentControlSet\Control\Session Manager\Configuration Manager' -Name 'EnablePeriodicBackup' -Type DWord -Value 1 -Force
New-ItemProperty -Path 'HKLM:\SYSTEM\CurrentControlSet\Control\Session Manager\Configuration Manager' -Name 'BackupCount' -Type DWord -Value 2 -Force
$action = New-ScheduledTaskAction -Execute 'schtasks' -Argument '/run /i /tn "\Microsoft\Windows\Registry\RegIdleBackup"'
$trigger = New-ScheduledTaskTrigger -Daily -At 00:30
Register-ScheduledTask -Action $action -Trigger $trigger -TaskName 'AutoRegBackup' -Description 'Create System Registry Backups' -User 'System'
```
<!-- BEGIN SECOND CUSTOM CONTENT -->
<!-- END SECOND CUSTOM CONTENT -->
[View the JSON file](https://github.com/ChrisTitusTech/winutil/tree/main/config/feature.json)

View File

@ -0,0 +1,39 @@
# Windows Sandbox
Last Updated: 2024-08-07
!!! info
The Development Documentation is auto generated for every compilation of WinUtil, meaning a part of it will always stay up-to-date. **Developers do have the ability to add custom content, which won't be updated automatically.**
## Description
Windows Sandbox is a lightweight virtual machine that provides a temporary desktop environment to safely run applications and programs in isolation.
<!-- BEGIN CUSTOM CONTENT -->
<!-- END CUSTOM CONTENT -->
<details>
<summary>Preview Code</summary>
```json
{
"Content": "Windows Sandbox",
"category": "Features",
"panel": "1",
"Order": "a021_",
"Description": "Windows Sandbox is a lightweight virtual machine that provides a temporary desktop environment to safely run applications and programs in isolation.",
"link": "https://christitustech.github.io/winutil/dev/features/Features/Sandbox"
}
```
</details>
<!-- BEGIN SECOND CUSTOM CONTENT -->
<!-- END SECOND CUSTOM CONTENT -->
[View the JSON file](https://github.com/ChrisTitusTech/winutil/tree/main/config/feature.json)

View File

@ -0,0 +1,56 @@
# All .Net Framework (2,3,4)
Last Updated: 2024-08-07
!!! info
The Development Documentation is auto generated for every compilation of WinUtil, meaning a part of it will always stay up-to-date. **Developers do have the ability to add custom content, which won't be updated automatically.**
## Description
.NET and .NET Framework is a developer platform made up of tools, programming languages, and libraries for building many different types of applications.
<!-- BEGIN CUSTOM CONTENT -->
<!-- END CUSTOM CONTENT -->
<details>
<summary>Preview Code</summary>
```json
{
"Content": "All .Net Framework (2,3,4)",
"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",
"Order": "a010_",
"feature": [
"NetFx4-AdvSrvs",
"NetFx3"
],
"InvokeScript": [],
"link": "https://christitustech.github.io/winutil/dev/features/Features/dotnet"
}
```
</details>
## Features
Optional Windows Features are additional functionalities or components in the Windows operating system that users can choose to enable or disable based on their specific needs and preferences.
You can find information about Optional Windows Features on [Microsoft's Website for Optional Features](https://learn.microsoft.com/en-us/windows/client-management/client-tools/add-remove-hide-features?pivots=windows-11).
### Features to install
- NetFx4-AdvSrvs
- NetFx3
<!-- BEGIN SECOND CUSTOM CONTENT -->
<!-- END SECOND CUSTOM CONTENT -->
[View the JSON file](https://github.com/ChrisTitusTech/winutil/tree/main/config/feature.json)

View File

@ -0,0 +1,76 @@
# HyperV Virtualization
Last Updated: 2024-08-07
!!! info
The Development Documentation is auto generated for every compilation of WinUtil, meaning a part of it will always stay up-to-date. **Developers do have the ability to add custom content, which won't be updated automatically.**
## Description
Hyper-V is a hardware virtualization product developed by Microsoft that allows users to create and manage virtual machines.
<!-- BEGIN CUSTOM CONTENT -->
<!-- END CUSTOM CONTENT -->
<details>
<summary>Preview Code</summary>
```json
{
"Content": "HyperV Virtualization",
"Description": "Hyper-V is a hardware virtualization product developed by Microsoft that allows users to create and manage virtual machines.",
"category": "Features",
"panel": "1",
"Order": "a011_",
"feature": [
"HypervisorPlatform",
"Microsoft-Hyper-V-All",
"Microsoft-Hyper-V",
"Microsoft-Hyper-V-Tools-All",
"Microsoft-Hyper-V-Management-PowerShell",
"Microsoft-Hyper-V-Hypervisor",
"Microsoft-Hyper-V-Services",
"Microsoft-Hyper-V-Management-Clients"
],
"InvokeScript": [
"Start-Process -FilePath cmd.exe -ArgumentList '/c bcdedit /set hypervisorschedulertype classic' -Wait"
],
"link": "https://christitustech.github.io/winutil/dev/features/Features/hyperv"
}
```
</details>
## Features
Optional Windows Features are additional functionalities or components in the Windows operating system that users can choose to enable or disable based on their specific needs and preferences.
You can find information about Optional Windows Features on [Microsoft's Website for Optional Features](https://learn.microsoft.com/en-us/windows/client-management/client-tools/add-remove-hide-features?pivots=windows-11).
### Features to install
- HypervisorPlatform
- Microsoft-Hyper-V-All
- Microsoft-Hyper-V
- Microsoft-Hyper-V-Tools-All
- Microsoft-Hyper-V-Management-PowerShell
- Microsoft-Hyper-V-Hypervisor
- Microsoft-Hyper-V-Services
- Microsoft-Hyper-V-Management-Clients
## Invoke Script
```powershell
Start-Process -FilePath cmd.exe -ArgumentList '/c bcdedit /set hypervisorschedulertype classic' -Wait
```
<!-- BEGIN SECOND CUSTOM CONTENT -->
<!-- END SECOND CUSTOM CONTENT -->
[View the JSON file](https://github.com/ChrisTitusTech/winutil/tree/main/config/feature.json)

View File

@ -0,0 +1,60 @@
# Legacy Media (WMP, DirectPlay)
Last Updated: 2024-08-07
!!! info
The Development Documentation is auto generated for every compilation of WinUtil, meaning a part of it will always stay up-to-date. **Developers do have the ability to add custom content, which won't be updated automatically.**
## Description
Enables legacy programs from previous versions of windows
<!-- BEGIN CUSTOM CONTENT -->
<!-- END CUSTOM CONTENT -->
<details>
<summary>Preview Code</summary>
```json
{
"Content": "Legacy Media (WMP, DirectPlay)",
"Description": "Enables legacy programs from previous versions of windows",
"category": "Features",
"panel": "1",
"Order": "a012_",
"feature": [
"WindowsMediaPlayer",
"MediaPlayback",
"DirectPlay",
"LegacyComponents"
],
"InvokeScript": [],
"link": "https://christitustech.github.io/winutil/dev/features/Features/legacymedia"
}
```
</details>
## Features
Optional Windows Features are additional functionalities or components in the Windows operating system that users can choose to enable or disable based on their specific needs and preferences.
You can find information about Optional Windows Features on [Microsoft's Website for Optional Features](https://learn.microsoft.com/en-us/windows/client-management/client-tools/add-remove-hide-features?pivots=windows-11).
### Features to install
- WindowsMediaPlayer
- MediaPlayback
- DirectPlay
- LegacyComponents
<!-- BEGIN SECOND CUSTOM CONTENT -->
<!-- END SECOND CUSTOM CONTENT -->
[View the JSON file](https://github.com/ChrisTitusTech/winutil/tree/main/config/feature.json)

View File

@ -0,0 +1,74 @@
# NFS - Network File System
Last Updated: 2024-08-07
!!! info
The Development Documentation is auto generated for every compilation of WinUtil, meaning a part of it will always stay up-to-date. **Developers do have the ability to add custom content, which won't be updated automatically.**
## Description
Network File System (NFS) is a mechanism for storing files on a network.
<!-- BEGIN CUSTOM CONTENT -->
<!-- END CUSTOM CONTENT -->
<details>
<summary>Preview Code</summary>
```json
{
"Content": "NFS - Network File System",
"Description": "Network File System (NFS) is a mechanism for storing files on a network.",
"category": "Features",
"panel": "1",
"Order": "a014_",
"feature": [
"ServicesForNFS-ClientOnly",
"ClientForNFS-Infrastructure",
"NFS-Administration"
],
"InvokeScript": [
"nfsadmin client stop",
"Set-ItemProperty -Path 'HKLM:\\SOFTWARE\\Microsoft\\ClientForNFS\\CurrentVersion\\Default' -Name 'AnonymousUID' -Type DWord -Value 0",
"Set-ItemProperty -Path 'HKLM:\\SOFTWARE\\Microsoft\\ClientForNFS\\CurrentVersion\\Default' -Name 'AnonymousGID' -Type DWord -Value 0",
"nfsadmin client start",
"nfsadmin client localhost config fileaccess=755 SecFlavors=+sys -krb5 -krb5i"
],
"link": "https://christitustech.github.io/winutil/dev/features/Features/nfs"
}
```
</details>
## Features
Optional Windows Features are additional functionalities or components in the Windows operating system that users can choose to enable or disable based on their specific needs and preferences.
You can find information about Optional Windows Features on [Microsoft's Website for Optional Features](https://learn.microsoft.com/en-us/windows/client-management/client-tools/add-remove-hide-features?pivots=windows-11).
### Features to install
- ServicesForNFS-ClientOnly
- ClientForNFS-Infrastructure
- NFS-Administration
## Invoke Script
```powershell
nfsadmin client stop
Set-ItemProperty -Path 'HKLM:\SOFTWARE\Microsoft\ClientForNFS\CurrentVersion\Default' -Name 'AnonymousUID' -Type DWord -Value 0
Set-ItemProperty -Path 'HKLM:\SOFTWARE\Microsoft\ClientForNFS\CurrentVersion\Default' -Name 'AnonymousGID' -Type DWord -Value 0
nfsadmin client start
nfsadmin client localhost config fileaccess=755 SecFlavors=+sys -krb5 -krb5i
```
<!-- BEGIN SECOND CUSTOM CONTENT -->
<!-- END SECOND CUSTOM CONTENT -->
[View the JSON file](https://github.com/ChrisTitusTech/winutil/tree/main/config/feature.json)

View File

@ -0,0 +1,56 @@
# Windows Subsystem for Linux
Last Updated: 2024-08-07
!!! info
The Development Documentation is auto generated for every compilation of WinUtil, meaning a part of it will always stay up-to-date. **Developers do have the ability to add custom content, which won't be updated automatically.**
## 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.
<!-- BEGIN CUSTOM CONTENT -->
<!-- END CUSTOM CONTENT -->
<details>
<summary>Preview Code</summary>
```json
{
"Content": "Windows Subsystem for Linux",
"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",
"Order": "a020_",
"feature": [
"VirtualMachinePlatform",
"Microsoft-Windows-Subsystem-Linux"
],
"InvokeScript": [],
"link": "https://christitustech.github.io/winutil/dev/features/Features/wsl"
}
```
</details>
## Features
Optional Windows Features are additional functionalities or components in the Windows operating system that users can choose to enable or disable based on their specific needs and preferences.
You can find information about Optional Windows Features on [Microsoft's Website for Optional Features](https://learn.microsoft.com/en-us/windows/client-management/client-tools/add-remove-hide-features?pivots=windows-11).
### Features to install
- VirtualMachinePlatform
- Microsoft-Windows-Subsystem-Linux
<!-- BEGIN SECOND CUSTOM CONTENT -->
<!-- END SECOND CUSTOM CONTENT -->
[View the JSON file](https://github.com/ChrisTitusTech/winutil/tree/main/config/feature.json)

View File

@ -0,0 +1,56 @@
# Set Up Autologin
Last Updated: 2024-08-07
!!! info
The Development Documentation is auto generated for every compilation of WinUtil, meaning a part of it will always stay up-to-date. **Developers do have the ability to add custom content, which won't be updated automatically.**
<!-- BEGIN CUSTOM CONTENT -->
<!-- END CUSTOM CONTENT -->
<details>
<summary>Preview Code</summary>
```json
{
"Content": "Set Up Autologin",
"category": "Fixes",
"Order": "a040_",
"panel": "1",
"Type": "Button",
"ButtonWidth": "300",
"link": "https://christitustech.github.io/winutil/dev/features/Fixes/Autologin"
}
```
</details>
## Function: Invoke-WPFPanelAutologin
```powershell
function Invoke-WPFPanelAutologin {
<#
.SYNOPSIS
Enables autologin using Sysinternals Autologon.exe
#>
# Official Microsoft recommendation: https://learn.microsoft.com/en-us/sysinternals/downloads/autologon
Invoke-WebRequest -Uri "https://live.sysinternals.com/Autologon.exe" -OutFile "$env:temp\autologin.exe"
cmd /c "$env:temp\autologin.exe" /accepteula
}
```
<!-- BEGIN SECOND CUSTOM CONTENT -->
<!-- END SECOND CUSTOM CONTENT -->
[View the JSON file](https://github.com/ChrisTitusTech/winutil/tree/main/config/feature.json)

View File

@ -0,0 +1,74 @@
# System Corruption Scan
Last Updated: 2024-08-07
!!! info
The Development Documentation is auto generated for every compilation of WinUtil, meaning a part of it will always stay up-to-date. **Developers do have the ability to add custom content, which won't be updated automatically.**
<!-- BEGIN CUSTOM CONTENT -->
<!-- END CUSTOM CONTENT -->
<details>
<summary>Preview Code</summary>
```json
{
"Content": "System Corruption Scan",
"category": "Fixes",
"panel": "1",
"Order": "a043_",
"Type": "Button",
"ButtonWidth": "300",
"link": "https://christitustech.github.io/winutil/dev/features/Fixes/DISM"
}
```
</details>
## Function: Invoke-WPFPanelDISM
```powershell
function Invoke-WPFPanelDISM {
<#
.SYNOPSIS
Checks for system corruption using Chkdsk, SFC, and DISM
.DESCRIPTION
1. Chkdsk - Fixes disk and filesystem corruption
2. SFC Run 1 - Fixes system file corruption, and fixes DISM if it was corrupted
3. DISM - Fixes system image corruption, and fixes SFC's system image if it was corrupted
4. SFC Run 2 - Fixes system file corruption, this time with an almost guaranteed uncorrupted system image
.NOTES
Command Arguments:
1. Chkdsk
/Scan - Runs an online scan on the system drive, attempts to fix any corruption, and queues other corruption for fixing on reboot
2. SFC
/ScanNow - Performs a scan of the system files and fixes any corruption
3. DISM - Fixes system image corruption, and fixes SFC's system image if it was corrupted
/Online - Fixes the currently running system image
/Cleanup-Image - Performs cleanup operations on the image, could remove some unneeded temporary files
/Restorehealth - Performs a scan of the image and fixes any corruption
#>
Start-Process PowerShell -ArgumentList "Write-Host '(1/4) Chkdsk' -ForegroundColor Green; Chkdsk /scan;
Write-Host '`n(2/4) SFC - 1st scan' -ForegroundColor Green; sfc /scannow;
Write-Host '`n(3/4) DISM' -ForegroundColor Green; DISM /Online /Cleanup-Image /Restorehealth;
Write-Host '`n(4/4) SFC - 2nd scan' -ForegroundColor Green; sfc /scannow;
Read-Host '`nPress Enter to Continue'" -verb runas
}
```
<!-- BEGIN SECOND CUSTOM CONTENT -->
<!-- END SECOND CUSTOM CONTENT -->
[View the JSON file](https://github.com/ChrisTitusTech/winutil/tree/main/config/feature.json)

View File

@ -0,0 +1,73 @@
# Reset Network
Last Updated: 2024-08-07
!!! info
The Development Documentation is auto generated for every compilation of WinUtil, meaning a part of it will always stay up-to-date. **Developers do have the ability to add custom content, which won't be updated automatically.**
<!-- BEGIN CUSTOM CONTENT -->
<!-- END CUSTOM CONTENT -->
<details>
<summary>Preview Code</summary>
```json
{
"Content": "Reset Network",
"category": "Fixes",
"Order": "a042_",
"panel": "1",
"Type": "Button",
"ButtonWidth": "300",
"link": "https://christitustech.github.io/winutil/dev/features/Fixes/Network"
}
```
</details>
## Function: Invoke-WPFFixesNetwork
```powershell
function Invoke-WPFFixesNetwork {
<#
.SYNOPSIS
Resets various network configurations
#>
Write-Host "Resetting Network with netsh"
# Reset WinSock catalog to a clean state
Start-Process -NoNewWindow -FilePath "netsh" -ArgumentList "winsock", "reset"
# Resets WinHTTP proxy setting to DIRECT
Start-Process -NoNewWindow -FilePath "netsh" -ArgumentList "winhttp", "reset", "proxy"
# Removes all user configured IP settings
Start-Process -NoNewWindow -FilePath "netsh" -ArgumentList "int", "ip", "reset"
Write-Host "Process complete. Please reboot your computer."
$ButtonType = [System.Windows.MessageBoxButton]::OK
$MessageboxTitle = "Network Reset "
$Messageboxbody = ("Stock settings loaded.`n Please reboot your computer")
$MessageIcon = [System.Windows.MessageBoxImage]::Information
[System.Windows.MessageBox]::Show($Messageboxbody, $MessageboxTitle, $ButtonType, $MessageIcon)
Write-Host "=========================================="
Write-Host "-- Network Configuration has been Reset --"
Write-Host "=========================================="
}
```
<!-- BEGIN SECOND CUSTOM CONTENT -->
<!-- END SECOND CUSTOM CONTENT -->
[View the JSON file](https://github.com/ChrisTitusTech/winutil/tree/main/config/feature.json)

View File

@ -0,0 +1,76 @@
# Remove Adobe Creative Cloud
Last Updated: 2024-08-07
!!! info
The Development Documentation is auto generated for every compilation of WinUtil, meaning a part of it will always stay up-to-date. **Developers do have the ability to add custom content, which won't be updated automatically.**
<!-- BEGIN CUSTOM CONTENT -->
<!-- END CUSTOM CONTENT -->
<details>
<summary>Preview Code</summary>
```json
{
"Content": "Remove Adobe Creative Cloud",
"category": "Fixes",
"panel": "1",
"Order": "a045_",
"Type": "Button",
"ButtonWidth": "300",
"link": "https://christitustech.github.io/winutil/dev/features/Fixes/RunAdobeCCCleanerTool"
}
```
</details>
## Function: Invoke-WPFRunAdobeCCCleanerTool
```powershell
function Invoke-WPFRunAdobeCCCleanerTool {
<#
.SYNOPSIS
It removes or fixes problem files and resolves permission issues in registry keys.
.DESCRIPTION
The Creative Cloud Cleaner tool is a utility for experienced users to clean up corrupted installations.
#>
[string]$url="https://swupmf.adobe.com/webfeed/CleanerTool/win/AdobeCreativeCloudCleanerTool.exe"
Write-Host "The Adobe Creative Cloud Cleaner tool is hosted at"
Write-Host "$url"
try {
# Don't show the progress because it will slow down the download speed
$ProgressPreference='SilentlyContinue'
Invoke-WebRequest -Uri $url -OutFile "$env:TEMP\AdobeCreativeCloudCleanerTool.exe" -UseBasicParsing -ErrorAction SilentlyContinue -Verbose
# Revert back the ProgressPreference variable to the default value since we got the file desired
$ProgressPreference='Continue'
Start-Process -FilePath "$env:TEMP\AdobeCreativeCloudCleanerTool.exe" -Wait -ErrorAction SilentlyContinue -Verbose
} catch {
Write-Error $_.Exception.Message
} finally {
if (Test-Path -Path "$env:TEMP\AdobeCreativeCloudCleanerTool.exe") {
Write-Host "Cleaning up..."
Remove-Item -Path "$env:TEMP\AdobeCreativeCloudCleanerTool.exe" -Verbose
}
}
}
```
<!-- BEGIN SECOND CUSTOM CONTENT -->
<!-- END SECOND CUSTOM CONTENT -->
[View the JSON file](https://github.com/ChrisTitusTech/winutil/tree/main/config/feature.json)

View File

@ -0,0 +1,336 @@
# Reset Windows Update
Last Updated: 2024-08-07
!!! info
The Development Documentation is auto generated for every compilation of WinUtil, meaning a part of it will always stay up-to-date. **Developers do have the ability to add custom content, which won't be updated automatically.**
<!-- BEGIN CUSTOM CONTENT -->
<!-- END CUSTOM CONTENT -->
<details>
<summary>Preview Code</summary>
```json
{
"Content": "Reset Windows Update",
"category": "Fixes",
"panel": "1",
"Order": "a041_",
"Type": "Button",
"ButtonWidth": "300",
"link": "https://christitustech.github.io/winutil/dev/features/Fixes/Update"
}
```
</details>
## Function: Invoke-WPFFixesUpdate
```powershell
function Invoke-WPFFixesUpdate {
<#
.SYNOPSIS
Performs various tasks in an attempt to repair Windows Update
.DESCRIPTION
1. (Aggressive Only) Scans the system for corruption using chkdsk, SFC, and DISM
Steps:
1. Runs chkdsk /scan /perf
/scan - Runs an online scan on the volume
/perf - Uses more system resources to complete a scan as fast as possible
2. Runs SFC /scannow
/scannow - Scans integrity of all protected system files and repairs files with problems when possible
3. Runs DISM /Online /Cleanup-Image /RestoreHealth
/Online - Targets the running operating system
/Cleanup-Image - Performs cleanup and recovery operations on the image
/RestoreHealth - Scans the image for component store corruption and attempts to repair the corruption using Windows Update
4. Runs SFC /scannow
Ran twice in case DISM repaired SFC
2. Stops Windows Update Services
3. Remove the QMGR Data file, which stores BITS jobs
4. (Aggressive Only) Renames the DataStore and CatRoot2 folders
DataStore - Contains the Windows Update History and Log Files
CatRoot2 - Contains the Signatures for Windows Update Packages
5. Renames the Windows Update Download Folder
6. Deletes the Windows Update Log
7. (Aggressive Only) Resets the Security Descriptors on the Windows Update Services
8. Reregisters the BITS and Windows Update DLLs
9. Removes the WSUS client settings
10. Resets WinSock
11. Gets and deletes all BITS jobs
12. Sets the startup type of the Windows Update Services then starts them
13. Forces Windows Update to check for updates
.PARAMETER Aggressive
If specified, the script will take additional steps to repair Windows Update that are more dangerous, take a significant amount of time, or are generally unnecessary
#>
param($Aggressive = $false)
Write-Progress -Id 0 -Activity "Repairing Windows Update" -PercentComplete 0
# Wait for the first progress bar to show, otherwise the second one won't show
Start-Sleep -Milliseconds 200
if ($Aggressive) {
# Scan system for corruption
Write-Progress -Id 0 -Activity "Repairing Windows Update" -Status "Scanning for corruption..." -PercentComplete 0
Write-Progress -Id 1 -ParentId 0 -Activity "Scanning for corruption" -Status "Running chkdsk..." -PercentComplete 0
# 2>&1 redirects stdout, alowing iteration over the output
chkdsk.exe /scan /perf 2>&1 | ForEach-Object {
# Write stdout to the Verbose stream
Write-Verbose $_
# Get the index of the total percentage
$index = $_.IndexOf("Total:")
if (
# If the percent is found
($percent = try {(
$_.Substring(
$index + 6,
$_.IndexOf("%", $index) - $index - 6
)
).Trim()} catch {0}) `
<# And the current percentage is greater than the previous one #>`
-and $percent -gt $oldpercent
) {
# Update the progress bar
$oldpercent = $percent
Write-Progress -Id 1 -ParentId 0 -Activity "Scanning for corruption" -Status "Running chkdsk... ($percent%)" -PercentComplete $percent
}
}
Write-Progress -Id 1 -ParentId 0 -Activity "Scanning for corruption" -Status "Running SFC..." -PercentComplete 0
$oldpercent = 0
# SFC has a bug when redirected which causes it to output only when the stdout buffer is full, causing the progress bar to move in chunks
sfc /scannow 2>&1 | ForEach-Object {
# Write stdout to the Verbose stream
Write-Verbose $_
# Filter for lines that contain a percentage that is greater than the previous one
if (
(
# Use a different method to get the percentage that accounts for SFC's Unicode output
[int]$percent = try {(
(
$_.Substring(
$_.IndexOf("n") + 2,
$_.IndexOf("%") - $_.IndexOf("n") - 2
).ToCharArray() | Where-Object {$_}
) -join ''
).TrimStart()} catch {0}
) -and $percent -gt $oldpercent
) {
# Update the progress bar
$oldpercent = $percent
Write-Progress -Id 1 -ParentId 0 -Activity "Scanning for corruption" -Status "Running SFC... ($percent%)" -PercentComplete $percent
}
}
Write-Progress -Id 1 -ParentId 0 -Activity "Scanning for corruption" -Status "Running DISM..." -PercentComplete 0
$oldpercent = 0
DISM /Online /Cleanup-Image /RestoreHealth | ForEach-Object {
# Write stdout to the Verbose stream
Write-Verbose $_
# Filter for lines that contain a percentage that is greater than the previous one
if (
($percent = try {
[int]($_ -replace "\[" -replace "=" -replace " " -replace "%" -replace "\]")
} catch {0}) `
-and $percent -gt $oldpercent
) {
# Update the progress bar
$oldpercent = $percent
Write-Progress -Id 1 -ParentId 0 -Activity "Scanning for corruption" -Status "Running DISM... ($percent%)" -PercentComplete $percent
}
}
Write-Progress -Id 1 -ParentId 0 -Activity "Scanning for corruption" -Status "Running SFC again..." -PercentComplete 0
$oldpercent = 0
sfc /scannow 2>&1 | ForEach-Object {
# Write stdout to the Verbose stream
Write-Verbose $_
# Filter for lines that contain a percentage that is greater than the previous one
if (
(
[int]$percent = try {(
(
$_.Substring(
$_.IndexOf("n") + 2,
$_.IndexOf("%") - $_.IndexOf("n") - 2
).ToCharArray() | Where-Object {$_}
) -join ''
).TrimStart()} catch {0}
) -and $percent -gt $oldpercent
) {
# Update the progress bar
$oldpercent = $percent
Write-Progress -Id 1 -ParentId 0 -Activity "Scanning for corruption" -Status "Running SFC... ($percent%)" -PercentComplete $percent
}
}
Write-Progress -Id 1 -ParentId 0 -Activity "Scanning for corruption" -Status "Completed" -PercentComplete 100
}
Write-Progress -Id 0 -Activity "Repairing Windows Update" -Status "Stopping Windows Update Services..." -PercentComplete 10
# Stop the Windows Update Services
Write-Progress -Id 2 -ParentId 0 -Activity "Stopping Services" -Status "Stopping BITS..." -PercentComplete 0
Stop-Service -Name BITS -Force
Write-Progress -Id 2 -ParentId 0 -Activity "Stopping Services" -Status "Stopping wuauserv..." -PercentComplete 20
Stop-Service -Name wuauserv -Force
Write-Progress -Id 2 -ParentId 0 -Activity "Stopping Services" -Status "Stopping appidsvc..." -PercentComplete 40
Stop-Service -Name appidsvc -Force
Write-Progress -Id 2 -ParentId 0 -Activity "Stopping Services" -Status "Stopping cryptsvc..." -PercentComplete 60
Stop-Service -Name cryptsvc -Force
Write-Progress -Id 2 -ParentId 0 -Activity "Stopping Services" -Status "Completed" -PercentComplete 100
# Remove the QMGR Data file
Write-Progress -Id 0 -Activity "Repairing Windows Update" -Status "Renaming/Removing Files..." -PercentComplete 20
Write-Progress -Id 3 -ParentId 0 -Activity "Renaming/Removing Files" -Status "Removing QMGR Data files..." -PercentComplete 0
Remove-Item "$env:allusersprofile\Application Data\Microsoft\Network\Downloader\qmgr*.dat" -ErrorAction SilentlyContinue
if ($Aggressive) {
# Rename the Windows Update Log and Signature Folders
Write-Progress -Id 3 -ParentId 0 -Activity "Renaming/Removing Files" -Status "Renaming the Windows Update Log, Download, and Signature Folder..." -PercentComplete 20
Rename-Item $env:systemroot\SoftwareDistribution\DataStore DataStore.bak -ErrorAction SilentlyContinue
Rename-Item $env:systemroot\System32\Catroot2 catroot2.bak -ErrorAction SilentlyContinue
}
# Rename the Windows Update Download Folder
Write-Progress -Id 3 -ParentId 0 -Activity "Renaming/Removing Files" -Status "Renaming the Windows Update Download Folder..." -PercentComplete 20
Rename-Item $env:systemroot\SoftwareDistribution\Download Download.bak -ErrorAction SilentlyContinue
# Delete the legacy Windows Update Log
Write-Progress -Id 3 -ParentId 0 -Activity "Renaming/Removing Files" -Status "Removing the old Windows Update log..." -PercentComplete 80
Remove-Item $env:systemroot\WindowsUpdate.log -ErrorAction SilentlyContinue
Write-Progress -Id 3 -ParentId 0 -Activity "Renaming/Removing Files" -Status "Completed" -PercentComplete 100
if ($Aggressive) {
# Reset the Security Descriptors on the Windows Update Services
Write-Progress -Id 0 -Activity "Repairing Windows Update" -Status "Resetting the WU Service Security Descriptors..." -PercentComplete 25
Write-Progress -Id 4 -ParentId 0 -Activity "Resetting the WU Service Security Descriptors" -Status "Resetting the BITS Security Descriptor..." -PercentComplete 0
Start-Process -NoNewWindow -FilePath "sc.exe" -ArgumentList "sdset", "bits", "D:(A;;CCLCSWRPWPDTLOCRRC;;;SY)(A;;CCDCLCSWRPWPDTLOCRSDRCWDWO;;;BA)(A;;CCLCSWLOCRRC;;;AU)(A;;CCLCSWRPWPDTLOCRRC;;;PU)"
Write-Progress -Id 4 -ParentId 0 -Activity "Resetting the WU Service Security Descriptors" -Status "Resetting the wuauserv Security Descriptor..." -PercentComplete 50
Start-Process -NoNewWindow -FilePath "sc.exe" -ArgumentList "sdset", "wuauserv", "D:(A;;CCLCSWRPWPDTLOCRRC;;;SY)(A;;CCDCLCSWRPWPDTLOCRSDRCWDWO;;;BA)(A;;CCLCSWLOCRRC;;;AU)(A;;CCLCSWRPWPDTLOCRRC;;;PU)"
Write-Progress -Id 4 -ParentId 0 -Activity "Resetting the WU Service Security Descriptors" -Status "Completed" -PercentComplete 100
}
# Reregister the BITS and Windows Update DLLs
Write-Progress -Id 0 -Activity "Repairing Windows Update" -Status "Reregistering DLLs..." -PercentComplete 40
$oldLocation = Get-Location
Set-Location $env:systemroot\system32
$i = 0
$DLLs = @(
"atl.dll", "urlmon.dll", "mshtml.dll", "shdocvw.dll", "browseui.dll",
"jscript.dll", "vbscript.dll", "scrrun.dll", "msxml.dll", "msxml3.dll",
"msxml6.dll", "actxprxy.dll", "softpub.dll", "wintrust.dll", "dssenh.dll",
"rsaenh.dll", "gpkcsp.dll", "sccbase.dll", "slbcsp.dll", "cryptdlg.dll",
"oleaut32.dll", "ole32.dll", "shell32.dll", "initpki.dll", "wuapi.dll",
"wuaueng.dll", "wuaueng1.dll", "wucltui.dll", "wups.dll", "wups2.dll",
"wuweb.dll", "qmgr.dll", "qmgrprxy.dll", "wucltux.dll", "muweb.dll", "wuwebv.dll"
)
foreach ($dll in $DLLs) {
Write-Progress -Id 5 -ParentId 0 -Activity "Reregistering DLLs" -Status "Registering $dll..." -PercentComplete ($i / $DLLs.Count * 100)
$i++
Start-Process -NoNewWindow -FilePath "regsvr32.exe" -ArgumentList "/s", $dll
}
Set-Location $oldLocation
Write-Progress -Id 5 -ParentId 0 -Activity "Reregistering DLLs" -Status "Completed" -PercentComplete 100
# Remove the WSUS client settings
if (Test-Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\WindowsUpdate") {
Write-Progress -Id 0 -Activity "Repairing Windows Update" -Status "Removing WSUS client settings..." -PercentComplete 60
Write-Progress -Id 6 -ParentId 0 -Activity "Removing WSUS client settings" -PercentComplete 0
Start-Process -NoNewWindow -FilePath "REG" -ArgumentList "DELETE", "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\WindowsUpdate", "/v", "AccountDomainSid", "/f" -RedirectStandardError $true
Start-Process -NoNewWindow -FilePath "REG" -ArgumentList "DELETE", "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\WindowsUpdate", "/v", "PingID", "/f" -RedirectStandardError $true
Start-Process -NoNewWindow -FilePath "REG" -ArgumentList "DELETE", "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\WindowsUpdate", "/v", "SusClientId", "/f" -RedirectStandardError $true
Write-Progress -Id 6 -ParentId 0 -Activity "Removing WSUS client settings" -Status "Completed" -PercentComplete 100
}
# Reset WinSock
Write-Progress -Id 0 -Activity "Repairing Windows Update" -Status "Resetting WinSock..." -PercentComplete 65
Write-Progress -Id 7 -ParentId 0 -Activity "Resetting WinSock" -Status "Resetting WinSock..." -PercentComplete 0
Start-Process -NoNewWindow -FilePath "netsh" -ArgumentList "winsock", "reset" -RedirectStandardOutput $true
Start-Process -NoNewWindow -FilePath "netsh" -ArgumentList "winhttp", "reset", "proxy" -RedirectStandardOutput $true
Start-Process -NoNewWindow -FilePath "netsh" -ArgumentList "int", "ip", "reset" -RedirectStandardOutput $true
Write-Progress -Id 7 -ParentId 0 -Activity "Resetting WinSock" -Status "Completed" -PercentComplete 100
# Get and delete all BITS jobs
Write-Progress -Id 0 -Activity "Repairing Windows Update" -Status "Deleting BITS jobs..." -PercentComplete 75
Write-Progress -Id 8 -ParentId 0 -Activity "Deleting BITS jobs" -Status "Deleting BITS jobs..." -PercentComplete 0
Get-BitsTransfer | Remove-BitsTransfer
Write-Progress -Id 8 -ParentId 0 -Activity "Deleting BITS jobs" -Status "Completed" -PercentComplete 100
# Change the startup type of the Windows Update Services and start them
Write-Progress -Id 0 -Activity "Repairing Windows Update" -Status "Starting Windows Update Services..." -PercentComplete 90
Write-Progress -Id 9 -ParentId 0 -Activity "Starting Windows Update Services" -Status "Starting BITS..." -PercentComplete 0
Get-Service BITS | Set-Service -StartupType Manual -PassThru | Start-Service
Write-Progress -Id 9 -ParentId 0 -Activity "Starting Windows Update Services" -Status "Starting wuauserv..." -PercentComplete 25
Get-Service wuauserv | Set-Service -StartupType Manual -PassThru | Start-Service
Write-Progress -Id 9 -ParentId 0 -Activity "Starting Windows Update Services" -Status "Starting AppIDSvc..." -PercentComplete 50
# The AppIDSvc service is protected, so the startup type has to be changed in the registry
Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Services\AppIDSvc" -Name "Start" -Value "3" # Manual
Start-Service AppIDSvc
Write-Progress -Id 9 -ParentId 0 -Activity "Starting Windows Update Services" -Status "Starting CryptSvc..." -PercentComplete 75
Get-Service CryptSvc | Set-Service -StartupType Manual -PassThru | Start-Service
Write-Progress -Id 9 -ParentId 0 -Activity "Starting Windows Update Services" -Status "Completed" -PercentComplete 100
# Force Windows Update to check for updates
Write-Progress -Id 0 -Activity "Repairing Windows Update" -Status "Forcing discovery..." -PercentComplete 95
Write-Progress -Id 10 -ParentId 0 -Activity "Forcing discovery" -Status "Forcing discovery..." -PercentComplete 0
(New-Object -ComObject Microsoft.Update.AutoUpdate).DetectNow()
Start-Process -NoNewWindow -FilePath "wuauclt" -ArgumentList "/resetauthorization", "/detectnow"
Write-Progress -Id 10 -ParentId 0 -Activity "Forcing discovery" -Status "Completed" -PercentComplete 100
Write-Progress -Id 0 -Activity "Repairing Windows Update" -Status "Completed" -PercentComplete 100
$ButtonType = [System.Windows.MessageBoxButton]::OK
$MessageboxTitle = "Reset Windows Update "
$Messageboxbody = ("Stock settings loaded.`n Please reboot your computer")
$MessageIcon = [System.Windows.MessageBoxImage]::Information
[System.Windows.MessageBox]::Show($Messageboxbody, $MessageboxTitle, $ButtonType, $MessageIcon)
Write-Host "==============================================="
Write-Host "-- Reset All Windows Update Settings to Stock -"
Write-Host "==============================================="
# Remove the progress bars
Write-Progress -Id 0 -Activity "Repairing Windows Update" -Completed
Write-Progress -Id 1 -Activity "Scanning for corruption" -Completed
Write-Progress -Id 2 -Activity "Stopping Services" -Completed
Write-Progress -Id 3 -Activity "Renaming/Removing Files" -Completed
Write-Progress -Id 4 -Activity "Resetting the WU Service Security Descriptors" -Completed
Write-Progress -Id 5 -Activity "Reregistering DLLs" -Completed
Write-Progress -Id 6 -Activity "Removing WSUS client settings" -Completed
Write-Progress -Id 7 -Activity "Resetting WinSock" -Completed
Write-Progress -Id 8 -Activity "Deleting BITS jobs" -Completed
Write-Progress -Id 9 -Activity "Starting Windows Update Services" -Completed
Write-Progress -Id 10 -Activity "Forcing discovery" -Completed
}
```
<!-- BEGIN SECOND CUSTOM CONTENT -->
<!-- END SECOND CUSTOM CONTENT -->
[View the JSON file](https://github.com/ChrisTitusTech/winutil/tree/main/config/feature.json)

View File

@ -0,0 +1,58 @@
# WinGet Reinstall
Last Updated: 2024-08-07
!!! info
The Development Documentation is auto generated for every compilation of WinUtil, meaning a part of it will always stay up-to-date. **Developers do have the ability to add custom content, which won't be updated automatically.**
<!-- BEGIN CUSTOM CONTENT -->
<!-- END CUSTOM CONTENT -->
<details>
<summary>Preview Code</summary>
```json
{
"Content": "WinGet Reinstall",
"category": "Fixes",
"panel": "1",
"Order": "a044_",
"Type": "Button",
"ButtonWidth": "300",
"link": "https://christitustech.github.io/winutil/dev/features/Fixes/Winget"
}
```
</details>
## Function: Invoke-WPFFixesWinget
```powershell
function Invoke-WPFFixesWinget {
<#
.SYNOPSIS
Fixes Winget by running choco install winget
.DESCRIPTION
BravoNorris for the fantastic idea of a button to reinstall winget
#>
# Install Choco if not already present
Install-WinUtilChoco
Start-Process -FilePath "choco" -ArgumentList "install winget -y --force" -NoNewWindow -Wait
}
```
<!-- BEGIN SECOND CUSTOM CONTENT -->
<!-- END SECOND CUSTOM CONTENT -->
[View the JSON file](https://github.com/ChrisTitusTech/winutil/tree/main/config/feature.json)

View File

@ -0,0 +1,65 @@
# Control Panel
Last Updated: 2024-08-07
!!! info
The Development Documentation is auto generated for every compilation of WinUtil, meaning a part of it will always stay up-to-date. **Developers do have the ability to add custom content, which won't be updated automatically.**
<!-- BEGIN CUSTOM CONTENT -->
<!-- END CUSTOM CONTENT -->
<details>
<summary>Preview Code</summary>
```json
{
"Content": "Control Panel",
"category": "Legacy Windows Panels",
"panel": "2",
"Type": "Button",
"ButtonWidth": "300",
"link": "https://christitustech.github.io/winutil/dev/features/Legacy-Windows-Panels/control"
}
```
</details>
## Function: Invoke-WPFControlPanel
```powershell
function Invoke-WPFControlPanel {
<#
.SYNOPSIS
Opens the requested legacy panel
.PARAMETER Panel
The panel to open
#>
param($Panel)
switch ($Panel) {
"WPFPanelcontrol" {cmd /c control}
"WPFPanelnetwork" {cmd /c ncpa.cpl}
"WPFPanelpower" {cmd /c powercfg.cpl}
"WPFPanelregion" {cmd /c intl.cpl}
"WPFPanelsound" {cmd /c mmsys.cpl}
"WPFPanelsystem" {cmd /c sysdm.cpl}
"WPFPaneluser" {cmd /c "control userpasswords2"}
}
}
```
<!-- BEGIN SECOND CUSTOM CONTENT -->
<!-- END SECOND CUSTOM CONTENT -->
[View the JSON file](https://github.com/ChrisTitusTech/winutil/tree/main/config/feature.json)

View File

@ -0,0 +1,65 @@
# Network Connections
Last Updated: 2024-08-07
!!! info
The Development Documentation is auto generated for every compilation of WinUtil, meaning a part of it will always stay up-to-date. **Developers do have the ability to add custom content, which won't be updated automatically.**
<!-- BEGIN CUSTOM CONTENT -->
<!-- END CUSTOM CONTENT -->
<details>
<summary>Preview Code</summary>
```json
{
"Content": "Network Connections",
"category": "Legacy Windows Panels",
"panel": "2",
"Type": "Button",
"ButtonWidth": "300",
"link": "https://christitustech.github.io/winutil/dev/features/Legacy-Windows-Panels/network"
}
```
</details>
## Function: Invoke-WPFControlPanel
```powershell
function Invoke-WPFControlPanel {
<#
.SYNOPSIS
Opens the requested legacy panel
.PARAMETER Panel
The panel to open
#>
param($Panel)
switch ($Panel) {
"WPFPanelcontrol" {cmd /c control}
"WPFPanelnetwork" {cmd /c ncpa.cpl}
"WPFPanelpower" {cmd /c powercfg.cpl}
"WPFPanelregion" {cmd /c intl.cpl}
"WPFPanelsound" {cmd /c mmsys.cpl}
"WPFPanelsystem" {cmd /c sysdm.cpl}
"WPFPaneluser" {cmd /c "control userpasswords2"}
}
}
```
<!-- BEGIN SECOND CUSTOM CONTENT -->
<!-- END SECOND CUSTOM CONTENT -->
[View the JSON file](https://github.com/ChrisTitusTech/winutil/tree/main/config/feature.json)

View File

@ -0,0 +1,65 @@
# Power Panel
Last Updated: 2024-08-07
!!! info
The Development Documentation is auto generated for every compilation of WinUtil, meaning a part of it will always stay up-to-date. **Developers do have the ability to add custom content, which won't be updated automatically.**
<!-- BEGIN CUSTOM CONTENT -->
<!-- END CUSTOM CONTENT -->
<details>
<summary>Preview Code</summary>
```json
{
"Content": "Power Panel",
"category": "Legacy Windows Panels",
"panel": "2",
"Type": "Button",
"ButtonWidth": "300",
"link": "https://christitustech.github.io/winutil/dev/features/Legacy-Windows-Panels/power"
}
```
</details>
## Function: Invoke-WPFControlPanel
```powershell
function Invoke-WPFControlPanel {
<#
.SYNOPSIS
Opens the requested legacy panel
.PARAMETER Panel
The panel to open
#>
param($Panel)
switch ($Panel) {
"WPFPanelcontrol" {cmd /c control}
"WPFPanelnetwork" {cmd /c ncpa.cpl}
"WPFPanelpower" {cmd /c powercfg.cpl}
"WPFPanelregion" {cmd /c intl.cpl}
"WPFPanelsound" {cmd /c mmsys.cpl}
"WPFPanelsystem" {cmd /c sysdm.cpl}
"WPFPaneluser" {cmd /c "control userpasswords2"}
}
}
```
<!-- BEGIN SECOND CUSTOM CONTENT -->
<!-- END SECOND CUSTOM CONTENT -->
[View the JSON file](https://github.com/ChrisTitusTech/winutil/tree/main/config/feature.json)

View File

@ -0,0 +1,65 @@
# Region
Last Updated: 2024-08-07
!!! info
The Development Documentation is auto generated for every compilation of WinUtil, meaning a part of it will always stay up-to-date. **Developers do have the ability to add custom content, which won't be updated automatically.**
<!-- BEGIN CUSTOM CONTENT -->
<!-- END CUSTOM CONTENT -->
<details>
<summary>Preview Code</summary>
```json
{
"Content": "Region",
"category": "Legacy Windows Panels",
"panel": "2",
"Type": "Button",
"ButtonWidth": "300",
"link": "https://christitustech.github.io/winutil/dev/features/Legacy-Windows-Panels/region"
}
```
</details>
## Function: Invoke-WPFControlPanel
```powershell
function Invoke-WPFControlPanel {
<#
.SYNOPSIS
Opens the requested legacy panel
.PARAMETER Panel
The panel to open
#>
param($Panel)
switch ($Panel) {
"WPFPanelcontrol" {cmd /c control}
"WPFPanelnetwork" {cmd /c ncpa.cpl}
"WPFPanelpower" {cmd /c powercfg.cpl}
"WPFPanelregion" {cmd /c intl.cpl}
"WPFPanelsound" {cmd /c mmsys.cpl}
"WPFPanelsystem" {cmd /c sysdm.cpl}
"WPFPaneluser" {cmd /c "control userpasswords2"}
}
}
```
<!-- BEGIN SECOND CUSTOM CONTENT -->
<!-- END SECOND CUSTOM CONTENT -->
[View the JSON file](https://github.com/ChrisTitusTech/winutil/tree/main/config/feature.json)

View File

@ -0,0 +1,65 @@
# Sound Settings
Last Updated: 2024-08-07
!!! info
The Development Documentation is auto generated for every compilation of WinUtil, meaning a part of it will always stay up-to-date. **Developers do have the ability to add custom content, which won't be updated automatically.**
<!-- BEGIN CUSTOM CONTENT -->
<!-- END CUSTOM CONTENT -->
<details>
<summary>Preview Code</summary>
```json
{
"Content": "Sound Settings",
"category": "Legacy Windows Panels",
"panel": "2",
"Type": "Button",
"ButtonWidth": "300",
"link": "https://christitustech.github.io/winutil/dev/features/Legacy-Windows-Panels/sound"
}
```
</details>
## Function: Invoke-WPFControlPanel
```powershell
function Invoke-WPFControlPanel {
<#
.SYNOPSIS
Opens the requested legacy panel
.PARAMETER Panel
The panel to open
#>
param($Panel)
switch ($Panel) {
"WPFPanelcontrol" {cmd /c control}
"WPFPanelnetwork" {cmd /c ncpa.cpl}
"WPFPanelpower" {cmd /c powercfg.cpl}
"WPFPanelregion" {cmd /c intl.cpl}
"WPFPanelsound" {cmd /c mmsys.cpl}
"WPFPanelsystem" {cmd /c sysdm.cpl}
"WPFPaneluser" {cmd /c "control userpasswords2"}
}
}
```
<!-- BEGIN SECOND CUSTOM CONTENT -->
<!-- END SECOND CUSTOM CONTENT -->
[View the JSON file](https://github.com/ChrisTitusTech/winutil/tree/main/config/feature.json)

View File

@ -0,0 +1,65 @@
# System Properties
Last Updated: 2024-08-07
!!! info
The Development Documentation is auto generated for every compilation of WinUtil, meaning a part of it will always stay up-to-date. **Developers do have the ability to add custom content, which won't be updated automatically.**
<!-- BEGIN CUSTOM CONTENT -->
<!-- END CUSTOM CONTENT -->
<details>
<summary>Preview Code</summary>
```json
{
"Content": "System Properties",
"category": "Legacy Windows Panels",
"panel": "2",
"Type": "Button",
"ButtonWidth": "300",
"link": "https://christitustech.github.io/winutil/dev/features/Legacy-Windows-Panels/system"
}
```
</details>
## Function: Invoke-WPFControlPanel
```powershell
function Invoke-WPFControlPanel {
<#
.SYNOPSIS
Opens the requested legacy panel
.PARAMETER Panel
The panel to open
#>
param($Panel)
switch ($Panel) {
"WPFPanelcontrol" {cmd /c control}
"WPFPanelnetwork" {cmd /c ncpa.cpl}
"WPFPanelpower" {cmd /c powercfg.cpl}
"WPFPanelregion" {cmd /c intl.cpl}
"WPFPanelsound" {cmd /c mmsys.cpl}
"WPFPanelsystem" {cmd /c sysdm.cpl}
"WPFPaneluser" {cmd /c "control userpasswords2"}
}
}
```
<!-- BEGIN SECOND CUSTOM CONTENT -->
<!-- END SECOND CUSTOM CONTENT -->
[View the JSON file](https://github.com/ChrisTitusTech/winutil/tree/main/config/feature.json)

View File

@ -0,0 +1,65 @@
# User Accounts
Last Updated: 2024-08-07
!!! info
The Development Documentation is auto generated for every compilation of WinUtil, meaning a part of it will always stay up-to-date. **Developers do have the ability to add custom content, which won't be updated automatically.**
<!-- BEGIN CUSTOM CONTENT -->
<!-- END CUSTOM CONTENT -->
<details>
<summary>Preview Code</summary>
```json
{
"Content": "User Accounts",
"category": "Legacy Windows Panels",
"panel": "2",
"Type": "Button",
"ButtonWidth": "300",
"link": "https://christitustech.github.io/winutil/dev/features/Legacy-Windows-Panels/user"
}
```
</details>
## Function: Invoke-WPFControlPanel
```powershell
function Invoke-WPFControlPanel {
<#
.SYNOPSIS
Opens the requested legacy panel
.PARAMETER Panel
The panel to open
#>
param($Panel)
switch ($Panel) {
"WPFPanelcontrol" {cmd /c control}
"WPFPanelnetwork" {cmd /c ncpa.cpl}
"WPFPanelpower" {cmd /c powercfg.cpl}
"WPFPanelregion" {cmd /c intl.cpl}
"WPFPanelsound" {cmd /c mmsys.cpl}
"WPFPanelsystem" {cmd /c sysdm.cpl}
"WPFPaneluser" {cmd /c "control userpasswords2"}
}
}
```
<!-- BEGIN SECOND CUSTOM CONTENT -->
<!-- END SECOND CUSTOM CONTENT -->
[View the JSON file](https://github.com/ChrisTitusTech/winutil/tree/main/config/feature.json)

View File

@ -0,0 +1,76 @@
# Bing Search in Start Menu
Last Updated: 2024-08-07
!!! info
The Development Documentation is auto generated for every compilation of WinUtil, meaning a part of it will always stay up-to-date. **Developers do have the ability to add custom content, which won't be updated automatically.**
## Description
If enable then includes web search results from Bing in your Start Menu search.
<!-- BEGIN CUSTOM CONTENT -->
<!-- END CUSTOM CONTENT -->
<details>
<summary>Preview Code</summary>
```json
{
"Content": "Bing Search in Start Menu",
"Description": "If enable then includes web search results from Bing in your Start Menu search.",
"category": "Customize Preferences",
"panel": "2",
"Order": "a101_",
"Type": "Toggle",
"link": "https://christitustech.github.io/winutil/dev/tweaks/Customize-Preferences/BingSearch"
}
```
</details>
## Function: Invoke-WinUtilBingSearch
```powershell
function Invoke-WinUtilBingSearch {
<#
.SYNOPSIS
Disables/Enables Bing Search
.PARAMETER Enabled
Indicates whether to enable or disable Bing Search
#>
Param($Enabled)
try {
if ($Enabled -eq $false) {
Write-Host "Enabling Bing Search"
$value = 1
} else {
Write-Host "Disabling Bing Search"
$value = 0
}
$Path = "HKCU:\Software\Microsoft\Windows\CurrentVersion\Search"
Set-ItemProperty -Path $Path -Name BingSearchEnabled -Value $value
} catch [System.Security.SecurityException] {
Write-Warning "Unable to set $Path\$Name to $Value due to a Security Exception"
} catch [System.Management.Automation.ItemNotFoundException] {
Write-Warning $psitem.Exception.ErrorRecord
} catch {
Write-Warning "Unable to set $Name due to unhandled exception"
Write-Warning $psitem.Exception.StackTrace
}
}
```
<!-- BEGIN SECOND CUSTOM CONTENT -->
<!-- END SECOND CUSTOM CONTENT -->
[View the JSON file](https://github.com/ChrisTitusTech/winutil/tree/main/config/tweaks.json)

View File

@ -0,0 +1,78 @@
# Dark Theme for Windows
Last Updated: 2024-08-07
!!! info
The Development Documentation is auto generated for every compilation of WinUtil, meaning a part of it will always stay up-to-date. **Developers do have the ability to add custom content, which won't be updated automatically.**
## Description
Enable/Disable Dark Mode.
<!-- BEGIN CUSTOM CONTENT -->
<!-- END CUSTOM CONTENT -->
<details>
<summary>Preview Code</summary>
```json
{
"Content": "Dark Theme for Windows",
"Description": "Enable/Disable Dark Mode.",
"category": "Customize Preferences",
"panel": "2",
"Order": "a100_",
"Type": "Toggle",
"link": "https://christitustech.github.io/winutil/dev/tweaks/Customize-Preferences/DarkMode"
}
```
</details>
## Function: Invoke-WinUtilDarkMode
```powershell
Function Invoke-WinUtilDarkMode {
<#
.SYNOPSIS
Enables/Disables Dark Mode
.PARAMETER DarkMoveEnabled
Indicates the current dark mode state
#>
Param($DarkMoveEnabled)
try {
if ($DarkMoveEnabled -eq $false) {
Write-Host "Enabling Dark Mode"
$DarkMoveValue = 0
} else {
Write-Host "Disabling Dark Mode"
$DarkMoveValue = 1
}
$Path = "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Themes\Personalize"
Set-ItemProperty -Path $Path -Name AppsUseLightTheme -Value $DarkMoveValue
Set-ItemProperty -Path $Path -Name SystemUsesLightTheme -Value $DarkMoveValue
} catch [System.Security.SecurityException] {
Write-Warning "Unable to set $Path\$Name to $Value due to a Security Exception"
} catch [System.Management.Automation.ItemNotFoundException] {
Write-Warning $psitem.Exception.ErrorRecord
} catch {
Write-Warning "Unable to set $Name due to unhandled exception"
Write-Warning $psitem.Exception.StackTrace
}
}
```
<!-- BEGIN SECOND CUSTOM CONTENT -->
<!-- END SECOND CUSTOM CONTENT -->
[View the JSON file](https://github.com/ChrisTitusTech/winutil/tree/main/config/tweaks.json)

View File

@ -0,0 +1,76 @@
# Detailed BSoD
Last Updated: 2024-08-07
!!! info
The Development Documentation is auto generated for every compilation of WinUtil, meaning a part of it will always stay up-to-date. **Developers do have the ability to add custom content, which won't be updated automatically.**
## Description
If Enabled then you will see a detailed Blue Screen of Death (BSOD) with more information.
<!-- BEGIN CUSTOM CONTENT -->
<!-- END CUSTOM CONTENT -->
<details>
<summary>Preview Code</summary>
```json
{
"Content": "Detailed BSoD",
"Description": "If Enabled then you will see a detailed Blue Screen of Death (BSOD) with more information.",
"category": "Customize Preferences",
"panel": "2",
"Order": "a205_",
"Type": "Toggle",
"link": "https://christitustech.github.io/winutil/dev/tweaks/Customize-Preferences/DetailedBSoD"
}
```
</details>
## Function: Invoke-WinUtilDetailedBSoD
```powershell
Function Invoke-WinUtilDetailedBSoD {
<#
.SYNOPSIS
Enables/Disables Detailed BSoD
(Get-ItemProperty -Path 'HKLM:\SYSTEM\CurrentControlSet\Control\CrashControl' -Name 'DisplayParameters').DisplayParameters
#>
Param($Enabled)
try {
if ($Enabled -eq $false) {
Write-Host "Enabling Detailed BSoD"
$value = 1
} else {
Write-Host "Disabling Detailed BSoD"
$value =0
}
$Path = "HKLM:\SYSTEM\CurrentControlSet\Control\CrashControl"
Set-ItemProperty -Path $Path -Name DisplayParameters -Value $value
} catch [System.Security.SecurityException] {
Write-Warning "Unable to set $Path\$Name to $Value due to a Security Exception"
} catch [System.Management.Automation.ItemNotFoundException] {
Write-Warning $psitem.Exception.ErrorRecord
} catch {
Write-Warning "Unable to set $Name due to unhandled exception"
Write-Warning $psitem.Exception.StackTrace
}
}
```
<!-- BEGIN SECOND CUSTOM CONTENT -->
<!-- END SECOND CUSTOM CONTENT -->
[View the JSON file](https://github.com/ChrisTitusTech/winutil/tree/main/config/tweaks.json)

View File

@ -0,0 +1,76 @@
# Show Hidden Files
Last Updated: 2024-08-07
!!! info
The Development Documentation is auto generated for every compilation of WinUtil, meaning a part of it will always stay up-to-date. **Developers do have the ability to add custom content, which won't be updated automatically.**
## Description
If Enabled then Hidden Files will be shown.
<!-- BEGIN CUSTOM CONTENT -->
<!-- END CUSTOM CONTENT -->
<details>
<summary>Preview Code</summary>
```json
{
"Content": "Show Hidden Files",
"Description": "If Enabled then Hidden Files will be shown.",
"category": "Customize Preferences",
"panel": "2",
"Order": "a200_",
"Type": "Toggle",
"link": "https://christitustech.github.io/winutil/dev/tweaks/Customize-Preferences/HiddenFiles"
}
```
</details>
## Function: Invoke-WinUtilHiddenFiles
```powershell
function Invoke-WinUtilHiddenFiles {
<#
.SYNOPSIS
Enable/Disable Hidden Files
.PARAMETER Enabled
Indicates whether to enable or disable Hidden Files
#>
Param($Enabled)
try {
if ($Enabled -eq $false) {
Write-Host "Enabling Hidden Files"
$value = 1
} else {
Write-Host "Disabling Hidden Files"
$value = 0
}
$Path = "HKCU:\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced"
Set-ItemProperty -Path $Path -Name Hidden -Value $value
} catch [System.Security.SecurityException] {
Write-Warning "Unable to set $Path\$Name to $Value due to a Security Exception"
} catch [System.Management.Automation.ItemNotFoundException] {
Write-Warning $psitem.Exception.ErrorRecord
} catch {
Write-Warning "Unable to set $Name due to unhandled exception"
Write-Warning $psitem.Exception.StackTrace
}
}
```
<!-- BEGIN SECOND CUSTOM CONTENT -->
<!-- END SECOND CUSTOM CONTENT -->
[View the JSON file](https://github.com/ChrisTitusTech/winutil/tree/main/config/tweaks.json)

View File

@ -0,0 +1,84 @@
# Mouse Acceleration
Last Updated: 2024-08-07
!!! info
The Development Documentation is auto generated for every compilation of WinUtil, meaning a part of it will always stay up-to-date. **Developers do have the ability to add custom content, which won't be updated automatically.**
## Description
If Enabled then Cursor movement is affected by the speed of your physical mouse movements.
<!-- BEGIN CUSTOM CONTENT -->
<!-- END CUSTOM CONTENT -->
<details>
<summary>Preview Code</summary>
```json
{
"Content": "Mouse Acceleration",
"Description": "If Enabled then Cursor movement is affected by the speed of your physical mouse movements.",
"category": "Customize Preferences",
"panel": "2",
"Order": "a107_",
"Type": "Toggle",
"link": "https://christitustech.github.io/winutil/dev/tweaks/Customize-Preferences/MouseAcceleration"
}
```
</details>
## Function: Invoke-WinUtilMouseAcceleration
```powershell
Function Invoke-WinUtilMouseAcceleration {
<#
.SYNOPSIS
Enables/Disables Mouse Acceleration
.PARAMETER DarkMoveEnabled
Indicates the current Mouse Acceleration State
#>
Param($MouseAccelerationEnabled)
try {
if ($MouseAccelerationEnabled -eq $false) {
Write-Host "Enabling Mouse Acceleration"
$MouseSpeed = 1
$MouseThreshold1 = 6
$MouseThreshold2 = 10
} else {
Write-Host "Disabling Mouse Acceleration"
$MouseSpeed = 0
$MouseThreshold1 = 0
$MouseThreshold2 = 0
}
$Path = "HKCU:\Control Panel\Mouse"
Set-ItemProperty -Path $Path -Name MouseSpeed -Value $MouseSpeed
Set-ItemProperty -Path $Path -Name MouseThreshold1 -Value $MouseThreshold1
Set-ItemProperty -Path $Path -Name MouseThreshold2 -Value $MouseThreshold2
} catch [System.Security.SecurityException] {
Write-Warning "Unable to set $Path\$Name to $Value due to a Security Exception"
} catch [System.Management.Automation.ItemNotFoundException] {
Write-Warning $psitem.Exception.ErrorRecord
} catch {
Write-Warning "Unable to set $Name due to unhandled exception"
Write-Warning $psitem.Exception.StackTrace
}
}
```
<!-- BEGIN SECOND CUSTOM CONTENT -->
<!-- END SECOND CUSTOM CONTENT -->
[View the JSON file](https://github.com/ChrisTitusTech/winutil/tree/main/config/tweaks.json)

View File

@ -0,0 +1,77 @@
# NumLock on Startup
Last Updated: 2024-08-07
!!! info
The Development Documentation is auto generated for every compilation of WinUtil, meaning a part of it will always stay up-to-date. **Developers do have the ability to add custom content, which won't be updated automatically.**
## Description
Toggle the Num Lock key state when your computer starts.
<!-- BEGIN CUSTOM CONTENT -->
<!-- END CUSTOM CONTENT -->
<details>
<summary>Preview Code</summary>
```json
{
"Content": "NumLock on Startup",
"Description": "Toggle the Num Lock key state when your computer starts.",
"category": "Customize Preferences",
"panel": "2",
"Order": "a102_",
"Type": "Toggle",
"link": "https://christitustech.github.io/winutil/dev/tweaks/Customize-Preferences/NumLock"
}
```
</details>
## Function: Invoke-WinUtilNumLock
```powershell
function Invoke-WinUtilNumLock {
<#
.SYNOPSIS
Disables/Enables NumLock on startup
.PARAMETER Enabled
Indicates whether to enable or disable Numlock on startup
#>
Param($Enabled)
try {
if ($Enabled -eq $false) {
Write-Host "Enabling Numlock on startup"
$value = 2
} else {
Write-Host "Disabling Numlock on startup"
$value = 0
}
New-PSDrive -PSProvider Registry -Name HKU -Root HKEY_USERS
$HKUPath = "HKU:\.Default\Control Panel\Keyboard"
$HKCUPath = "HKCU:\Control Panel\Keyboard"
Set-ItemProperty -Path $HKUPath -Name InitialKeyboardIndicators -Value $value
Set-ItemProperty -Path $HKCUPath -Name InitialKeyboardIndicators -Value $value
}
Catch [System.Security.SecurityException] {
Write-Warning "Unable to set $Path\$Name to $Value due to a Security Exception"
} catch [System.Management.Automation.ItemNotFoundException] {
Write-Warning $psitem.Exception.ErrorRecord
} catch {
Write-Warning "Unable to set $Name due to unhandled exception"
Write-Warning $psitem.Exception.StackTrace
}
}
```
<!-- BEGIN SECOND CUSTOM CONTENT -->
<!-- END SECOND CUSTOM CONTENT -->
[View the JSON file](https://github.com/ChrisTitusTech/winutil/tree/main/config/tweaks.json)

View File

@ -0,0 +1,73 @@
# Show File Extensions
Last Updated: 2024-08-07
!!! info
The Development Documentation is auto generated for every compilation of WinUtil, meaning a part of it will always stay up-to-date. **Developers do have the ability to add custom content, which won't be updated automatically.**
## Description
If enabled then File extensions (e.g., .txt, .jpg) are visible.
<!-- BEGIN CUSTOM CONTENT -->
<!-- END CUSTOM CONTENT -->
<details>
<summary>Preview Code</summary>
```json
{
"Content": "Show File Extensions",
"Description": "If enabled then File extensions (e.g., .txt, .jpg) are visible.",
"category": "Customize Preferences",
"panel": "2",
"Order": "a201_",
"Type": "Toggle",
"link": "https://christitustech.github.io/winutil/dev/tweaks/Customize-Preferences/ShowExt"
}
```
</details>
## Function: Invoke-WinUtilShowExt
```powershell
function Invoke-WinUtilShowExt {
<#
.SYNOPSIS
Disables/Enables Show file Extentions
.PARAMETER Enabled
Indicates whether to enable or disable Show file extentions
#>
Param($Enabled)
try {
if ($Enabled -eq $false) {
Write-Host "Showing file extentions"
$value = 0
} else {
Write-Host "hiding file extensions"
$value = 1
}
$Path = "HKCU:\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced"
Set-ItemProperty -Path $Path -Name HideFileExt -Value $value
} catch [System.Security.SecurityException] {
Write-Warning "Unable to set $Path\$Name to $Value due to a Security Exception"
} catch [System.Management.Automation.ItemNotFoundException] {
Write-Warning $psitem.Exception.ErrorRecord
} catch {
Write-Warning "Unable to set $Name due to unhandled exception"
Write-Warning $psitem.Exception.StackTrace
}
}
```
<!-- BEGIN SECOND CUSTOM CONTENT -->
<!-- END SECOND CUSTOM CONTENT -->
[View the JSON file](https://github.com/ChrisTitusTech/winutil/tree/main/config/tweaks.json)

View File

@ -0,0 +1,76 @@
# Snap Assist Flyout
Last Updated: 2024-08-07
!!! info
The Development Documentation is auto generated for every compilation of WinUtil, meaning a part of it will always stay up-to-date. **Developers do have the ability to add custom content, which won't be updated automatically.**
## Description
If enabled then Snap preview is disabled when maximize button is hovered.
<!-- BEGIN CUSTOM CONTENT -->
<!-- END CUSTOM CONTENT -->
<details>
<summary>Preview Code</summary>
```json
{
"Content": "Snap Assist Flyout",
"Description": "If enabled then Snap preview is disabled when maximize button is hovered.",
"category": "Customize Preferences",
"panel": "2",
"Order": "a105_",
"Type": "Toggle",
"link": "https://christitustech.github.io/winutil/dev/tweaks/Customize-Preferences/SnapFlyout"
}
```
</details>
## Function: Invoke-WinUtilSnapFlyout
```powershell
function Invoke-WinUtilSnapFlyout {
<#
.SYNOPSIS
Disables/Enables Snap Assist Flyout on startup
.PARAMETER Enabled
Indicates whether to enable or disable Snap Assist Flyout on startup
#>
Param($Enabled)
try {
if ($Enabled -eq $false) {
Write-Host "Enabling Snap Assist Flyout On startup"
$value = 1
} else {
Write-Host "Disabling Snap Assist Flyout On startup"
$value = 0
}
# taskkill.exe /F /IM "explorer.exe"
$Path = "HKCU:\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced"
taskkill.exe /F /IM "explorer.exe"
Set-ItemProperty -Path $Path -Name EnableSnapAssistFlyout -Value $value
Start-Process "explorer.exe"
} catch [System.Security.SecurityException] {
Write-Warning "Unable to set $Path\$Name to $Value due to a Security Exception"
} catch [System.Management.Automation.ItemNotFoundException] {
Write-Warning $psitem.Exception.ErrorRecord
} catch {
Write-Warning "Unable to set $Name due to unhandled exception"
Write-Warning $psitem.Exception.StackTrace
}
}
```
<!-- BEGIN SECOND CUSTOM CONTENT -->
<!-- END SECOND CUSTOM CONTENT -->
[View the JSON file](https://github.com/ChrisTitusTech/winutil/tree/main/config/tweaks.json)

View File

@ -0,0 +1,76 @@
# Snap Assist Suggestion
Last Updated: 2024-08-07
!!! info
The Development Documentation is auto generated for every compilation of WinUtil, meaning a part of it will always stay up-to-date. **Developers do have the ability to add custom content, which won't be updated automatically.**
## Description
If enabled then you will get suggestions to snap other applications in the left over spaces.
<!-- BEGIN CUSTOM CONTENT -->
<!-- END CUSTOM CONTENT -->
<details>
<summary>Preview Code</summary>
```json
{
"Content": "Snap Assist Suggestion",
"Description": "If enabled then you will get suggestions to snap other applications in the left over spaces.",
"category": "Customize Preferences",
"panel": "2",
"Order": "a106_",
"Type": "Toggle",
"link": "https://christitustech.github.io/winutil/dev/tweaks/Customize-Preferences/SnapSuggestion"
}
```
</details>
## Function: Invoke-WinUtilSnapSuggestion
```powershell
function Invoke-WinUtilSnapSuggestion {
<#
.SYNOPSIS
Disables/Enables Snap Assist Suggestions on startup
.PARAMETER Enabled
Indicates whether to enable or disable Snap Assist Suggestions on startup
#>
Param($Enabled)
try {
if ($Enabled -eq $false) {
Write-Host "Enabling Snap Assist Suggestion On startup"
$value = 1
} else {
Write-Host "Disabling Snap Assist Suggestion On startup"
$value = 0
}
# taskkill.exe /F /IM "explorer.exe"
$Path = "HKCU:\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced"
taskkill.exe /F /IM "explorer.exe"
Set-ItemProperty -Path $Path -Name SnapAssist -Value $value
Start-Process "explorer.exe"
} catch [System.Security.SecurityException] {
Write-Warning "Unable to set $Path\$Name to $Value due to a Security Exception"
} catch [System.Management.Automation.ItemNotFoundException] {
Write-Warning $psitem.Exception.ErrorRecord
} catch {
Write-Warning "Unable to set $Name due to unhandled exception"
Write-Warning $psitem.Exception.StackTrace
}
}
```
<!-- BEGIN SECOND CUSTOM CONTENT -->
<!-- END SECOND CUSTOM CONTENT -->
[View the JSON file](https://github.com/ChrisTitusTech/winutil/tree/main/config/tweaks.json)

View File

@ -0,0 +1,73 @@
# Snap Window
Last Updated: 2024-08-07
!!! info
The Development Documentation is auto generated for every compilation of WinUtil, meaning a part of it will always stay up-to-date. **Developers do have the ability to add custom content, which won't be updated automatically.**
## Description
If enabled you can align windows by dragging them. | Relogin Required
<!-- BEGIN CUSTOM CONTENT -->
<!-- END CUSTOM CONTENT -->
<details>
<summary>Preview Code</summary>
```json
{
"Content": "Snap Window",
"Description": "If enabled you can align windows by dragging them. | Relogin Required",
"category": "Customize Preferences",
"panel": "2",
"Order": "a104_",
"Type": "Toggle",
"link": "https://christitustech.github.io/winutil/dev/tweaks/Customize-Preferences/SnapWindow"
}
```
</details>
## Function: Invoke-WinUtilSnapWindow
```powershell
function Invoke-WinUtilSnapWindow {
<#
.SYNOPSIS
Disables/Enables Snapping Windows on startup
.PARAMETER Enabled
Indicates whether to enable or disable Snapping Windows on startup
#>
Param($Enabled)
try {
if ($Enabled -eq $false) {
Write-Host "Enabling Snap Windows On startup | Relogin Required"
$value = 1
} else {
Write-Host "Disabling Snap Windows On startup | Relogin Required"
$value = 0
}
$Path = "HKCU:\Control Panel\Desktop"
Set-ItemProperty -Path $Path -Name WindowArrangementActive -Value $value
} catch [System.Security.SecurityException] {
Write-Warning "Unable to set $Path\$Name to $Value due to a Security Exception"
} catch [System.Management.Automation.ItemNotFoundException] {
Write-Warning $psitem.Exception.ErrorRecord
} catch {
Write-Warning "Unable to set $Name due to unhandled exception"
Write-Warning $psitem.Exception.StackTrace
}
}
```
<!-- BEGIN SECOND CUSTOM CONTENT -->
<!-- END SECOND CUSTOM CONTENT -->
[View the JSON file](https://github.com/ChrisTitusTech/winutil/tree/main/config/tweaks.json)

View File

@ -0,0 +1,73 @@
# Sticky Keys
Last Updated: 2024-08-07
!!! info
The Development Documentation is auto generated for every compilation of WinUtil, meaning a part of it will always stay up-to-date. **Developers do have the ability to add custom content, which won't be updated automatically.**
## Description
If Enabled then 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.
<!-- BEGIN CUSTOM CONTENT -->
<!-- END CUSTOM CONTENT -->
<details>
<summary>Preview Code</summary>
```json
{
"Content": "Sticky Keys",
"Description": "If Enabled then 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.",
"category": "Customize Preferences",
"panel": "2",
"Order": "a108_",
"Type": "Toggle",
"link": "https://christitustech.github.io/winutil/dev/tweaks/Customize-Preferences/StickyKeys"
}
```
</details>
## Function: Invoke-WinUtilStickyKeys
```powershell
Function Invoke-WinUtilStickyKeys {
<#
.SYNOPSIS
Disables/Enables Sticky Keyss on startup
.PARAMETER Enabled
Indicates whether to enable or disable Sticky Keys on startup
#>
Param($Enabled)
try {
if ($Enabled -eq $false) {
Write-Host "Enabling Sticky Keys On startup"
$value = 510
} else {
Write-Host "Disabling Sticky Keys On startup"
$value = 58
}
$Path = "HKCU:\Control Panel\Accessibility\StickyKeys"
Set-ItemProperty -Path $Path -Name Flags -Value $value
} catch [System.Security.SecurityException] {
Write-Warning "Unable to set $Path\$Name to $Value due to a Security Exception"
} catch [System.Management.Automation.ItemNotFoundException] {
Write-Warning $psitem.Exception.ErrorRecord
} catch {
Write-Warning "Unable to set $Name due to unhandled exception"
Write-Warning $psitem.Exception.StackTrace
}
}
```
<!-- BEGIN SECOND CUSTOM CONTENT -->
<!-- END SECOND CUSTOM CONTENT -->
[View the JSON file](https://github.com/ChrisTitusTech/winutil/tree/main/config/tweaks.json)

View File

@ -0,0 +1,76 @@
# Task View Button in Taskbar
Last Updated: 2024-08-07
!!! info
The Development Documentation is auto generated for every compilation of WinUtil, meaning a part of it will always stay up-to-date. **Developers do have the ability to add custom content, which won't be updated automatically.**
## Description
If Enabled then Task View Button in Taskbar will be shown.
<!-- BEGIN CUSTOM CONTENT -->
<!-- END CUSTOM CONTENT -->
<details>
<summary>Preview Code</summary>
```json
{
"Content": "Task View Button in Taskbar",
"Description": "If Enabled then Task View Button in Taskbar will be shown.",
"category": "Customize Preferences",
"panel": "2",
"Order": "a203_",
"Type": "Toggle",
"link": "https://christitustech.github.io/winutil/dev/tweaks/Customize-Preferences/TaskView"
}
```
</details>
## Function: Invoke-WinUtilTaskView
```powershell
function Invoke-WinUtilTaskView {
<#
.SYNOPSIS
Enable/Disable Task View
.PARAMETER Enabled
Indicates whether to enable or disable Task View
#>
Param($Enabled)
try {
if ($Enabled -eq $false) {
Write-Host "Enabling Task View"
$value = 1
} else {
Write-Host "Disabling Task View"
$value = 0
}
$Path = "HKCU:\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced"
Set-ItemProperty -Path $Path -Name ShowTaskViewButton -Value $value
} catch [System.Security.SecurityException] {
Write-Warning "Unable to set $Path\$Name to $Value due to a Security Exception"
} catch [System.Management.Automation.ItemNotFoundException] {
Write-Warning $psitem.Exception.ErrorRecord
} catch {
Write-Warning "Unable to set $Name due to unhandled exception"
Write-Warning $psitem.Exception.StackTrace
}
}
```
<!-- BEGIN SECOND CUSTOM CONTENT -->
<!-- END SECOND CUSTOM CONTENT -->
[View the JSON file](https://github.com/ChrisTitusTech/winutil/tree/main/config/tweaks.json)

View File

@ -0,0 +1,76 @@
# Center Taskbar Items
Last Updated: 2024-08-07
!!! info
The Development Documentation is auto generated for every compilation of WinUtil, meaning a part of it will always stay up-to-date. **Developers do have the ability to add custom content, which won't be updated automatically.**
## Description
[Windows 11] If Enabled then the Taskbar Items will be shown on the Center, otherwise the Taskbar Items will be shown on the Left.
<!-- BEGIN CUSTOM CONTENT -->
<!-- END CUSTOM CONTENT -->
<details>
<summary>Preview Code</summary>
```json
{
"Content": "Center Taskbar Items",
"Description": "[Windows 11] If Enabled then the Taskbar Items will be shown on the Center, otherwise the Taskbar Items will be shown on the Left.",
"category": "Customize Preferences",
"panel": "2",
"Order": "a204_",
"Type": "Toggle",
"link": "https://christitustech.github.io/winutil/dev/tweaks/Customize-Preferences/TaskbarAlignment"
}
```
</details>
## Function: Invoke-WinUtilTaskbarAlignment
```powershell
function Invoke-WinUtilTaskbarAlignment {
<#
.SYNOPSIS
Switches between Center & Left Taskbar Alignment
.PARAMETER Enabled
Indicates whether to make Taskbar Alignment Center or Left
#>
Param($Enabled)
try {
if ($Enabled -eq $false) {
Write-Host "Making Taskbar Alignment to the Center"
$value = 1
} else {
Write-Host "Making Taskbar Alignment to the Left"
$value = 0
}
$Path = "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Advanced"
Set-ItemProperty -Path $Path -Name "TaskbarAl" -Value $value
} catch [System.Security.SecurityException] {
Write-Warning "Unable to set $Path\$Name to $value due to a Security Exception"
} catch [System.Management.Automation.ItemNotFoundException] {
Write-Warning $psitem.Exception.ErrorRecord
} catch {
Write-Warning "Unable to set $Name due to unhandled exception"
Write-Warning $psitem.Exception.StackTrace
}
}
```
<!-- BEGIN SECOND CUSTOM CONTENT -->
<!-- END SECOND CUSTOM CONTENT -->
[View the JSON file](https://github.com/ChrisTitusTech/winutil/tree/main/config/tweaks.json)

View File

@ -0,0 +1,76 @@
# Search Button in Taskbar
Last Updated: 2024-08-07
!!! info
The Development Documentation is auto generated for every compilation of WinUtil, meaning a part of it will always stay up-to-date. **Developers do have the ability to add custom content, which won't be updated automatically.**
## Description
If Enabled Search Button will be on the taskbar.
<!-- BEGIN CUSTOM CONTENT -->
<!-- END CUSTOM CONTENT -->
<details>
<summary>Preview Code</summary>
```json
{
"Content": "Search Button in Taskbar",
"Description": "If Enabled Search Button will be on the taskbar.",
"category": "Customize Preferences",
"panel": "2",
"Order": "a202_",
"Type": "Toggle",
"link": "https://christitustech.github.io/winutil/dev/tweaks/Customize-Preferences/TaskbarSearch"
}
```
</details>
## Function: Invoke-WinUtilTaskbarSearch
```powershell
function Invoke-WinUtilTaskbarSearch {
<#
.SYNOPSIS
Enable/Disable Taskbar Search Button.
.PARAMETER Enabled
Indicates whether to enable or disable Taskbar Search Button.
#>
Param($Enabled)
try {
if ($Enabled -eq $false) {
Write-Host "Enabling Search Button"
$value = 1
} else {
Write-Host "Disabling Search Button"
$value = 0
}
$Path = "HKCU:\Software\Microsoft\Windows\CurrentVersion\Search\"
Set-ItemProperty -Path $Path -Name SearchboxTaskbarMode -Value $value
} catch [System.Security.SecurityException] {
Write-Warning "Unable to set $Path\$Name to $Value due to a Security Exception"
} catch [System.Management.Automation.ItemNotFoundException] {
Write-Warning $psitem.Exception.ErrorRecord
} catch {
Write-Warning "Unable to set $Name due to unhandled exception"
Write-Warning $psitem.Exception.StackTrace
}
}
```
<!-- BEGIN SECOND CUSTOM CONTENT -->
<!-- END SECOND CUSTOM CONTENT -->
[View the JSON file](https://github.com/ChrisTitusTech/winutil/tree/main/config/tweaks.json)

View File

@ -0,0 +1,76 @@
# Widgets Button in Taskbar
Last Updated: 2024-08-07
!!! info
The Development Documentation is auto generated for every compilation of WinUtil, meaning a part of it will always stay up-to-date. **Developers do have the ability to add custom content, which won't be updated automatically.**
## Description
If Enabled then Widgets Button in Taskbar will be shown.
<!-- BEGIN CUSTOM CONTENT -->
<!-- END CUSTOM CONTENT -->
<details>
<summary>Preview Code</summary>
```json
{
"Content": "Widgets Button in Taskbar",
"Description": "If Enabled then Widgets Button in Taskbar will be shown.",
"category": "Customize Preferences",
"panel": "2",
"Order": "a204_",
"Type": "Toggle",
"link": "https://christitustech.github.io/winutil/dev/tweaks/Customize-Preferences/TaskbarWidgets"
}
```
</details>
## Function: Invoke-WinUtilTaskbarWidgets
```powershell
function Invoke-WinUtilTaskbarWidgets {
<#
.SYNOPSIS
Enable/Disable Taskbar Widgets
.PARAMETER Enabled
Indicates whether to enable or disable Taskbar Widgets
#>
Param($Enabled)
try {
if ($Enabled -eq $false) {
Write-Host "Enabling Taskbar Widgets"
$value = 1
} else {
Write-Host "Disabling Taskbar Widgets"
$value = 0
}
$Path = "HKCU:\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced"
Set-ItemProperty -Path $Path -Name TaskbarDa -Value $value
} catch [System.Security.SecurityException] {
Write-Warning "Unable to set $Path\$Name to $Value due to a Security Exception"
} catch [System.Management.Automation.ItemNotFoundException] {
Write-Warning $psitem.Exception.ErrorRecord
} catch {
Write-Warning "Unable to set $Name due to unhandled exception"
Write-Warning $psitem.Exception.StackTrace
}
}
```
<!-- BEGIN SECOND CUSTOM CONTENT -->
<!-- END SECOND CUSTOM CONTENT -->
[View the JSON file](https://github.com/ChrisTitusTech/winutil/tree/main/config/tweaks.json)

View File

@ -0,0 +1,73 @@
# Verbose Messages During Logon
Last Updated: 2024-08-07
!!! info
The Development Documentation is auto generated for every compilation of WinUtil, meaning a part of it will always stay up-to-date. **Developers do have the ability to add custom content, which won't be updated automatically.**
## Description
Show detailed messages during the login process for troubleshooting and diagnostics.
<!-- BEGIN CUSTOM CONTENT -->
<!-- END CUSTOM CONTENT -->
<details>
<summary>Preview Code</summary>
```json
{
"Content": "Verbose Messages During Logon",
"Description": "Show detailed messages during the login process for troubleshooting and diagnostics.",
"category": "Customize Preferences",
"panel": "2",
"Order": "a103_",
"Type": "Toggle",
"link": "https://christitustech.github.io/winutil/dev/tweaks/Customize-Preferences/VerboseLogon"
}
```
</details>
## Function: Invoke-WinUtilVerboseLogon
```powershell
function Invoke-WinUtilVerboseLogon {
<#
.SYNOPSIS
Disables/Enables VerboseLogon Messages
.PARAMETER Enabled
Indicates whether to enable or disable VerboseLogon messages
#>
Param($Enabled)
try {
if ($Enabled -eq $false) {
Write-Host "Enabling Verbose Logon Messages"
$value = 1
} else {
Write-Host "Disabling Verbose Logon Messages"
$value = 0
}
$Path = "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System"
Set-ItemProperty -Path $Path -Name VerboseStatus -Value $value
} catch [System.Security.SecurityException] {
Write-Warning "Unable to set $Path\$Name to $Value due to a Security Exception"
} catch [System.Management.Automation.ItemNotFoundException] {
Write-Warning $psitem.Exception.ErrorRecord
} catch {
Write-Warning "Unable to set $Name due to unhandled exception"
Write-Warning $psitem.Exception.StackTrace
}
}
```
<!-- BEGIN SECOND CUSTOM CONTENT -->
<!-- END SECOND CUSTOM CONTENT -->
[View the JSON file](https://github.com/ChrisTitusTech/winutil/tree/main/config/tweaks.json)

View File

@ -0,0 +1,93 @@
# Disable Activity History
Last Updated: 2024-08-07
!!! info
The Development Documentation is auto generated for every compilation of WinUtil, meaning a part of it will always stay up-to-date. **Developers do have the ability to add custom content, which won't be updated automatically.**
## Description
This erases recent docs, clipboard, and run history.
<!-- BEGIN CUSTOM CONTENT -->
<!-- END CUSTOM CONTENT -->
<details>
<summary>Preview Code</summary>
```json
{
"Content": "Disable Activity History",
"Description": "This erases recent docs, clipboard, and run history.",
"category": "Essential Tweaks",
"panel": "1",
"Order": "a005_",
"registry": [
{
"Path": "HKLM:\\SOFTWARE\\Policies\\Microsoft\\Windows\\System",
"Name": "EnableActivityFeed",
"Type": "DWord",
"Value": "0",
"OriginalValue": "1"
},
{
"Path": "HKLM:\\SOFTWARE\\Policies\\Microsoft\\Windows\\System",
"Name": "PublishUserActivities",
"Type": "DWord",
"Value": "0",
"OriginalValue": "1"
},
{
"Path": "HKLM:\\SOFTWARE\\Policies\\Microsoft\\Windows\\System",
"Name": "UploadUserActivities",
"Type": "DWord",
"Value": "0",
"OriginalValue": "1"
}
],
"link": "https://christitustech.github.io/winutil/dev/tweaks/Essential-Tweaks/AH"
}
```
</details>
## 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://www.wikiwand.com/en/Windows_Registry) and [Microsoft's Website](https://learn.microsoft.com/en-us/windows/win32/sysinfo/registry).
### Registry Key: EnableActivityFeed
**Type:** DWord
**Original Value:** 1
**New Value:** 0
### Registry Key: PublishUserActivities
**Type:** DWord
**Original Value:** 1
**New Value:** 0
### Registry Key: UploadUserActivities
**Type:** DWord
**Original Value:** 1
**New Value:** 0
<!-- BEGIN SECOND CUSTOM CONTENT -->
<!-- END SECOND CUSTOM CONTENT -->
[View the JSON file](https://github.com/ChrisTitusTech/winutil/tree/main/config/tweaks.json)

View File

@ -0,0 +1,63 @@
# Disable ConsumerFeatures
Last Updated: 2024-08-07
!!! info
The Development Documentation is auto generated for every compilation of WinUtil, meaning a part of it will always stay up-to-date. **Developers do have the ability to add custom content, which won't be updated automatically.**
## Description
Windows 10 will not automatically install any games, third-party apps, or application links from the Windows Store for the signed-in user. Some default Apps will be inaccessible (eg. Phone Link)
<!-- BEGIN CUSTOM CONTENT -->
<!-- END CUSTOM CONTENT -->
<details>
<summary>Preview Code</summary>
```json
{
"Content": "Disable ConsumerFeatures",
"Description": "Windows 10 will not automatically install any games, third-party apps, or application links from the Windows Store for the signed-in user. Some default Apps will be inaccessible (eg. Phone Link)",
"category": "Essential Tweaks",
"panel": "1",
"Order": "a003_",
"registry": [
{
"Path": "HKLM:\\SOFTWARE\\Policies\\Microsoft\\Windows\\CloudContent",
"OriginalValue": "0",
"Name": "DisableWindowsConsumerFeatures",
"Value": "1",
"Type": "DWord"
}
],
"link": "https://christitustech.github.io/winutil/dev/tweaks/Essential-Tweaks/ConsumerFeatures"
}
```
</details>
## 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://www.wikiwand.com/en/Windows_Registry) and [Microsoft's Website](https://learn.microsoft.com/en-us/windows/win32/sysinfo/registry).
### Registry Key: DisableWindowsConsumerFeatures
**Type:** DWord
**Original Value:** 0
**New Value:** 1
<!-- BEGIN SECOND CUSTOM CONTENT -->
<!-- END SECOND CUSTOM CONTENT -->
[View the JSON file](https://github.com/ChrisTitusTech/winutil/tree/main/config/tweaks.json)

View File

@ -0,0 +1,123 @@
# Disable GameDVR
Last Updated: 2024-08-07
!!! info
The Development Documentation is auto generated for every compilation of WinUtil, meaning a part of it will always stay up-to-date. **Developers do have the ability to add custom content, which won't be updated automatically.**
## Description
GameDVR is a Windows App that is a dependency for some Store Games. I've never met someone that likes it, but it's there for the XBOX crowd.
<!-- BEGIN CUSTOM CONTENT -->
<!-- END CUSTOM CONTENT -->
<details>
<summary>Preview Code</summary>
```json
{
"Content": "Disable GameDVR",
"Description": "GameDVR is a Windows App that is a dependency for some Store Games. I've never met someone that likes it, but it's there for the XBOX crowd.",
"category": "Essential Tweaks",
"panel": "1",
"Order": "a005_",
"registry": [
{
"Path": "HKCU:\\System\\GameConfigStore",
"Name": "GameDVR_FSEBehavior",
"Value": "2",
"OriginalValue": "1",
"Type": "DWord"
},
{
"Path": "HKCU:\\System\\GameConfigStore",
"Name": "GameDVR_Enabled",
"Value": "0",
"OriginalValue": "1",
"Type": "DWord"
},
{
"Path": "HKCU:\\System\\GameConfigStore",
"Name": "GameDVR_HonorUserFSEBehaviorMode",
"Value": "1",
"OriginalValue": "0",
"Type": "DWord"
},
{
"Path": "HKCU:\\System\\GameConfigStore",
"Name": "GameDVR_EFSEFeatureFlags",
"Value": "0",
"OriginalValue": "1",
"Type": "DWord"
},
{
"Path": "HKLM:\\SOFTWARE\\Policies\\Microsoft\\Windows\\GameDVR",
"Name": "AllowGameDVR",
"Value": "0",
"OriginalValue": "1",
"Type": "DWord"
}
],
"link": "https://christitustech.github.io/winutil/dev/tweaks/Essential-Tweaks/DVR"
}
```
</details>
## 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://www.wikiwand.com/en/Windows_Registry) and [Microsoft's Website](https://learn.microsoft.com/en-us/windows/win32/sysinfo/registry).
### Registry Key: GameDVR_FSEBehavior
**Type:** DWord
**Original Value:** 1
**New Value:** 2
### Registry Key: GameDVR_Enabled
**Type:** DWord
**Original Value:** 1
**New Value:** 0
### Registry Key: GameDVR_HonorUserFSEBehaviorMode
**Type:** DWord
**Original Value:** 0
**New Value:** 1
### Registry Key: GameDVR_EFSEFeatureFlags
**Type:** DWord
**Original Value:** 1
**New Value:** 0
### Registry Key: AllowGameDVR
**Type:** DWord
**Original Value:** 1
**New Value:** 0
<!-- BEGIN SECOND CUSTOM CONTENT -->
<!-- END SECOND CUSTOM CONTENT -->
[View the JSON file](https://github.com/ChrisTitusTech/winutil/tree/main/config/tweaks.json)

View File

@ -0,0 +1,50 @@
# Delete Temporary Files
Last Updated: 2024-08-07
!!! info
The Development Documentation is auto generated for every compilation of WinUtil, meaning a part of it will always stay up-to-date. **Developers do have the ability to add custom content, which won't be updated automatically.**
## Description
Erases TEMP Folders
<!-- BEGIN CUSTOM CONTENT -->
<!-- END CUSTOM CONTENT -->
<details>
<summary>Preview Code</summary>
```json
{
"Content": "Delete Temporary Files",
"Description": "Erases TEMP Folders",
"category": "Essential Tweaks",
"panel": "1",
"Order": "a002_",
"InvokeScript": [
"Get-ChildItem -Path \"C:\\Windows\\Temp\" *.* -Recurse | Remove-Item -Force -Recurse
Get-ChildItem -Path $env:TEMP *.* -Recurse | Remove-Item -Force -Recurse"
],
"link": "https://christitustech.github.io/winutil/dev/tweaks/Essential-Tweaks/DeleteTempFiles"
}
```
</details>
## Invoke Script
```powershell
Get-ChildItem -Path "C:\Windows\Temp" *.* -Recurse | Remove-Item -Force -Recurse
Get-ChildItem -Path $env:TEMP *.* -Recurse | Remove-Item -Force -Recurse
```
<!-- BEGIN SECOND CUSTOM CONTENT -->
<!-- END SECOND CUSTOM CONTENT -->
[View the JSON file](https://github.com/ChrisTitusTech/winutil/tree/main/config/tweaks.json)

View File

@ -0,0 +1,54 @@
# Run Disk Cleanup
Last Updated: 2024-08-07
!!! info
The Development Documentation is auto generated for every compilation of WinUtil, meaning a part of it will always stay up-to-date. **Developers do have the ability to add custom content, which won't be updated automatically.**
## Description
Runs Disk Cleanup on Drive C: and removes old Windows Updates.
<!-- BEGIN CUSTOM CONTENT -->
<!-- END CUSTOM CONTENT -->
<details>
<summary>Preview Code</summary>
```json
{
"Content": "Run Disk Cleanup",
"Description": "Runs Disk Cleanup on Drive C: and removes old Windows Updates.",
"category": "Essential Tweaks",
"panel": "1",
"Order": "a009_",
"InvokeScript": [
"
cleanmgr.exe /d C: /VERYLOWDISK
Dism.exe /online /Cleanup-Image /StartComponentCleanup /ResetBase
"
],
"link": "https://christitustech.github.io/winutil/dev/tweaks/Essential-Tweaks/DiskCleanup"
}
```
</details>
## Invoke Script
```powershell
cleanmgr.exe /d C: /VERYLOWDISK
Dism.exe /online /Cleanup-Image /StartComponentCleanup /ResetBase
```
<!-- BEGIN SECOND CUSTOM CONTENT -->
<!-- END SECOND CUSTOM CONTENT -->
[View the JSON file](https://github.com/ChrisTitusTech/winutil/tree/main/config/tweaks.json)

View File

@ -0,0 +1,363 @@
# Debloat Edge
Last Updated: 2024-08-07
!!! info
The Development Documentation is auto generated for every compilation of WinUtil, meaning a part of it will always stay up-to-date. **Developers do have the ability to add custom content, which won't be updated automatically.**
## Description
Disables various telemetry options, popups, and other annoyances in Edge.
<!-- BEGIN CUSTOM CONTENT -->
<!-- END CUSTOM CONTENT -->
<details>
<summary>Preview Code</summary>
```json
{
"Content": "Debloat Edge",
"Description": "Disables various telemetry options, popups, and other annoyances in Edge.",
"category": "Essential Tweaks",
"panel": "1",
"Order": "a016_",
"registry": [
{
"Path": "HKLM:\\SOFTWARE\\Policies\\Microsoft\\EdgeUpdate",
"Name": "CreateDesktopShortcutDefault",
"Type": "DWord",
"Value": "0",
"OriginalValue": "1"
},
{
"Path": "HKLM:\\SOFTWARE\\Policies\\Microsoft\\Edge",
"Name": "EdgeEnhanceImagesEnabled",
"Type": "DWord",
"Value": "0",
"OriginalValue": "1"
},
{
"Path": "HKLM:\\SOFTWARE\\Policies\\Microsoft\\Edge",
"Name": "PersonalizationReportingEnabled",
"Type": "DWord",
"Value": "0",
"OriginalValue": "1"
},
{
"Path": "HKLM:\\SOFTWARE\\Policies\\Microsoft\\Edge",
"Name": "ShowRecommendationsEnabled",
"Type": "DWord",
"Value": "0",
"OriginalValue": "1"
},
{
"Path": "HKLM:\\SOFTWARE\\Policies\\Microsoft\\Edge",
"Name": "HideFirstRunExperience",
"Type": "DWord",
"Value": "1",
"OriginalValue": "0"
},
{
"Path": "HKLM:\\SOFTWARE\\Policies\\Microsoft\\Edge",
"Name": "UserFeedbackAllowed",
"Type": "DWord",
"Value": "0",
"OriginalValue": "1"
},
{
"Path": "HKLM:\\SOFTWARE\\Policies\\Microsoft\\Edge",
"Name": "ConfigureDoNotTrack",
"Type": "DWord",
"Value": "1",
"OriginalValue": "0"
},
{
"Path": "HKLM:\\SOFTWARE\\Policies\\Microsoft\\Edge",
"Name": "AlternateErrorPagesEnabled",
"Type": "DWord",
"Value": "0",
"OriginalValue": "1"
},
{
"Path": "HKLM:\\SOFTWARE\\Policies\\Microsoft\\Edge",
"Name": "EdgeCollectionsEnabled",
"Type": "DWord",
"Value": "0",
"OriginalValue": "1"
},
{
"Path": "HKLM:\\SOFTWARE\\Policies\\Microsoft\\Edge",
"Name": "EdgeFollowEnabled",
"Type": "DWord",
"Value": "0",
"OriginalValue": "1"
},
{
"Path": "HKLM:\\SOFTWARE\\Policies\\Microsoft\\Edge",
"Name": "EdgeShoppingAssistantEnabled",
"Type": "DWord",
"Value": "0",
"OriginalValue": "1"
},
{
"Path": "HKLM:\\SOFTWARE\\Policies\\Microsoft\\Edge",
"Name": "MicrosoftEdgeInsiderPromotionEnabled",
"Type": "DWord",
"Value": "0",
"OriginalValue": "1"
},
{
"Path": "HKLM:\\SOFTWARE\\Policies\\Microsoft\\Edge",
"Name": "PersonalizationReportingEnabled",
"Type": "DWord",
"Value": "0",
"OriginalValue": "1"
},
{
"Path": "HKLM:\\SOFTWARE\\Policies\\Microsoft\\Edge",
"Name": "ShowMicrosoftRewards",
"Type": "DWord",
"Value": "0",
"OriginalValue": "1"
},
{
"Path": "HKLM:\\SOFTWARE\\Policies\\Microsoft\\Edge",
"Name": "WebWidgetAllowed",
"Type": "DWord",
"Value": "0",
"OriginalValue": "1"
},
{
"Path": "HKLM:\\SOFTWARE\\Policies\\Microsoft\\Edge",
"Name": "DiagnosticData",
"Type": "DWord",
"Value": "0",
"OriginalValue": "1"
},
{
"Path": "HKLM:\\SOFTWARE\\Policies\\Microsoft\\Edge",
"Name": "EdgeAssetDeliveryServiceEnabled",
"Type": "DWord",
"Value": "0",
"OriginalValue": "1"
},
{
"Path": "HKLM:\\SOFTWARE\\Policies\\Microsoft\\Edge",
"Name": "EdgeCollectionsEnabled",
"Type": "DWord",
"Value": "0",
"OriginalValue": "1"
},
{
"Path": "HKLM:\\SOFTWARE\\Policies\\Microsoft\\Edge",
"Name": "CryptoWalletEnabled",
"Type": "DWord",
"Value": "0",
"OriginalValue": "1"
},
{
"Path": "HKLM:\\SOFTWARE\\Policies\\Microsoft\\Edge",
"Name": "ConfigureDoNotTrack",
"Type": "DWord",
"Value": "1",
"OriginalValue": "0"
},
{
"Path": "HKLM:\\SOFTWARE\\Policies\\Microsoft\\Edge",
"Name": "WalletDonationEnabled",
"Type": "DWord",
"Value": "0",
"OriginalValue": "1"
}
],
"link": "https://christitustech.github.io/winutil/dev/tweaks/Essential-Tweaks/EdgeDebloat"
}
```
</details>
## 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://www.wikiwand.com/en/Windows_Registry) and [Microsoft's Website](https://learn.microsoft.com/en-us/windows/win32/sysinfo/registry).
### Registry Key: CreateDesktopShortcutDefault
**Type:** DWord
**Original Value:** 1
**New Value:** 0
### Registry Key: EdgeEnhanceImagesEnabled
**Type:** DWord
**Original Value:** 1
**New Value:** 0
### Registry Key: PersonalizationReportingEnabled
**Type:** DWord
**Original Value:** 1
**New Value:** 0
### Registry Key: ShowRecommendationsEnabled
**Type:** DWord
**Original Value:** 1
**New Value:** 0
### Registry Key: HideFirstRunExperience
**Type:** DWord
**Original Value:** 0
**New Value:** 1
### Registry Key: UserFeedbackAllowed
**Type:** DWord
**Original Value:** 1
**New Value:** 0
### Registry Key: ConfigureDoNotTrack
**Type:** DWord
**Original Value:** 0
**New Value:** 1
### Registry Key: AlternateErrorPagesEnabled
**Type:** DWord
**Original Value:** 1
**New Value:** 0
### Registry Key: EdgeCollectionsEnabled
**Type:** DWord
**Original Value:** 1
**New Value:** 0
### Registry Key: EdgeFollowEnabled
**Type:** DWord
**Original Value:** 1
**New Value:** 0
### Registry Key: EdgeShoppingAssistantEnabled
**Type:** DWord
**Original Value:** 1
**New Value:** 0
### Registry Key: MicrosoftEdgeInsiderPromotionEnabled
**Type:** DWord
**Original Value:** 1
**New Value:** 0
### Registry Key: PersonalizationReportingEnabled
**Type:** DWord
**Original Value:** 1
**New Value:** 0
### Registry Key: ShowMicrosoftRewards
**Type:** DWord
**Original Value:** 1
**New Value:** 0
### Registry Key: WebWidgetAllowed
**Type:** DWord
**Original Value:** 1
**New Value:** 0
### Registry Key: DiagnosticData
**Type:** DWord
**Original Value:** 1
**New Value:** 0
### Registry Key: EdgeAssetDeliveryServiceEnabled
**Type:** DWord
**Original Value:** 1
**New Value:** 0
### Registry Key: EdgeCollectionsEnabled
**Type:** DWord
**Original Value:** 1
**New Value:** 0
### Registry Key: CryptoWalletEnabled
**Type:** DWord
**Original Value:** 1
**New Value:** 0
### Registry Key: ConfigureDoNotTrack
**Type:** DWord
**Original Value:** 0
**New Value:** 1
### Registry Key: WalletDonationEnabled
**Type:** DWord
**Original Value:** 1
**New Value:** 0
<!-- BEGIN SECOND CUSTOM CONTENT -->
<!-- END SECOND CUSTOM CONTENT -->
[View the JSON file](https://github.com/ChrisTitusTech/winutil/tree/main/config/tweaks.json)

View File

@ -0,0 +1,97 @@
# Enable End Task With Right Click
Last Updated: 2024-08-07
!!! info
The Development Documentation is auto generated for every compilation of WinUtil, meaning a part of it will always stay up-to-date. **Developers do have the ability to add custom content, which won't be updated automatically.**
## Description
Enables option to end task when right clicking a program in the taskbar
<!-- BEGIN CUSTOM CONTENT -->
<!-- END CUSTOM CONTENT -->
<details>
<summary>Preview Code</summary>
```json
{
"Content": "Enable End Task With Right Click",
"Description": "Enables option to end task when right clicking a program in the taskbar",
"category": "Essential Tweaks",
"panel": "1",
"Order": "a006_",
"InvokeScript": [
"$path = \"HKCU:\\Software\\Microsoft\\Windows\\CurrentVersion\\Explorer\\Advanced\\TaskbarDeveloperSettings\"
$name = \"TaskbarEndTask\"
$value = 1
# Ensure the registry key exists
if (-not (Test-Path $path)) {
New-Item -Path $path -Force | Out-Null
}
# Set the property, creating it if it doesn't exist
New-ItemProperty -Path $path -Name $name -PropertyType DWord -Value $value -Force | Out-Null"
],
"UndoScript": [
"$path = \"HKCU:\\Software\\Microsoft\\Windows\\CurrentVersion\\Explorer\\Advanced\\TaskbarDeveloperSettings\"
$name = \"TaskbarEndTask\"
$value = 0
# Ensure the registry key exists
if (-not (Test-Path $path)) {
New-Item -Path $path -Force | Out-Null
}
# Set the property, creating it if it doesn't exist
New-ItemProperty -Path $path -Name $name -PropertyType DWord -Value $value -Force | Out-Null"
],
"link": "https://christitustech.github.io/winutil/dev/tweaks/Essential-Tweaks/EndTaskOnTaskbar"
}
```
</details>
## Invoke Script
```powershell
$path = "HKCU:\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced\TaskbarDeveloperSettings"
$name = "TaskbarEndTask"
$value = 1
# Ensure the registry key exists
if (-not (Test-Path $path)) {
New-Item -Path $path -Force | Out-Null
}
# Set the property, creating it if it doesn't exist
New-ItemProperty -Path $path -Name $name -PropertyType DWord -Value $value -Force | Out-Null
```
## Undo Script
```powershell
$path = "HKCU:\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced\TaskbarDeveloperSettings"
$name = "TaskbarEndTask"
$value = 0
# Ensure the registry key exists
if (-not (Test-Path $path)) {
New-Item -Path $path -Force | Out-Null
}
# Set the property, creating it if it doesn't exist
New-ItemProperty -Path $path -Name $name -PropertyType DWord -Value $value -Force | Out-Null
```
<!-- BEGIN SECOND CUSTOM CONTENT -->
<!-- END SECOND CUSTOM CONTENT -->
[View the JSON file](https://github.com/ChrisTitusTech/winutil/tree/main/config/tweaks.json)

View File

@ -0,0 +1,96 @@
# Disable Hibernation
Last Updated: 2024-08-07
!!! info
The Development Documentation is auto generated for every compilation of WinUtil, meaning a part of it will always stay up-to-date. **Developers do have the ability to add custom content, which won't be updated automatically.**
## Description
Hibernation is really meant for laptops as it saves what's in memory before turning the pc off. It really should never be used, but some people are lazy and rely on it. Don't be like Bob. Bob likes hibernation.
<!-- BEGIN CUSTOM CONTENT -->
<!-- END CUSTOM CONTENT -->
<details>
<summary>Preview Code</summary>
```json
{
"Content": "Disable Hibernation",
"Description": "Hibernation is really meant for laptops as it saves what's in memory before turning the pc off. It really should never be used, but some people are lazy and rely on it. Don't be like Bob. Bob likes hibernation.",
"category": "Essential Tweaks",
"panel": "1",
"Order": "a005_",
"registry": [
{
"Path": "HKLM:\\System\\CurrentControlSet\\Control\\Session Manager\\Power",
"Name": "HibernateEnabled",
"Type": "DWord",
"Value": "0",
"OriginalValue": "1"
},
{
"Path": "HKLM:\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Explorer\\FlyoutMenuSettings",
"Name": "ShowHibernateOption",
"Type": "DWord",
"Value": "0",
"OriginalValue": "1"
}
],
"InvokeScript": [
"powercfg.exe /hibernate off"
],
"UndoScript": [
"powercfg.exe /hibernate on"
],
"link": "https://christitustech.github.io/winutil/dev/tweaks/Essential-Tweaks/Hiber"
}
```
</details>
## Invoke Script
```powershell
powercfg.exe /hibernate off
```
## Undo Script
```powershell
powercfg.exe /hibernate on
```
## 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://www.wikiwand.com/en/Windows_Registry) and [Microsoft's Website](https://learn.microsoft.com/en-us/windows/win32/sysinfo/registry).
### Registry Key: HibernateEnabled
**Type:** DWord
**Original Value:** 1
**New Value:** 0
### Registry Key: ShowHibernateOption
**Type:** DWord
**Original Value:** 1
**New Value:** 0
<!-- BEGIN SECOND CUSTOM CONTENT -->
<!-- END SECOND CUSTOM CONTENT -->
[View the JSON file](https://github.com/ChrisTitusTech/winutil/tree/main/config/tweaks.json)

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