Compare commits

...

27 Commits

Author SHA1 Message Date
Gabi
9013753d88 Remove snap assists toggles (#3954)
* Remove snap assists toggle

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

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

* Update Invoke-WPFInstall.ps1

* format fix

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

---------

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

* Create RemoveOneDrive.md

* Update _index.md

* Update _index.md

* Update _index.md

* Update tweaks.json

* Update tweaks.json

* Update tweaks.json

* Update RemoveOneDrive.md

* Update tweaks.json

* Update RemoveOneDrive.md

* Update tweaks.json

* Update RemoveOneDrive.md

* Update tweaks.json

* Update RemoveOneDrive.md

* Update tweaks.json

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

* Create Invoke-WinUtilRemoveEdge.ps1

* Update and rename EdgeUninstall.md to RemoveEdge.md

* Update Invoke-WinUtilRemoveEdge.ps1

* Update RemoveEdge.md

* Update Invoke-WinUtilRemoveEdge.ps1

* Update RemoveEdge.md

* Update Invoke-WinUtilRemoveEdge.ps1

* Update RemoveEdge.md

* Update Invoke-WinUtilRemoveEdge.ps1

* Update RemoveEdge.md

* Update Invoke-WinUtilRemoveEdge.ps1

* Update Invoke-WinUtilRemoveEdge.ps1

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

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

* Update tweaks.json

* Update config/tweaks.json

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

* Update tweaks.json

---------

Co-authored-by: Chris Titus <contact@christitus.com>
2026-01-27 12:29:21 -06:00
ChrisTitusTech
919b2e0b8f Deploying to main from @ ChrisTitusTech/winutil@22e083182d 🚀 2026-01-22 15:40:54 +00:00
regularentropy
22e083182d fix: change feature update delay from 2 years to 365 days (#3927) 2026-01-21 22:55:50 -06:00
Gabi
2ec37f952a Update _index.md (#3912) 2026-01-21 22:54:20 -06:00
22 changed files with 270 additions and 299 deletions

61
.github/CODEOWNERS vendored
View File

@@ -1,59 +1,2 @@
# This is a comment.
# Each line is a file pattern followed by one or more owners.
# These owners will be the default owners for everything in
# the repo. Unless a later match takes precedence,
# @global-owner1 and @global-owner2 will be requested for
# review when someone opens a pull request.
* @ChrisTitusTech
# Order is important; the last matching pattern takes the most
# precedence. When someone opens a pull request that only
# modifies JS files, only @js-owner and not the global
# owner(s) will be requested for a review.
# *.js @js-owner #This is an inline comment.
# You can also use email addresses if you prefer. They'll be
# used to look up users just like we do for commit author
# emails.
# *.go docs@example.com
# Teams can be specified as code owners as well. Teams should
# be identified in the format @org/team-name. Teams must have
# explicit write access to the repository. In this example,
# the octocats team in the octo-org organization owns all .txt files.
# *.txt @octo-org/octocats
# In this example, @doctocat owns any files in the build/logs
# directory at the root of the repository and any of its
# subdirectories.
# /build/logs/ @doctocat
# The `docs/*` pattern will match files like
# `docs/getting-started.md` but not further nested files like
# `docs/build-app/troubleshooting.md`.
# docs/* docs@example.com
# In this example, @octocat owns any file in an apps directory
# anywhere in your repository.
# apps/ @octocat
# In this example, @doctocat owns any file in the `/docs`
# directory in the root of your repository and any of its
# subdirectories.
# /docs/ @doctocat
# In this example, any change inside the `/scripts` directory
# will require approval from @doctocat or @octocat.
# /scripts/ @doctocat @octocat
# In this example, @octocat owns any file in a `/logs` directory such as
# `/build/logs`, `/scripts/logs`, and `/deeply/nested/logs`. Any changes
# in a `/logs` directory will require approval from @octocat.
# **/logs @octocat
# In this example, @octocat owns any file in the `/apps`
# directory in the root of your repository except for the `/apps/github`
# subdirectory, as its owners are left empty.
# /apps/ @octocat
# /apps/github
# Chris rules EVERYTHING (including paths listed below)
* @ChrisTitusTech

View File

@@ -4,11 +4,11 @@
- [ ] New feature
- [ ] Bug fix
- [ ] Documentation update
- [ ] Refactoring
- [ ] Hotfix
- [ ] Security patch
- [ ] UI/UX improvement
<!-- This automatically adds labels to your PR based on the selections above. -->
## 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.]-->
@@ -18,7 +18,5 @@
## 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.
- [ ] I have made corresponding changes to the documentation.

View File

@@ -4,15 +4,16 @@ categories:
labels:
- 'feature'
- 'enhancement'
- 'new feature'
- title: '🐛 Bug Fixes'
labels:
- 'fix'
- 'hotfix'
- 'bugfix'
- 'bug'
- title: '📚 Documentation'
label: 'documentation'
- title: '🔒 Security'
label: 'security'
- title: '🎨 UI/UX Improvements'
label: 'ui update'
change-template: '- $TITLE @$AUTHOR (#$NUMBER)'
template: |
## Changes
@@ -31,7 +32,7 @@ autolabeler:
- '/fix\/.+/'
title:
- '/fix/i'
- label: 'enhancement'
- label: 'new feature'
branch:
- '/feature\/.+/'
body:
@@ -40,9 +41,6 @@ autolabeler:
files:
- '**/*.md'
- 'docs/**/*'
- label: 'security'
branch:
- '/security\/.+/'
replacers:
- search: /"/g
replace: ''

View File

@@ -67,7 +67,7 @@ jobs:
id: check_user
if: env.command == 'true'
run: |
ALLOWED_USERS=("ChrisTitusTech" "og-mrk" "Marterich" "MyDrift-user" "Real-MullaC" "CodingWonders")
ALLOWED_USERS=("ChrisTitusTech" "og-mrk" "Marterich" "MyDrift-user" "Real-MullaC" "CodingWonders" "GabiNun")
if [[ " ${ALLOWED_USERS[@]} " =~ " ${{ github.event.comment.user.login }} " ]]; then
echo "user=true" >> $GITHUB_ENV
else

45
.github/workflows/label-pr.yaml vendored Normal file
View File

@@ -0,0 +1,45 @@
name: Label PRs by Type of Change
on:
pull_request_target:
types: [opened, edited, synchronize]
jobs:
label-pr:
runs-on: ubuntu-latest
permissions:
pull-requests: write
issues: write
contents: read # Often needed for github-script
steps:
- name: Check PR body for Type of Change
uses: actions/github-script@v7
with:
script: |
const prBody = context.payload.pull_request.body || '';
const labelsToAdd = [];
if (/\[x\]\s*New feature/i.test(prBody)) {
labelsToAdd.push('new feature');
}
if (/\[x\]\s*Bug fix/i.test(prBody)) {
labelsToAdd.push('bug');
}
if (/\[x\]\s*Documentation update/i.test(prBody)) {
labelsToAdd.push('documentation');
}
if (/\[x\]\s*Hotfix/i.test(prBody)) {
labelsToAdd.push('hotfix');
}
if (/\[x\]\s*UI\/UX improvement/i.test(prBody)) {
labelsToAdd.push('ui update');
}
if (labelsToAdd.length > 0) {
await github.rest.issues.addLabels({
owner: context.repo.owner,
repo: context.repo.repo,
issue_number: context.payload.pull_request.number,
labels: labelsToAdd
});
}

View File

@@ -56,7 +56,7 @@ jobs:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
config-name: release-drafter.yml
version: ${{ env.VERSION }} # Pass the version variable
version: ${{ env.VERSION }}
- name: Create and Upload Release
id: create_release

View File

@@ -36,15 +36,6 @@ function Update-Progress {
Write-Progress -Activity $Activity -Status $StatusMessage -PercentComplete $Percent
}
$header = @"
################################################################################################################
### ###
### WARNING: This file is automatically generated DO NOT modify this file directly as it will be overwritten ###
### ###
################################################################################################################
"@
Update-Progress "Pre-req: Running Preprocessor..." 0
# Dot source the 'Invoke-Preprocessing' Function from 'tools/Invoke-Preprocessing.ps1' Script
@@ -76,9 +67,6 @@ Invoke-Preprocessing -WorkingDir "$workingdir" -ExcludedFiles $excludedFiles -Pr
Update-Progress "Pre-req: Allocating Memory" 0
$script_content = [System.Collections.Generic.List[string]]::new()
Update-Progress "Adding: Header" 5
$script_content.Add($header)
Update-Progress "Adding: Version" 10
$script_content.Add($(Get-Content "scripts\start.ps1").replace('#{replaceme}',"$(Get-Date -Format yy.MM.dd)"))

View File

@@ -76,7 +76,7 @@ You'll see a new file named `winutil.ps1`, which's created by `Compile.ps1` scri
These are the sponsors that help keep this project alive with monthly contributions.
<!-- sponsors --><a href="https://github.com/markamos"><img src="https:&#x2F;&#x2F;github.com&#x2F;markamos.png" width="60px" alt="User avatar: Mark Amos" /></a><a href="https://github.com/dwelfusius"><img src="https:&#x2F;&#x2F;github.com&#x2F;dwelfusius.png" width="60px" alt="User avatar: " /></a><a href="https://github.com/mews-se"><img src="https:&#x2F;&#x2F;github.com&#x2F;mews-se.png" width="60px" alt="User avatar: Martin Stockzell" /></a><a href="https://github.com/jdiegmueller"><img src="https:&#x2F;&#x2F;github.com&#x2F;jdiegmueller.png" width="60px" alt="User avatar: Jason A. Diegmueller" /></a><a href="https://github.com/robertsandrock"><img src="https:&#x2F;&#x2F;github.com&#x2F;robertsandrock.png" width="60px" alt="User avatar: RMS" /></a><a href="https://github.com/KenichiQaz"><img src="https:&#x2F;&#x2F;github.com&#x2F;KenichiQaz.png" width="60px" alt="User avatar: Stefan" /></a><a href="https://github.com/paulsheets"><img src="https:&#x2F;&#x2F;github.com&#x2F;paulsheets.png" width="60px" alt="User avatar: Paul" /></a><a href="https://github.com/djones369"><img src="https:&#x2F;&#x2F;github.com&#x2F;djones369.png" width="60px" alt="User avatar: Dave J (WhamGeek)" /></a><a href="https://github.com/anthonymendez"><img src="https:&#x2F;&#x2F;github.com&#x2F;anthonymendez.png" width="60px" alt="User avatar: Anthony Mendez" /></a><a href="https://github.com/FatBastard0"><img src="https:&#x2F;&#x2F;github.com&#x2F;FatBastard0.png" width="60px" alt="User avatar: " /></a><a href="https://github.com/DursleyGuy"><img src="https:&#x2F;&#x2F;github.com&#x2F;DursleyGuy.png" width="60px" alt="User avatar: DursleyGuy" /></a><a href="https://github.com/quaszi"><img src="https:&#x2F;&#x2F;github.com&#x2F;quaszi.png" width="60px" alt="User avatar: " /></a><a href="https://github.com/DwayneTheRockLobster1"><img src="https:&#x2F;&#x2F;github.com&#x2F;DwayneTheRockLobster1.png" width="60px" alt="User avatar: " /></a><a href="https://github.com/KieraKujisawa"><img src="https:&#x2F;&#x2F;github.com&#x2F;KieraKujisawa.png" width="60px" alt="User avatar: Kiera Meredith" /></a><a href="https://github.com/TaNorbs"><img src="https:&#x2F;&#x2F;github.com&#x2F;TaNorbs.png" width="60px" alt="User avatar: Norbs" /></a><a href="https://github.com/andrewpayne68"><img src="https:&#x2F;&#x2F;github.com&#x2F;andrewpayne68.png" width="60px" alt="User avatar: Andrew P" /></a><!-- sponsors -->
<!-- sponsors --><a href="https://github.com/markamos"><img src="https:&#x2F;&#x2F;github.com&#x2F;markamos.png" width="60px" alt="User avatar: Mark Amos" /></a><a href="https://github.com/dwelfusius"><img src="https:&#x2F;&#x2F;github.com&#x2F;dwelfusius.png" width="60px" alt="User avatar: " /></a><a href="https://github.com/mews-se"><img src="https:&#x2F;&#x2F;github.com&#x2F;mews-se.png" width="60px" alt="User avatar: Martin Stockzell" /></a><a href="https://github.com/jdiegmueller"><img src="https:&#x2F;&#x2F;github.com&#x2F;jdiegmueller.png" width="60px" alt="User avatar: Jason A. Diegmueller" /></a><a href="https://github.com/robertsandrock"><img src="https:&#x2F;&#x2F;github.com&#x2F;robertsandrock.png" width="60px" alt="User avatar: RMS" /></a><a href="https://github.com/KenichiQaz"><img src="https:&#x2F;&#x2F;github.com&#x2F;KenichiQaz.png" width="60px" alt="User avatar: Stefan" /></a><a href="https://github.com/paulsheets"><img src="https:&#x2F;&#x2F;github.com&#x2F;paulsheets.png" width="60px" alt="User avatar: Paul" /></a><a href="https://github.com/djones369"><img src="https:&#x2F;&#x2F;github.com&#x2F;djones369.png" width="60px" alt="User avatar: Dave J (WhamGeek)" /></a><a href="https://github.com/anthonymendez"><img src="https:&#x2F;&#x2F;github.com&#x2F;anthonymendez.png" width="60px" alt="User avatar: Anthony Mendez" /></a><a href="https://github.com/FatBastard0"><img src="https:&#x2F;&#x2F;github.com&#x2F;FatBastard0.png" width="60px" alt="User avatar: " /></a><a href="https://github.com/DursleyGuy"><img src="https:&#x2F;&#x2F;github.com&#x2F;DursleyGuy.png" width="60px" alt="User avatar: DursleyGuy" /></a><a href="https://github.com/quaszi"><img src="https:&#x2F;&#x2F;github.com&#x2F;quaszi.png" width="60px" alt="User avatar: " /></a><a href="https://github.com/DwayneTheRockLobster1"><img src="https:&#x2F;&#x2F;github.com&#x2F;DwayneTheRockLobster1.png" width="60px" alt="User avatar: " /></a><a href="https://github.com/KieraKujisawa"><img src="https:&#x2F;&#x2F;github.com&#x2F;KieraKujisawa.png" width="60px" alt="User avatar: Kiera Meredith" /></a><a href="https://github.com/andrewpayne68"><img src="https:&#x2F;&#x2F;github.com&#x2F;andrewpayne68.png" width="60px" alt="User avatar: Andrew P" /></a><!-- sponsors -->
## 🏅 Thanks to all Contributors
Thanks a lot for spending your time helping Winutil grow. Thanks a lot! Keep rocking 🍻.

View File

@@ -552,6 +552,14 @@
"link": "https://espanso.org/",
"winget": "Espanso.Espanso"
},
"ffmpeg": {
"category": "Utilities",
"choco": "na",
"content": "eibol.FFmpegBatchAVConverter",
"description": "FFmpeg Batch AV Converter is a universal audio and video encoder, that allows to use the full potential of ffmpeg command line with a few mouse clicks in a convenient GUI with drag and drop, progress information.",
"link": "https://ffmpeg-batch.sourceforge.io/",
"winget": "eibol.FFmpegBatchAVConverter"
},
"falkon": {
"category": "Browsers",
"choco": "falkon",
@@ -912,6 +920,14 @@
"link": "https://www.cpuid.com/softwares/hwmonitor.html",
"winget": "CPUID.HWMonitor"
},
"imhex": {
"category": "Development",
"choco": "na",
"content": "ImHex (Hex Editor)",
"description": "A modern, featureful Hex Editor for Reverse Engineers and Developers.",
"link": "https://imhex.werwolv.net/",
"winget": "WerWolv.ImHex"
},
"imageglass": {
"category": "Multimedia Tools",
"choco": "imageglass",

View File

@@ -1140,6 +1140,13 @@
"Type": "DWord",
"Value": "0",
"OriginalValue": "<RemoveEntry>"
},
{
"Path": "HKLM:\\SOFTWARE\\Policies\\BraveSoftware\\Brave",
"Name": "BraveStatsPingEnabled",
"Type": "DWord",
"Value": "0",
"OriginalValue": "<RemoveEntry>"
}
]
},
@@ -1164,6 +1171,13 @@
"Value": "0",
"OriginalValue": "<RemoveEntry>"
},
{
"Path": "HKLM:\\SOFTWARE\\Policies\\Microsoft\\Edge",
"Name": "ofefcgjbeghpigppfmkologfjadafddi",
"Type": "String",
"Value": "1",
"OriginalValue": "<RemoveEntry>"
},
{
"Path": "HKLM:\\SOFTWARE\\Policies\\Microsoft\\Edge",
"Name": "ShowRecommendationsEnabled",
@@ -1584,71 +1598,26 @@
"
# Disable Defender Auto Sample Submission
Set-MpPreference -SubmitSamplesConsent 2
$Memory = (Get-CimInstance Win32_PhysicalMemory | Measure-Object Capacity -Sum).Sum / 1KB
Set-ItemProperty -Path \"HKLM:\\SYSTEM\\CurrentControlSet\\Control\" -Name SvcHostSplitThresholdInKB -Value $Memory
"
],
"link": "https://winutil.christitus.com/dev/tweaks/essential-tweaks/tele"
},
"WPFTweaksDisableEdge": {
"Content": "Disable Edge",
"Description": "Prevent msedge.exe from running with explorer policies.",
"WPFTweaksRemoveEdge": {
"Content": "Remove Microsoft Edge",
"Description": "Unblocks Microsoft Edge uninstaller restrictions than uses that uninstaller to remove Microsoft Edge",
"category": "z__Advanced Tweaks - CAUTION",
"panel": "1",
"Order": "a023_",
"registry": [
{
"Path": "HKCU:\\Software\\Microsoft\\Windows\\CurrentVersion\\Policies\\Explorer\\DisallowRun",
"Name": "DisableEdge",
"Type": "String",
"Value": "msedge.exe",
"OriginalValue": "<RemoveEntry>"
},
{
"Path": "HKLM:\\Software\\Microsoft\\Windows\\CurrentVersion\\Policies\\Explorer",
"Name": "DisallowRun",
"Type": "DWord",
"Value": "1",
"OriginalValue": "<RemoveEntry>"
}
],
"link": ""
},
"WPFTweaksMakeEdgeUninstallable": {
"Content": "Make Edge Uninstallable via settings",
"Description": "Makes it so you can uninstall edge via settings > installed apps",
"category": "z__Advanced Tweaks - CAUTION",
"panel": "1",
"Order": "a026_",
"registry": [
{
"Path": "HKLM:\\SOFTWARE\\WOW6432Node\\Microsoft\\Windows\\CurrentVersion\\Uninstall\\Microsoft Edge",
"Name": "NoRemove",
"Type": "Dword",
"Value": "0",
"OriginalValue": "1"
}
],
"Order": "a028_",
"InvokeScript": [
"
$File = \"C:\\Windows\\System32\\IntegratedServicesRegionPolicySet.json\"
takeown /f $File
icacls $File /grant \"Administrators:(F)\"
$FileContent = Get-Content $File
$FileContent[7] = $FileContent[7] -replace \"disabled\", \"enabled\"
Set-Content $File $FileContent
"
"Invoke-WinUtilRemoveEdge"
],
"UndoScript": [
"
$File = \"C:\\Windows\\System32\\IntegratedServicesRegionPolicySet.json\"
takeown /f $File
icacls $File /grant \"Administrators:(F)\"
$FileContent = Get-Content $File
$FileContent[7] = $FileContent[7] -replace \"enabled\", \"disabled\"
Set-Content $File $FileContent
Write-Host 'Installing Microsoft Edge...'
winget install Microsoft.Edge --source winget
"
],
"link": ""
@@ -1663,13 +1632,45 @@
{
"Path": "HKLM:\\SYSTEM\\CurrentControlSet\\Control\\TimeZoneInformation",
"Name": "RealTimeIsUniversal",
"Type": "DWord",
"Type": "QWord",
"Value": "1",
"OriginalValue": "0"
}
],
"link": "https://winutil.christitus.com/dev/tweaks/z--advanced-tweaks---caution/utc"
},
"WPFTweaksRemoveOneDrive": {
"Content": "Remove OneDrive",
"Description": "Denys permission to remove onedrive user files than uses its own uninstaller to remove it than brings back permissions",
"category": "z__Advanced Tweaks - CAUTION",
"panel": "1",
"Order": "a029_",
"InvokeScript": [
"
# Deny permission to remove OneDrive folder
icacls $Env:OneDrive /deny \"Administrators:(D,DC)\"
Write-Host \"Uninstalling OneDrive...\"
Start-Process 'C:\\Windows\\System32\\OneDriveSetup.exe' -ArgumentList '/uninstall' -Wait
# Some of OneDrive files use explorer, and OneDrive uses FileCoAuth
Write-Host \"Removing leftover OneDrive Files...\"
Stop-Process -Name FileCoAuth,Explorer
Remove-Item \"$Env:LocalAppData\\Microsoft\\OneDrive\" -Recurse -Force
Remove-Item \"C:\\ProgramData\\Microsoft OneDrive\" -Recurse -Force
# Grant back permission to accses OneDrive folder
icacls $Env:OneDrive /grant \"Administrators:(D,DC)\"
"
],
"UndoScript": [
"
Write-Host \"Installing OneDrive\"
winget install Microsoft.Onedrive --source winget
"
],
"link": "https://winutil.christitus.com/dev/tweaks/z--advanced-tweaks---caution/removeonedrive"
},
"WPFTweaksRemoveHome": {
"Content": "Remove Home from Explorer",
"Description": "Removes the Home from Explorer and sets This PC as default",
@@ -2041,10 +2042,10 @@
Write-Host \"Remove Copilot\"
Get-AppxPackage -AllUsers *Copilot* | Remove-AppxPackage -AllUsers
Get-AppxPackage -AllUsers Microsoft.MicrosoftOfficeHub | Remove-AppxPackage -AllUsers
$Appx = (Get-AppxPackage MicrosoftWindows.Client.CoreAI).PackageFullName
$Sid = (Get-LocalUser $Env:UserName).Sid.Value
New-Item \"HKLM:\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Appx\\AppxAllUserStore\\EndOfLife\\$Sid\\$Appx\" -Force
Remove-AppxPackage $Appx
"
@@ -2153,7 +2154,7 @@
Copy-Item $hosts \"$hosts.bak\"
Invoke-WebRequest $hostsUrl -OutFile $hosts
ipconfig flushdns
ipconfig /flushdns
Write-Host \"Added Adobe url block list from host file\"
"
@@ -2165,7 +2166,7 @@
Copy-Item $backup $hosts
Remove-Item $backup
ipconfig flushdns
ipconfig /flushdns
Write-Host \"Removed Adobe url block list from host file\"
"
@@ -2226,7 +2227,7 @@
"WPFTweaksDVR": {
"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",
"category": "z__Advanced Tweaks - CAUTION",
"panel": "1",
"Order": "a005_",
"registry": [
@@ -2536,83 +2537,6 @@
}
]
},
"WPFToggleSnapWindow": {
"Content": "Snap Window",
"Description": "If enabled you can align windows by dragging them. | Relogin Required",
"category": "Customize Preferences",
"panel": "2",
"Order": "a106_",
"Type": "Toggle",
"registry": [
{
"Path": "HKCU:\\Control Panel\\Desktop",
"Name": "WindowArrangementActive",
"Value": "1",
"OriginalValue": "0",
"DefaultState": "true",
"Type": "String"
}
],
"link": "https://winutil.christitus.com/dev/tweaks/customize-preferences/snapwindow"
},
"WPFToggleSnapFlyout": {
"Content": "Snap Assist Flyout",
"Description": "If disabled then Snap preview is disabled when maximize button is hovered.",
"category": "Customize Preferences",
"panel": "2",
"Order": "a107_",
"Type": "Toggle",
"registry": [
{
"Path": "HKCU:\\Software\\Microsoft\\Windows\\CurrentVersion\\Explorer\\Advanced",
"Name": "EnableSnapAssistFlyout",
"Value": "1",
"OriginalValue": "0",
"DefaultState": "true",
"Type": "DWord"
}
],
"InvokeScript": [
"
Invoke-WinUtilExplorerUpdate -action \"restart\"
"
],
"UndoScript": [
"
Invoke-WinUtilExplorerUpdate -action \"restart\"
"
],
"link": "https://winutil.christitus.com/dev/tweaks/customize-preferences/snapflyout"
},
"WPFToggleSnapSuggestion": {
"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": "a108_",
"Type": "Toggle",
"registry": [
{
"Path": "HKCU:\\Software\\Microsoft\\Windows\\CurrentVersion\\Explorer\\Advanced",
"Name": "SnapAssist",
"Value": "1",
"OriginalValue": "0",
"DefaultState": "true",
"Type": "DWord"
}
],
"InvokeScript": [
"
Invoke-WinUtilExplorerUpdate -action \"restart\"
"
],
"UndoScript": [
"
Invoke-WinUtilExplorerUpdate -action \"restart\"
"
],
"link": "https://winutil.christitus.com/dev/tweaks/customize-preferences/snapsuggestion"
},
"WPFToggleMouseAcceleration": {
"Content": "Mouse Acceleration",
"Description": "If Enabled then Cursor movement is affected by the speed of your physical mouse movements.",

View File

@@ -45,6 +45,7 @@ weight: 3
- [Remove Home and Gallery from explorer](tweaks/z--advanced-tweaks---caution/removehomegallery/)
- [Make Edge Uninstallable](tweaks/z--advanced-tweaks---caution/edgeuninstall/)
- [Run OO Shutup 10](tweaks/z--advanced-tweaks---caution/oosubutton/)
- [Remove OneDrive](tweaks/z--advanced-tweaks---caution//removeonedrive)
- [Set Classic Right-Click Menu ](tweaks/z--advanced-tweaks---caution/rightclickmenu/)
- [Set Display for Performance](tweaks/z--advanced-tweaks---caution/display/)
- [Set Time to UTC (Dual Boot)](tweaks/z--advanced-tweaks---caution/utc/)
@@ -76,7 +77,7 @@ weight: 3
### Fixes
- [Remove Adobe Creative Cloud](features/fixes/runadobecccl cleanertool/)
- [Remove Adobe Creative Cloud](features/fixes/RunAdobeCCCleanerTool/)
- [Reset Network](features/fixes/network/)
- [Reset Windows Update](features/fixes/update/)
- [Set Up Autologin](features/fixes/autologin/)

View File

@@ -960,3 +960,46 @@
}
],
```
#Function
```powershell
Function Set-WinUtilService {
<#
.SYNOPSIS
Changes the startup type of the given service
.PARAMETER Name
The name of the service to modify
.PARAMETER StartupType
The startup type to set the service to
.EXAMPLE
Set-WinUtilService -Name "HomeGroupListener" -StartupType "Manual"
#>
param (
$Name,
$StartupType
)
try {
Write-Host "Setting Service $Name to $StartupType"
# Check if the service exists
$service = Get-Service -Name $Name -ErrorAction Stop
# Service exists, proceed with changing properties -- while handling auto delayed start for PWSH 5
if (($PSVersionTable.PSVersion.Major -lt 7) -and ($StartupType -eq "AutomaticDelayedStart")) {
sc.exe config $Name start=delayed-auto
} else {
$service | Set-Service -StartupType $StartupType -ErrorAction Stop
}
} catch [System.ServiceProcess.ServiceNotFoundException] {
Write-Warning "Service $Name was not found"
} catch {
Write-Warning "Unable to set $Name due to unhandled exception"
Write-Warning $_.Exception.Message
}
}
```

View File

@@ -29,6 +29,7 @@
- [Remove Gallery from explorer](https://github.com/ChrisTitusTech/winutil/blob/main/docs/content/dev/tweaks/z--Advanced-Tweaks---CAUTION/RemoveGallery.md)
- [Remove Home from explorer](https://github.com/ChrisTitusTech/winutil/blob/main/docs/content/dev/tweaks/z--Advanced-Tweaks---CAUTION/RemoveHome.md)
- [Run OO Shutup 10](https://github.com/ChrisTitusTech/winutil/blob/main/docs/content/dev/tweaks/z--Advanced-Tweaks---CAUTION/OOSUbutton.md)
- [Remove OneDrive](https://github.com/ChrisTitusTech/winutil/blob/main/docs/content/dev/tweaks/z--Advanced-Tweaks---CAUTION/RemoveOneDrive.md)
- [Set Classic Right-Click Menu](https://github.com/ChrisTitusTech/winutil/blob/main/docs/content/dev/tweaks/z--Advanced-Tweaks---CAUTION/RightClickMenu.md)
- [Set Display for Performance](https://github.com/ChrisTitusTech/winutil/blob/main/docs/content/dev/tweaks/z--Advanced-Tweaks---CAUTION/Display.md)
- [Set Time to UTC (Dual Boot)](https://github.com/ChrisTitusTech/winutil/blob/main/docs/content/dev/tweaks/z--Advanced-Tweaks---CAUTION/UTC.md)

View File

@@ -1,48 +0,0 @@
# Remove Microsoft Edge
```json
"WPFTweaksMakeEdgeUninstallable": {
"Content": "Make Edge Uninstallable via settings",
"Description": "Makes it so you can uninstall edge via settings > installed apps",
"category": "z__Advanced Tweaks - CAUTION",
"panel": "1",
"Order": "a026_",
"registry": [
{
"Path": "HKLM:\\SOFTWARE\\WOW6432Node\\Microsoft\\Windows\\CurrentVersion\\Uninstall\\Microsoft Edge",
"Name": "NoRemove",
"Type": "Dword",
"Value": "0",
"OriginalValue": "1"
}
],
"InvokeScript": [
"
$File = \"C:\\Windows\\System32\\IntegratedServicesRegionPolicySet.json\"
takeown /f $File
icacls $File /grant \"Administrators:(F)\"
$FileContent = Get-Content $File
$FileContent[7] = $FileContent[7] -replace \"disabled\", \"enabled\"
Set-Content $File $FileContent
"
],
"UndoScript": [
"
$File = \"C:\\Windows\\System32\\IntegratedServicesRegionPolicySet.json\"
takeown /f $File
icacls $File /grant \"Administrators:(F)\"
$FileContent = Get-Content $File
$FileContent[7] = $FileContent[7] -replace \"enabled\", \"disabled\"
Set-Content $File $FileContent
"
],
```
## 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).

View File

@@ -0,0 +1,30 @@
# Remove Microsoft Edge
# Json File
```json
"WPFTweaksRemoveEdge": {
"Content": "Remove Microsoft Edge",
"Description": "Unblocks Microsoft Edge uninstaller restrictions than uses that uninstaller to remove Microsoft Edge",
"category": "z__Advanced Tweaks - CAUTION",
"panel": "1",
"Order": "a028_",
"InvokeScript": [
"Invoke-WinUtilRemoveEdge"
],
"UndoScript": [
"
Write-Host 'Installing Microsoft Edge...'
winget install Microsoft.Edge --source winget
"
],
```
# Function
```json
function Invoke-WinUtilRemoveEdge {
Write-Host "Unlocking The Offical Edge Uninstaller And Removing Microsoft Edge..."
$Path = (Get-ChildItem "C:\Program Files (x86)\Microsoft\Edge\Application\*\Installer\setup.exe")[0].FullName
New-Item "C:\Windows\SystemApps\Microsoft.MicrosoftEdge_8wekyb3d8bbwe\MicrosoftEdge.exe" -Force
Start-Process $Path -ArgumentList '--uninstall --system-level --force-uninstall --delete-profile'
}
```

View File

@@ -0,0 +1,33 @@
# Remove OneDrive
```json
"WPFTweaksRemoveOneDrive": {
"Content": "Remove OneDrive",
"Description": "Denys permission to remove onedrive user files than uses its own uninstaller to remove it than brings back permissions",
"category": "z__Advanced Tweaks - CAUTION",
"panel": "1",
"Order": "a029_",
"InvokeScript": [
"
# Deny permission to remove OneDrive folder
icacls $Env:OneDrive /deny \"Administrators:(D,DC)\"
Write-Host \"Uninstalling OneDrive...\"
Start-Process 'C:\\Windows\\System32\\OneDriveSetup.exe' -ArgumentList '/uninstall' -Wait
# Some of OneDrive files use explorer, and OneDrive uses FileCoAuth
Write-Host \"Removing leftover OneDrive Files...\"
Stop-Process -Name FileCoAuth,Explorer
Remove-Item \"$Env:LocalAppData\\Microsoft\\OneDrive\" -Recurse -Force
Remove-Item \"C:\\ProgramData\\Microsoft OneDrive\" -Recurse -Force
# Grant back permission to accses OneDrive folder
icacls $Env:OneDrive /grant \"Administrators:(D,DC)\"
"
],
"UndoScript": [
"
Write-Host \"Installing OneDrive\"
winget install Microsoft.Onedrive --source winget
"
],
```

View File

@@ -11,6 +11,7 @@
- [Remove Home from explorer](https://github.com/ChrisTitusTech/winutil/blob/main/docs/content/dev/tweaks/z--Advanced-Tweaks---CAUTION/RemoveHome.md)
- [Make Edge Uninstallable](https://github.com/ChrisTitusTech/winutil/blob/main/docs/content/dev/tweaks/z--Advanced-Tweaks---CAUTION/EdgeUninstall.md)
- [Run OO Shutup 10](https://github.com/ChrisTitusTech/winutil/blob/main/docs/content/dev/tweaks/z--Advanced-Tweaks---CAUTION/OOSUbutton.md)
- [Remove OneDrive](https://github.com/ChrisTitusTech/winutil/blob/main/docs/content/dev/tweaks/z--Advanced-Tweaks---CAUTION/RemoveOneDrive.md)
- [Set Classic Right-Click Menu](https://github.com/ChrisTitusTech/winutil/blob/main/docs/content/dev/tweaks/z--Advanced-Tweaks---CAUTION/RightClickMenu.md)
- [Set Display for Performance](https://github.com/ChrisTitusTech/winutil/blob/main/docs/content/dev/tweaks/z--Advanced-Tweaks---CAUTION/Display.md)
- [Set Time to UTC (Dual Boot)](https://github.com/ChrisTitusTech/winutil/blob/main/docs/content/dev/tweaks/z--Advanced-Tweaks---CAUTION/UTC.md)

View File

@@ -8,7 +8,7 @@ The utility provides three distinct settings for managing Windows updates: Defau
### Security (Recommended) Settings
- **Description**: This is the recommended setting for all computers.
- **Update Schedule**:
- **Feature Updates**: Delays feature updates by 2 years to avoid potential bugs and instability.
- **Feature Updates**: Delays feature updates by 365 days to avoid potential bugs and instability.
- **Security Updates**: Installs security updates 4 days after their release to ensure system protection against pressing security flaws.
- **Rationale**:
- **Feature Updates**: Often introduce new features and bugs; delaying these updates minimizes the risk of system disruptions.

View File

@@ -66,6 +66,11 @@ function Microwin-NewFirstRun {
}
if ((Get-BitLockerVolume -MountPoint $Env:SystemDrive).ProtectionStatus -eq 'On') {
Write-Host "Disabling BitLocker..."
Disable-BitLocker -MountPoint $Env:SystemDrive
}
# Get BCD entries and set bootmgr timeout accordingly
try
{

View File

@@ -39,9 +39,9 @@ Function Install-WinUtilProgramWinget {
$commonArguments = "--id $wingetId --silent"
$arguments = if ($Action -eq "Install") {
"install $commonArguments --accept-source-agreements --accept-package-agreements"
"install $commonArguments --accept-source-agreements --accept-package-agreements --source winget"
} else {
"uninstall $commonArguments"
"uninstall $commonArguments --source winget"
}
$processParams = @{

View File

@@ -0,0 +1,7 @@
function Invoke-WinUtilRemoveEdge {
Write-Host "Unlocking The Offical Edge Uninstaller And Removing Microsoft Edge..."
$Path = (Get-ChildItem "C:\Program Files (x86)\Microsoft\Edge\Application\*\Installer\setup.exe")[0].FullName
New-Item "C:\Windows\SystemApps\Microsoft.MicrosoftEdge_8wekyb3d8bbwe\MicrosoftEdge.exe" -Force
Start-Process $Path -ArgumentList '--uninstall --system-level --force-uninstall --delete-profile'
}

View File

@@ -1289,7 +1289,7 @@
Foreground="{DynamicResource MainForegroundColor}">
<Run FontWeight="Bold">Balanced Security Configuration</Run>
<LineBreak/>
- Feature updates delayed by 2 years
- Feature updates delayed by 365 days
<LineBreak/>
- Security updates installed after 4 days
<LineBreak/><LineBreak/>
@@ -1534,28 +1534,14 @@
<LineBreak/>
<Bold>INSTRUCTIONS</Bold> <LineBreak/>
- Download a Windows 11 ISO through the following options: <LineBreak/>
<TextBlock Margin="15,0,0,0" Text="- Select your own ISO: Manually download the latest Windows 11 image from " Foreground="{DynamicResource ComboBoxForegroundColor}"/>
<TextBlock Name="Win11DownloadLink" Style="{StaticResource HoverTextBlockStyle}" ToolTip="https://www.microsoft.com/software-download/windows11">Microsoft</TextBlock>. <LineBreak/>
<TextBlock Margin="15,0,0,0" Text="- Get newest ISO automatically: Choose Windows 11 Edition and preferred language." Foreground="{DynamicResource ComboBoxForegroundColor}"/> <LineBreak/>
May take several minutes to process the ISO depending on your machine and connection <LineBreak/>
- Put it somewhere on the C:\ drive so it is easily accessible <LineBreak/>
- Launch WinUtil and MicroWin <LineBreak/>
- Click on the "Get Windows ISO" button and wait for WinUtil to process the image <LineBreak/>
It will be processed and unpacked which may take some time <LineBreak/>
- Once complete, choose which Windows flavor you want to base your image on <LineBreak/>
- Click the "Start Process" button <LineBreak/>
The process of creating the Windows image may take some time, please check the console and wait for it to say "Done" <LineBreak/>
- Once complete, the target ISO file will be in the directory you have specified <LineBreak/>
- Copy this image to your Ventoy USB Stick, boot to this image, gg
<LineBreak/>
If you are injecting drivers ensure you put all your inf, sys, and dll files for each driver into a separate directory <LineBreak/><LineBreak/>
<Bold>Installing VirtIO drivers</Bold><LineBreak/>
If you plan on using your ISO on QEMU/Proxmox VE, you can bundle VirtIO drivers with your ISO to automatically install drivers. Simply tick the "Include VirtIO drivers" checkbox before starting the process. Then, follow these instructions:<LineBreak/><LineBreak/>
<TextBlock TextWrapping="WrapWithOverflow" Margin="15,0,0,0" Text="1. Proceed with Setup until you reach the disk selection screen, in which you won't see any drives" Foreground="{DynamicResource ComboBoxForegroundColor}"/><LineBreak/>
<TextBlock TextWrapping="WrapWithOverflow" Margin="15,0,0,0" Text="2. Click &quot;Load Driver&quot; and click Browse" Foreground="{DynamicResource ComboBoxForegroundColor}"/><LineBreak/>
<TextBlock TextWrapping="WrapWithOverflow" Margin="15,0,0,0" Text="3. In the folder selection dialog, point to this path: &quot;D:\VirtIO\vioscsi\w11\amd64&quot; (replace amd64 with ARM64 if you are using Windows on ARM, and &quot;D:&quot; with the drive letter of the ISO)" Foreground="{DynamicResource ComboBoxForegroundColor}"/><LineBreak/>
<TextBlock TextWrapping="WrapWithOverflow" Margin="15,0,0,0" Text="4. Select all drivers that will appear in the list box and click OK" Foreground="{DynamicResource ComboBoxForegroundColor}"/><LineBreak/>
1. Download Windows 11 ISO from <TextBlock Name="Win11DownloadLink" Style="{StaticResource HoverTextBlockStyle}" ToolTip="https://www.microsoft.com/software-download/windows11">Microsoft</TextBlock> directly, or use the "Get newest ISO" option and select your preferred language.<LineBreak/>
2. Click "Get Windows ISO" then select your Windows ISO (may take several minutes depending on your machine and connection)<LineBreak/>
3. Select Windows flavor > Click "Start Process" (may take time, check the console and wait for the "Done" message to appear)<LineBreak/>
4. Finally, write the ISO to a USB drive using your preferred method and boot.<LineBreak/><LineBreak/>
<Bold>Driver Injection:</Bold> <LineBreak/>
Organize drivers in separate folders with .inf, .sys, and .dll files for each device <LineBreak/><LineBreak/>
<Bold>VirtIO Drivers (QEMU/Proxmox):</Bold><LineBreak/>
Check "Include VirtIO drivers" before starting. During setup, select Load Driver > Browse to D:\VirtIO\vioscsi\w11\amd64 (use ARM64 for Windows on ARM) > Select all drivers and click OK<LineBreak/>
</TextBlock>
<TextBlock Margin="15,0,15,15"
Padding = "1"