diff --git a/.gitattributes b/.gitattributes
index c7ddb762..da0b45d5 100644
--- a/.gitattributes
+++ b/.gitattributes
@@ -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
\ No newline at end of file
+*.json diff
diff --git a/Compile.ps1 b/Compile.ps1
index e0f4c6d4..84217b37 100644
--- a/Compile.ps1
+++ b/Compile.ps1
@@ -49,11 +49,11 @@ Get-ChildItem .\config | Where-Object {$psitem.extension -eq ".json"} | ForEach-
# Note: Avoid using HTML Entity Codes (for example '”' (stands for "Right Double Quotation Mark")), and use HTML decimal/hex codes instead.
# as using HTML Entity Codes will result in XML parse Error when running the compiled script.
if ($jsonAsObject.$firstLevelName.content -ne $null) {
- $jsonAsObject.$firstLevelName.content = $jsonAsObject.$firstLevelName.content.replace('&','&').replace('“','“').replace('”','”').replace("'",''').replace('<','<').replace('>','>')
+ $jsonAsObject.$firstLevelName.content = $jsonAsObject.$firstLevelName.content.replace('&','&').replace('“','“').replace('”','”').replace("'",''').replace('<','<').replace('>','>').replace('—','—')
$jsonAsObject.$firstLevelName.content = $jsonAsObject.$firstLevelName.content.replace('''',"'") # 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('&','&').replace('“','“').replace('”','”').replace("'",''').replace('<','<').replace('>','>')
+ $jsonAsObject.$firstLevelName.description = $jsonAsObject.$firstLevelName.description.replace('&','&').replace('“','“').replace('”','”').replace("'",''').replace('<','<').replace('>','>').replace('—','—')
$jsonAsObject.$firstLevelName.description = $jsonAsObject.$firstLevelName.description.replace('''',"'") # resolves the Double Apostrophe caused by the first replace function in the main loop
}
}
@@ -110,4 +110,4 @@ if ($run){
Start-Process -FilePath "powershell" -ArgumentList ".\$scriptname"
}
-}
\ No newline at end of file
+}
diff --git a/README.md b/README.md
index 44a7fe41..d384c793 100644
--- a/README.md
+++ b/README.md
@@ -1,6 +1,8 @@
# 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=7a39fb)](https://github.com/ChrisTitusTech/winutil/releases/latest)
+
+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.
![screen-install](screen-install.png)
@@ -39,7 +41,7 @@ irm "https://github.com/ChrisTitusTech/winutil/releases/latest/download/winutil.
#### Automation
-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
+Some features are available 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
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)
diff --git a/config/applications.json b/config/applications.json
index 893d0c82..4cf52bee 100644
--- a/config/applications.json
+++ b/config/applications.json
@@ -391,7 +391,6 @@
"link": "https://discord.com/",
"winget": "Discord.Discord"
},
-<<<<<<< purging-applications
"WPFInstallditto": {
"category": "Utilities",
"choco": "ditto",
@@ -400,8 +399,6 @@
"link": "https://github.com/sabrogden/Ditto",
"winget": "Ditto.Ditto"
},
-=======
->>>>>>> main
"WPFInstalldockerdesktop": {
"category": "Development",
"choco": "docker-desktop",
@@ -560,7 +557,7 @@
"content": "Fastfetch",
"description": "Fastfetch is a neofetch-like tool for fetching system information and displaying them in a pretty way",
"link": "https://github.com/fastfetch-cli/fastfetch/",
- "winget": "fastfetch"
+ "winget": "Fastfetch-cli.Fastfetch"
},
"WPFInstallferdium": {
"category": "Communications",
@@ -2410,6 +2407,14 @@
"link": "https://voicemeeter.com/",
"winget": "VB-Audio.Voicemeeter"
},
+ "WPFInstallVoicemeeterPotato": {
+ "category": "Multimedia Tools",
+ "choco": "voicemeeter-potato",
+ "content": "Voicemeeter Potato",
+ "description": "Voicemeeter Potato is the ultimate version of the Voicemeeter Audio Mixer Application endowed with Virtual Audio Device to mix and manage any audio sources from or to any audio devices or applications.",
+ "link": "https://voicemeeter.com/",
+ "winget": "VB-Audio.Voicemeeter.Potato"
+ },
"WPFInstallvrdesktopstreamer": {
"category": "Games",
"choco": "na",
@@ -2466,6 +2471,14 @@
"link": "https://support.microsoft.com/en-us/windows/how-to-use-the-pc-health-check-app-9c8abd9b-03ba-4e67-81ef-36f37caa7844",
"winget": "Microsoft.WindowsPCHealthCheck"
},
+ "WPFInstallWindowGrid": {
+ "category": "Utilities",
+ "choco": "windowgrid",
+ "content": "WindowGrid",
+ "description": "WindowGrid is a modern window management program for Windows that allows the user to quickly and easily layout their windows on a dynamic grid using just the mouse.",
+ "link": "http://windowgrid.net/",
+ "winget": "na"
+ },
"WPFInstallwingetui": {
"category": "Utilities",
"choco": "wingetui",
diff --git a/config/tweaks.json b/config/tweaks.json
index b9ac49e4..cac0fcac 100644
--- a/config/tweaks.json
+++ b/config/tweaks.json
@@ -2452,79 +2452,92 @@
},
"WPFTweaksRemoveOnedrive": {
"Content": "Remove OneDrive",
- "Description": "Copies OneDrive files to Default Home Folders and Uninstalls it.",
+ "Description": "Moves OneDrive files to Default Home Folders and Uninstalls it.",
"category": "z__Advanced Tweaks - CAUTION",
"panel": "1",
"Order": "a030_",
"InvokeScript": [
- "
+ "
+ $OneDrivePath = $($env:OneDrive)
+ Write-Host \"Removing OneDrive\"
+ $regPath = \"HKCU:\\Software\\Microsoft\\Windows\\CurrentVersion\\Uninstall\\OneDriveSetup.exe\"
+ if (Test-Path $regPath){
+ $OneDriveUninstallString = Get-ItemPropertyValue \"$regPath\" -Name \"UninstallString\"
+ $OneDriveExe, $OneDriveArgs = $OneDriveUninstallString.Split(\" \")
+ Start-Process -FilePath $OneDriveExe -ArgumentList \"$OneDriveArgs /silent\" -NoNewWindow -Wait
+ }
+ else{
+ Write-Host \"Onedrive dosn't seem to be installed anymore\" -ForegroundColor Red
+ return
+ }
+ # Check if OneDrive got Uninstalled
+ if (-not (Test-Path $regPath)){
+ Write-Host \"Copy downloaded Files from the OneDrive Folder to Root UserProfile\"
+ Start-Process -FilePath powershell -ArgumentList \"robocopy '$($OneDrivePath)' '$($env:USERPROFILE.TrimEnd())\\' /mov /e /xj\" -NoNewWindow -Wait
- Write-Host \"Kill OneDrive process\"
- taskkill.exe /F /IM \"OneDrive.exe\"
- taskkill.exe /F /IM \"explorer.exe\"
+ Write-Host \"Removing OneDrive leftovers\"
+ Remove-Item -Recurse -Force -ErrorAction SilentlyContinue \"$env:localappdata\\Microsoft\\OneDrive\"
+ Remove-Item -Recurse -Force -ErrorAction SilentlyContinue \"$env:localappdata\\OneDrive\"
+ Remove-Item -Recurse -Force -ErrorAction SilentlyContinue \"$env:programdata\\Microsoft OneDrive\"
+ Remove-Item -Recurse -Force -ErrorAction SilentlyContinue \"$env:systemdrive\\OneDriveTemp\"
+ reg delete \"HKEY_CURRENT_USER\\Software\\Microsoft\\OneDrive\" -f
+ # check if directory is empty before removing:
+ If ((Get-ChildItem \"$OneDrivePath\" -Recurse | Measure-Object).Count -eq 0) {
+ Remove-Item -Recurse -Force -ErrorAction SilentlyContinue \"$OneDrivePath\"
+ }
- Write-Host \"Copy all OneDrive to Root UserProfile\"
- Start-Process -FilePath powershell -ArgumentList \"robocopy '$($env:USERPROFILE.TrimEnd())\\OneDrive' '$($env:USERPROFILE.TrimEnd())\\' /e /xj\" -NoNewWindow -Wait
+ Write-Host \"Remove Onedrive from explorer sidebar\"
+ Set-ItemProperty -Path \"HKCR:\\CLSID\\{018D5C66-4533-4307-9B53-224DE2ED1FE6}\" -Name \"System.IsPinnedToNameSpaceTree\" -Value 0
+ Set-ItemProperty -Path \"HKCR:\\Wow6432Node\\CLSID\\{018D5C66-4533-4307-9B53-224DE2ED1FE6}\" -Name \"System.IsPinnedToNameSpaceTree\" -Value 0
- Write-Host \"Remove OneDrive\"
- Start-Process -FilePath winget -ArgumentList \"uninstall -e --purge --force --silent Microsoft.OneDrive \" -NoNewWindow -Wait
+ Write-Host \"Removing run hook for new users\"
+ reg load \"hku\\Default\" \"C:\\Users\\Default\\NTUSER.DAT\"
+ reg delete \"HKEY_USERS\\Default\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run\" /v \"OneDriveSetup\" /f
+ reg unload \"hku\\Default\"
- Write-Host \"Removing OneDrive leftovers\"
- Remove-Item -Recurse -Force -ErrorAction SilentlyContinue \"$env:localappdata\\Microsoft\\OneDrive\"
- Remove-Item -Recurse -Force -ErrorAction SilentlyContinue \"$env:localappdata\\OneDrive\"
- Remove-Item -Recurse -Force -ErrorAction SilentlyContinue \"$env:programdata\\Microsoft OneDrive\"
- Remove-Item -Recurse -Force -ErrorAction SilentlyContinue \"$env:systemdrive\\OneDriveTemp\"
- # check if directory is empty before removing:
- If ((Get-ChildItem \"$env:userprofile\\OneDrive\" -Recurse | Measure-Object).Count -eq 0) {
- Remove-Item -Recurse -Force -ErrorAction SilentlyContinue \"$env:userprofile\\OneDrive\"
- }
+ Write-Host \"Removing startmenu entry\"
+ Remove-Item -Force -ErrorAction SilentlyContinue \"$env:userprofile\\AppData\\Roaming\\Microsoft\\Windows\\Start Menu\\Programs\\OneDrive.lnk\"
- Write-Host \"Remove Onedrive from explorer sidebar\"
- Set-ItemProperty -Path \"HKCR:\\CLSID\\{018D5C66-4533-4307-9B53-224DE2ED1FE6}\" -Name \"System.IsPinnedToNameSpaceTree\" -Value 0
- Set-ItemProperty -Path \"HKCR:\\Wow6432Node\\CLSID\\{018D5C66-4533-4307-9B53-224DE2ED1FE6}\" -Name \"System.IsPinnedToNameSpaceTree\" -Value 0
+ Write-Host \"Removing scheduled task\"
+ Get-ScheduledTask -TaskPath '\\' -TaskName 'OneDrive*' -ea SilentlyContinue | Unregister-ScheduledTask -Confirm:$false
- Write-Host \"Removing run hook for new users\"
- reg load \"hku\\Default\" \"C:\\Users\\Default\\NTUSER.DAT\"
- reg delete \"HKEY_USERS\\Default\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run\" /v \"OneDriveSetup\" /f
- reg unload \"hku\\Default\"
+ # Add Shell folders restoring default locations
+ Write-Host \"Shell Fixing\"
+ Set-ItemProperty -Path \"HKCU:\\Software\\Microsoft\\Windows\\CurrentVersion\\Explorer\\User Shell Folders\" -Name \"AppData\" -Value \"$env:userprofile\\AppData\\Roaming\" -Type ExpandString
+ Set-ItemProperty -Path \"HKCU:\\Software\\Microsoft\\Windows\\CurrentVersion\\Explorer\\User Shell Folders\" -Name \"Cache\" -Value \"$env:userprofile\\AppData\\Local\\Microsoft\\Windows\\INetCache\" -Type ExpandString
+ Set-ItemProperty -Path \"HKCU:\\Software\\Microsoft\\Windows\\CurrentVersion\\Explorer\\User Shell Folders\" -Name \"Cookies\" -Value \"$env:userprofile\\AppData\\Local\\Microsoft\\Windows\\INetCookies\" -Type ExpandString
+ Set-ItemProperty -Path \"HKCU:\\Software\\Microsoft\\Windows\\CurrentVersion\\Explorer\\User Shell Folders\" -Name \"Favorites\" -Value \"$env:userprofile\\Favorites\" -Type ExpandString
+ Set-ItemProperty -Path \"HKCU:\\Software\\Microsoft\\Windows\\CurrentVersion\\Explorer\\User Shell Folders\" -Name \"History\" -Value \"$env:userprofile\\AppData\\Local\\Microsoft\\Windows\\History\" -Type ExpandString
+ Set-ItemProperty -Path \"HKCU:\\Software\\Microsoft\\Windows\\CurrentVersion\\Explorer\\User Shell Folders\" -Name \"Local AppData\" -Value \"$env:userprofile\\AppData\\Local\" -Type ExpandString
+ Set-ItemProperty -Path \"HKCU:\\Software\\Microsoft\\Windows\\CurrentVersion\\Explorer\\User Shell Folders\" -Name \"My Music\" -Value \"$env:userprofile\\Music\" -Type ExpandString
+ Set-ItemProperty -Path \"HKCU:\\Software\\Microsoft\\Windows\\CurrentVersion\\Explorer\\User Shell Folders\" -Name \"My Video\" -Value \"$env:userprofile\\Videos\" -Type ExpandString
+ Set-ItemProperty -Path \"HKCU:\\Software\\Microsoft\\Windows\\CurrentVersion\\Explorer\\User Shell Folders\" -Name \"NetHood\" -Value \"$env:userprofile\\AppData\\Roaming\\Microsoft\\Windows\\Network Shortcuts\" -Type ExpandString
+ Set-ItemProperty -Path \"HKCU:\\Software\\Microsoft\\Windows\\CurrentVersion\\Explorer\\User Shell Folders\" -Name \"PrintHood\" -Value \"$env:userprofile\\AppData\\Roaming\\Microsoft\\Windows\\Printer Shortcuts\" -Type ExpandString
+ Set-ItemProperty -Path \"HKCU:\\Software\\Microsoft\\Windows\\CurrentVersion\\Explorer\\User Shell Folders\" -Name \"Programs\" -Value \"$env:userprofile\\AppData\\Roaming\\Microsoft\\Windows\\Start Menu\\Programs\" -Type ExpandString
+ Set-ItemProperty -Path \"HKCU:\\Software\\Microsoft\\Windows\\CurrentVersion\\Explorer\\User Shell Folders\" -Name \"Recent\" -Value \"$env:userprofile\\AppData\\Roaming\\Microsoft\\Windows\\Recent\" -Type ExpandString
+ Set-ItemProperty -Path \"HKCU:\\Software\\Microsoft\\Windows\\CurrentVersion\\Explorer\\User Shell Folders\" -Name \"SendTo\" -Value \"$env:userprofile\\AppData\\Roaming\\Microsoft\\Windows\\SendTo\" -Type ExpandString
+ Set-ItemProperty -Path \"HKCU:\\Software\\Microsoft\\Windows\\CurrentVersion\\Explorer\\User Shell Folders\" -Name \"Start Menu\" -Value \"$env:userprofile\\AppData\\Roaming\\Microsoft\\Windows\\Start Menu\" -Type ExpandString
+ Set-ItemProperty -Path \"HKCU:\\Software\\Microsoft\\Windows\\CurrentVersion\\Explorer\\User Shell Folders\" -Name \"Startup\" -Value \"$env:userprofile\\AppData\\Roaming\\Microsoft\\Windows\\Start Menu\\Programs\\Startup\" -Type ExpandString
+ Set-ItemProperty -Path \"HKCU:\\Software\\Microsoft\\Windows\\CurrentVersion\\Explorer\\User Shell Folders\" -Name \"Templates\" -Value \"$env:userprofile\\AppData\\Roaming\\Microsoft\\Windows\\Templates\" -Type ExpandString
+ Set-ItemProperty -Path \"HKCU:\\Software\\Microsoft\\Windows\\CurrentVersion\\Explorer\\User Shell Folders\" -Name \"{374DE290-123F-4565-9164-39C4925E467B}\" -Value \"$env:userprofile\\Downloads\" -Type ExpandString
+ Set-ItemProperty -Path \"HKCU:\\Software\\Microsoft\\Windows\\CurrentVersion\\Explorer\\User Shell Folders\" -Name \"Desktop\" -Value \"$env:userprofile\\Desktop\" -Type ExpandString
+ Set-ItemProperty -Path \"HKCU:\\Software\\Microsoft\\Windows\\CurrentVersion\\Explorer\\User Shell Folders\" -Name \"My Pictures\" -Value \"$env:userprofile\\Pictures\" -Type ExpandString
+ Set-ItemProperty -Path \"HKCU:\\Software\\Microsoft\\Windows\\CurrentVersion\\Explorer\\User Shell Folders\" -Name \"Personal\" -Value \"$env:userprofile\\Documents\" -Type ExpandString
+ Set-ItemProperty -Path \"HKCU:\\Software\\Microsoft\\Windows\\CurrentVersion\\Explorer\\User Shell Folders\" -Name \"{F42EE2D3-909F-4907-8871-4C22FC0BF756}\" -Value \"$env:userprofile\\Documents\" -Type ExpandString
+ Set-ItemProperty -Path \"HKCU:\\Software\\Microsoft\\Windows\\CurrentVersion\\Explorer\\User Shell Folders\" -Name \"{0DDD015D-B06C-45D5-8C4C-F59713854639}\" -Value \"$env:userprofile\\Pictures\" -Type ExpandString
+ Write-Host \"Restarting explorer\"
+ taskkill.exe /F /IM \"explorer.exe\"
+ Start-Process \"explorer.exe\"
- Write-Host \"Removing startmenu entry\"
- Remove-Item -Force -ErrorAction SilentlyContinue \"$env:userprofile\\AppData\\Roaming\\Microsoft\\Windows\\Start Menu\\Programs\\OneDrive.lnk\"
-
- Write-Host \"Removing scheduled task\"
- Get-ScheduledTask -TaskPath '\\' -TaskName 'OneDrive*' -ea SilentlyContinue | Unregister-ScheduledTask -Confirm:$false
-
- # Add Shell folders restoring default locations
- Write-Host \"Shell Fixing\"
- Set-ItemProperty -Path \"HKCU:\\Software\\Microsoft\\Windows\\CurrentVersion\\Explorer\\User Shell Folders\" -Name \"AppData\" -Value \"$env:userprofile\\AppData\\Roaming\" -Type ExpandString
- Set-ItemProperty -Path \"HKCU:\\Software\\Microsoft\\Windows\\CurrentVersion\\Explorer\\User Shell Folders\" -Name \"Cache\" -Value \"$env:userprofile\\AppData\\Local\\Microsoft\\Windows\\INetCache\" -Type ExpandString
- Set-ItemProperty -Path \"HKCU:\\Software\\Microsoft\\Windows\\CurrentVersion\\Explorer\\User Shell Folders\" -Name \"Cookies\" -Value \"$env:userprofile\\AppData\\Local\\Microsoft\\Windows\\INetCookies\" -Type ExpandString
- Set-ItemProperty -Path \"HKCU:\\Software\\Microsoft\\Windows\\CurrentVersion\\Explorer\\User Shell Folders\" -Name \"Favorites\" -Value \"$env:userprofile\\Favorites\" -Type ExpandString
- Set-ItemProperty -Path \"HKCU:\\Software\\Microsoft\\Windows\\CurrentVersion\\Explorer\\User Shell Folders\" -Name \"History\" -Value \"$env:userprofile\\AppData\\Local\\Microsoft\\Windows\\History\" -Type ExpandString
- Set-ItemProperty -Path \"HKCU:\\Software\\Microsoft\\Windows\\CurrentVersion\\Explorer\\User Shell Folders\" -Name \"Local AppData\" -Value \"$env:userprofile\\AppData\\Local\" -Type ExpandString
- Set-ItemProperty -Path \"HKCU:\\Software\\Microsoft\\Windows\\CurrentVersion\\Explorer\\User Shell Folders\" -Name \"My Music\" -Value \"$env:userprofile\\Music\" -Type ExpandString
- Set-ItemProperty -Path \"HKCU:\\Software\\Microsoft\\Windows\\CurrentVersion\\Explorer\\User Shell Folders\" -Name \"My Video\" -Value \"$env:userprofile\\Videos\" -Type ExpandString
- Set-ItemProperty -Path \"HKCU:\\Software\\Microsoft\\Windows\\CurrentVersion\\Explorer\\User Shell Folders\" -Name \"NetHood\" -Value \"$env:userprofile\\AppData\\Roaming\\Microsoft\\Windows\\Network Shortcuts\" -Type ExpandString
- Set-ItemProperty -Path \"HKCU:\\Software\\Microsoft\\Windows\\CurrentVersion\\Explorer\\User Shell Folders\" -Name \"PrintHood\" -Value \"$env:userprofile\\AppData\\Roaming\\Microsoft\\Windows\\Printer Shortcuts\" -Type ExpandString
- Set-ItemProperty -Path \"HKCU:\\Software\\Microsoft\\Windows\\CurrentVersion\\Explorer\\User Shell Folders\" -Name \"Programs\" -Value \"$env:userprofile\\AppData\\Roaming\\Microsoft\\Windows\\Start Menu\\Programs\" -Type ExpandString
- Set-ItemProperty -Path \"HKCU:\\Software\\Microsoft\\Windows\\CurrentVersion\\Explorer\\User Shell Folders\" -Name \"Recent\" -Value \"$env:userprofile\\AppData\\Roaming\\Microsoft\\Windows\\Recent\" -Type ExpandString
- Set-ItemProperty -Path \"HKCU:\\Software\\Microsoft\\Windows\\CurrentVersion\\Explorer\\User Shell Folders\" -Name \"SendTo\" -Value \"$env:userprofile\\AppData\\Roaming\\Microsoft\\Windows\\SendTo\" -Type ExpandString
- Set-ItemProperty -Path \"HKCU:\\Software\\Microsoft\\Windows\\CurrentVersion\\Explorer\\User Shell Folders\" -Name \"Start Menu\" -Value \"$env:userprofile\\AppData\\Roaming\\Microsoft\\Windows\\Start Menu\" -Type ExpandString
- Set-ItemProperty -Path \"HKCU:\\Software\\Microsoft\\Windows\\CurrentVersion\\Explorer\\User Shell Folders\" -Name \"Startup\" -Value \"$env:userprofile\\AppData\\Roaming\\Microsoft\\Windows\\Start Menu\\Programs\\Startup\" -Type ExpandString
- Set-ItemProperty -Path \"HKCU:\\Software\\Microsoft\\Windows\\CurrentVersion\\Explorer\\User Shell Folders\" -Name \"Templates\" -Value \"$env:userprofile\\AppData\\Roaming\\Microsoft\\Windows\\Templates\" -Type ExpandString
- Set-ItemProperty -Path \"HKCU:\\Software\\Microsoft\\Windows\\CurrentVersion\\Explorer\\User Shell Folders\" -Name \"{374DE290-123F-4565-9164-39C4925E467B}\" -Value \"$env:userprofile\\Downloads\" -Type ExpandString
- Set-ItemProperty -Path \"HKCU:\\Software\\Microsoft\\Windows\\CurrentVersion\\Explorer\\User Shell Folders\" -Name \"Desktop\" -Value \"$env:userprofile\\Desktop\" -Type ExpandString
- Set-ItemProperty -Path \"HKCU:\\Software\\Microsoft\\Windows\\CurrentVersion\\Explorer\\User Shell Folders\" -Name \"My Pictures\" -Value \"$env:userprofile\\Pictures\" -Type ExpandString
- Set-ItemProperty -Path \"HKCU:\\Software\\Microsoft\\Windows\\CurrentVersion\\Explorer\\User Shell Folders\" -Name \"Personal\" -Value \"$env:userprofile\\Documents\" -Type ExpandString
- Set-ItemProperty -Path \"HKCU:\\Software\\Microsoft\\Windows\\CurrentVersion\\Explorer\\User Shell Folders\" -Name \"{F42EE2D3-909F-4907-8871-4C22FC0BF756}\" -Value \"$env:userprofile\\Documents\" -Type ExpandString
- Set-ItemProperty -Path \"HKCU:\\Software\\Microsoft\\Windows\\CurrentVersion\\Explorer\\User Shell Folders\" -Name \"{0DDD015D-B06C-45D5-8C4C-F59713854639}\" -Value \"$env:userprofile\\Pictures\" -Type ExpandString
- Write-Host \"Restarting explorer\"
- Start-Process \"explorer.exe\"
-
- Write-Host \"Waiting for explorer to complete loading\"
- Write-Host \"Please Note - OneDrive folder may still have items in it. You must manually delete it, but all the files should already be copied to the base user folder.\"
- Start-Sleep 5
- "
+ Write-Host \"Waiting for explorer to complete loading\"
+ Write-Host \"Please Note - The OneDrive folder at $OneDrivePath may still have items in it. You must manually delete it, but all the files should already be copied to the base user folder.\"
+ Write-Host \"If there are Files missing afterwards, please Login to Onedrive.com and Download them manually\" -ForegroundColor Yellow
+ Start-Sleep 5
+ }
+ else{
+ Write-Host \"Something went Wrong during the Unistallation of OneDrive\" -ForegroundColor Red
+ }
+ "
],
"UndoScript": [
"
diff --git a/functions/private/Get-TabXaml.ps1 b/functions/private/Get-TabXaml.ps1
index e60bd02d..ea6d69f5 100644
--- a/functions/private/Get-TabXaml.ps1
+++ b/functions/private/Get-TabXaml.ps1
@@ -61,19 +61,19 @@ function Get-TabXaml {
$paneltotal = $columncount
}
# add ColumnDefinitions to evenly draw colums
- $blockXml="`n"+("`n"*($paneltotal))+"`n"
+ $blockXml="`r`n"+("`r`n"*($paneltotal))+"`r`n"
# Iterate through organizedData by panel, category, and application
$count = 0
foreach ($panel in ($organizedData.Keys | Sort-Object)) {
- $blockXml += "`n`n"
+ $blockXml += "`r`n`r`n"
$panelcount++
foreach ($category in ($organizedData[$panel].Keys | Sort-Object)) {
$count++
if ($columncount -gt 0) {
$panelcount2 = [Int](($count)/$maxcount-0.5)
if ($panelcount -eq $panelcount2 ) {
- $blockXml +="`n`n`n"
- $blockXml += "`n`n"
+ $blockXml +="`r`n`r`n`r`n"
+ $blockXml += "`r`n`r`n"
$panelcount++
}
}
@@ -83,49 +83,49 @@ function Get-TabXaml {
$categorycontent = $($category -replace '^.__', '')
$categoryname = Get-WPFObjectName -type "Label" -name $categorycontent
- $blockXml += "`n"
+ $blockXml += "`r`n"
$sortedApps = $organizedData[$panel][$category].Keys | Sort-Object
foreach ($appName in $sortedApps) {
$count++
if ($columncount -gt 0) {
$panelcount2 = [Int](($count)/$maxcount-0.5)
if ($panelcount -eq $panelcount2 ) {
- $blockXml +="`n`n`n"
- $blockXml += "`n`n"
+ $blockXml +="`r`n`r`n`r`n"
+ $blockXml += "`r`n`r`n"
$panelcount++
}
}
$appInfo = $organizedData[$panel][$category][$appName]
if ("Toggle" -eq $appInfo.Type) {
- $blockXml += "`n`n"
+ $blockXml += "`r`n`r`n"
} elseif ("Combobox" -eq $appInfo.Type) {
- $blockXml += "`n"
# If it is a digit, type is button and button length is digits
} elseif ($appInfo.Type -match "^[\d\.]+$") {
- $blockXml += "`n"
+ $blockXml += "`r`n"
# else it is a checkbox
} else {
$checkedStatus = If ($null -eq $appInfo.Checked) {""} Else {"IsChecked=`"$($appInfo.Checked)`" "}
if ($null -eq $appInfo.Link)
{
- $blockXml += "`n"
+ $blockXml += "`r`n"
}
else
{
- $blockXml += "`n`n`n"
+ $blockXml += "`r`n`r`n`r`n"
}
}
}
}
- $blockXml +="`n`n`n"
+ $blockXml +="`r`n`r`n`r`n"
}
return ($blockXml)
}
diff --git a/windev.ps1 b/windev.ps1
new file mode 100644
index 00000000..9440f8f4
--- /dev/null
+++ b/windev.ps1
@@ -0,0 +1,40 @@
+<#
+.SYNOPSIS
+ This Script is used as a target for the https://christitus.com/windev alias.
+ It queries the latest winget release (no matter if Pre-Release, Draft or Full Release) and invokes It
+.DESCRIPTION
+ This Script provides a simple way to always start the bleeding edge release even if it's not yet a full release.
+ This function should be run with administrative privileges.
+ Because this way of recursively invoking scripts via Invoke-Expression it might very well happen that AV Programs flag this because it's a common way of mulitstage exploits to run
+.EXAMPLE
+ irm https://christitus.com/windev | iex
+ OR
+ Run in Admin Powershell > ./windev.ps1
+#>
+
+# Function to fetch the latest release tag from the GitHub API
+function Get-LatestRelease {
+ try {
+ $releases = Invoke-RestMethod -Uri 'https://api.github.com/repos/ChrisTitusTech/winutil/releases'
+ $latestRelease = $releases | Select-Object -First 1
+ return $latestRelease.tag_name
+ } catch {
+ Write-Host "Error fetching release data: $_" -ForegroundColor Red
+ return $null
+ }
+}
+
+# Function to redirect to the latest pre-release version
+function RedirectToLatestPreRelease {
+ $latestRelease = Get-LatestRelease
+ if ($latestRelease) {
+ $url = "https://raw.githubusercontent.com/ChrisTitusTech/winutil/$latestRelease/winutil.ps1"
+ Invoke-RestMethod $url | Invoke-Expression
+ } else {
+ Write-Host 'Unable to determine latest pre-release version.' -ForegroundColor Red
+ }
+}
+
+# Call the redirect function
+
+RedirectToLatestPreRelease
\ No newline at end of file
diff --git a/winutil.ps1 b/winutil.ps1
index 6c783f31..85589f8b 100644
--- a/winutil.ps1
+++ b/winutil.ps1
@@ -260,19 +260,19 @@ function Get-TabXaml {
$paneltotal = $columncount
}
# add ColumnDefinitions to evenly draw colums
- $blockXml="`n"+("`n"*($paneltotal))+"`n"
+ $blockXml="`r`n"+("`r`n"*($paneltotal))+"`r`n"
# Iterate through organizedData by panel, category, and application
$count = 0
foreach ($panel in ($organizedData.Keys | Sort-Object)) {
- $blockXml += "`n`n"
+ $blockXml += "`r`n`r`n"
$panelcount++
foreach ($category in ($organizedData[$panel].Keys | Sort-Object)) {
$count++
if ($columncount -gt 0) {
$panelcount2 = [Int](($count)/$maxcount-0.5)
if ($panelcount -eq $panelcount2 ) {
- $blockXml +="`n`n`n"
- $blockXml += "`n`n"
+ $blockXml +="`r`n`r`n`r`n"
+ $blockXml += "`r`n`r`n"
$panelcount++
}
}
@@ -282,49 +282,49 @@ function Get-TabXaml {
$categorycontent = $($category -replace '^.__', '')
$categoryname = Get-WPFObjectName -type "Label" -name $categorycontent
- $blockXml += "`n"
+ $blockXml += "`r`n"
$sortedApps = $organizedData[$panel][$category].Keys | Sort-Object
foreach ($appName in $sortedApps) {
$count++
if ($columncount -gt 0) {
$panelcount2 = [Int](($count)/$maxcount-0.5)
if ($panelcount -eq $panelcount2 ) {
- $blockXml +="`n`n`n"
- $blockXml += "`n`n"
+ $blockXml +="`r`n`r`n`r`n"
+ $blockXml += "`r`n`r`n"
$panelcount++
}
}
$appInfo = $organizedData[$panel][$category][$appName]
if ("Toggle" -eq $appInfo.Type) {
- $blockXml += "`n`n"
- $blockXml += "`n`n"
+ $blockXml += "`r`n`r`n"
+ $blockXml += "`r`n`r`n"
} elseif ("Combobox" -eq $appInfo.Type) {
- $blockXml += "`n`n"
- $blockXml += "`n"
+ $blockXml += "`r`n`r`n"
+ $blockXml += "`r`n"
$addfirst="IsSelected=`"True`""
foreach ($comboitem in ($appInfo.ComboItems -split " ")) {
- $blockXml += "`n"
+ $blockXml += "`r`n"
$addfirst=""
}
- $blockXml += "`n"
+ $blockXml += "`r`n"
# If it is a digit, type is button and button length is digits
} elseif ($appInfo.Type -match "^[\d\.]+$") {
- $blockXml += "`n"
+ $blockXml += "`r`n"
# else it is a checkbox
} else {
$checkedStatus = If ($null -eq $appInfo.Checked) {""} Else {"IsChecked=`"$($appInfo.Checked)`" "}
if ($null -eq $appInfo.Link)
{
- $blockXml += "`n"
+ $blockXml += "`r`n"
}
else
{
- $blockXml += "`n`n`n"
+ $blockXml += "`r`n`r`n`r`n"
}
}
}
}
- $blockXml +="`n`n`n"
+ $blockXml +="`r`n`r`n`r`n"
}
return ($blockXml)
}
@@ -535,6 +535,15 @@ Function Get-WinUtilToggleStatus {
return $false
}
}
+ if($ToggleSwitch -eq "WPFToggleTaskbarSearch"){
+ $SearchButton = (Get-ItemProperty -path "HKCU:\Software\Microsoft\Windows\CurrentVersion\Search").SearchboxTaskbarMode
+ if($SearchButton -eq 0){
+ return $false
+ }
+ else{
+ return $true
+ }
+ }
if ($ToggleSwitch -eq "WPFToggleStickyKeys") {
$StickyKeys = (Get-ItemProperty -path 'HKCU:\Control Panel\Accessibility\StickyKeys').Flags
if($StickyKeys -eq 58){
@@ -544,6 +553,15 @@ Function Get-WinUtilToggleStatus {
return $true
}
}
+ if ($ToggleSwitch -eq "WPFToggleTaskView") {
+ $TaskView = (Get-ItemProperty -path 'HKCU:\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced').ShowTaskViewButton
+ if($TaskView -eq 0){
+ return $false
+ }
+ else{
+ return $true
+ }
+ }
if ($ToggleSwitch -eq "WPFToggleTaskbarWidgets") {
$TaskbarWidgets = (Get-ItemProperty -Path "HKCU:\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced").TaskBarDa
if($TaskbarWidgets -eq 0) {
@@ -2138,6 +2156,40 @@ Function Invoke-WinUtilStickyKeys {
Write-Warning $psitem.Exception.StackTrace
}
}
+function Invoke-WinUtilTaskbarSearch {
+ <#
+
+ .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 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
+ }
+}
function Invoke-WinUtilTaskbarWidgets {
<#
@@ -2172,6 +2224,40 @@ function Invoke-WinUtilTaskbarWidgets {
Write-Warning $psitem.Exception.StackTrace
}
}
+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
+ }
+}
function Invoke-WinUtilTweaks {
<#
@@ -4719,6 +4805,8 @@ function Invoke-WPFToggle {
"WPFToggleMouseAcceleration" {Invoke-WinUtilMouseAcceleration $(Get-WinUtilToggleStatus WPFToggleMouseAcceleration)}
"WPFToggleStickyKeys" {Invoke-WinUtilStickyKeys $(Get-WinUtilToggleStatus WPFToggleStickyKeys)}
"WPFToggleTaskbarWidgets" {Invoke-WinUtilTaskbarWidgets $(Get-WinUtilToggleStatus WPFToggleTaskbarWidgets)}
+ "WPFToggleTaskbarSearch" {Invoke-WinUtilTaskbarSearch $(Get-WinUtilToggleStatus WPFToggleTaskbarSearch)}
+ "WPFToggleTaskView" {Invoke-WinUtilTaskView $(Get-WinUtilToggleStatus WPFToggleTaskView)}
}
}
function Invoke-WPFTweakPS7{
@@ -5456,14 +5544,6 @@ $sync.configs.applications = '{
"link": "https://github.com/sharkdp/bat",
"winget": "sharkdp.bat"
},
- "WPFInstallbitcomet": {
- "category": "Utilities",
- "choco": "bitcomet",
- "content": "BitComet",
- "description": "BitComet is a free and open-source BitTorrent client that supports HTTP/FTP downloads and provides download management features.",
- "link": "https://www.bitcomet.com/",
- "winget": "CometNetwork.BitComet"
- },
"WPFInstallbitwarden": {
"category": "Utilities",
"choco": "bitwarden",
@@ -5488,14 +5568,6 @@ $sync.configs.applications = '{
"link": "https://www.blender.org/",
"winget": "BlenderFoundation.Blender"
},
- "WPFInstallbluestacks": {
- "category": "Games",
- "choco": "bluestacks",
- "content": "Bluestacks",
- "description": "Bluestacks is an Android emulator for running mobile apps and games on a PC.",
- "link": "https://www.bluestacks.com/",
- "winget": "BlueStack.BlueStacks"
- },
"WPFInstallbrave": {
"category": "Browsers",
"choco": "brave",
@@ -5520,6 +5592,14 @@ $sync.configs.applications = '{
"link": "https://www.bulkrenameutility.co.uk",
"winget": "TGRMNSoftware.BulkRenameUtility"
},
+ "WPFInstallAdvancedRenamer": {
+ "category": "Utilities",
+ "choco": "advanced-renamer",
+ "content": "Advanced Renamer",
+ "description": "Advanced Renamer is a program for renaming multiple files and folders at once. By configuring renaming methods the names can be manipulated in various ways.",
+ "link": "https://www.advancedrenamer.com/",
+ "winget": "XP9MD3S1KFCPH1"
+ },
"WPFInstallcalibre": {
"category": "Document",
"choco": "calibre",
@@ -5616,14 +5696,6 @@ $sync.configs.applications = '{
"link": "https://copyq.readthedocs.io/",
"winget": "hluk.CopyQ"
},
- "WPFInstallditto": {
- "category": "Utilities",
- "choco": "ditto",
- "content": "Ditto (Clipboard Manager)",
- "description": "Ditto is an extension to the Windows Clipboard. You copy something to the Clipboard and Ditto takes what you copied and stores it in a database to retrieve at a later time.",
- "link": "https://github.com/sabrogden/Ditto",
- "winget": "Ditto.Ditto"
- },
"WPFInstallcpuz": {
"category": "Utilities",
"choco": "cpu-z",
@@ -5712,6 +5784,14 @@ $sync.configs.applications = '{
"link": "https://discord.com/",
"winget": "Discord.Discord"
},
+ "WPFInstallditto": {
+ "category": "Utilities",
+ "choco": "ditto",
+ "content": "Ditto",
+ "description": "Ditto is an extension to the standard windows clipboard.",
+ "link": "https://github.com/sabrogden/Ditto",
+ "winget": "Ditto.Ditto"
+ },
"WPFInstalldockerdesktop": {
"category": "Development",
"choco": "docker-desktop",
@@ -5864,6 +5944,14 @@ $sync.configs.applications = '{
"link": "https://www.falkon.org/",
"winget": "KDE.Falkon"
},
+ "WPFInstallfastfetch": {
+ "category": "Utilities",
+ "choco": "na",
+ "content": "Fastfetch",
+ "description": "Fastfetch is a neofetch-like tool for fetching system information and displaying them in a pretty way",
+ "link": "https://github.com/fastfetch-cli/fastfetch/",
+ "winget": "Fastfetch-cli.Fastfetch"
+ },
"WPFInstallferdium": {
"category": "Communications",
"choco": "ferdium",
@@ -6508,7 +6596,7 @@ $sync.configs.applications = '{
"category": "Communications",
"choco": "element-desktop",
"content": "Element",
- "description": "Element is a client for Matrix?an open network for secure, decentralized communication.",
+ "description": "Element is a client for Matrix—an open network for secure, decentralized communication.",
"link": "https://element.io/",
"winget": "Element.Element"
},
@@ -6648,6 +6736,14 @@ $sync.configs.applications = '{
"link": "https://www.mp3tag.de/en/",
"winget": "Mp3tag.Mp3tag"
},
+ "WPFInstalltagscanner": {
+ "category": "Multimedia Tools",
+ "choco": "tagscanner",
+ "content": "TagScanner (Tag Scanner)",
+ "description": "TagScanner is a powerful tool for organizing and managing your music collection",
+ "link": "https://www.xdlab.ru/en/",
+ "winget": "SergeySerkov.TagScanner"
+ },
"WPFInstallnanazip": {
"category": "Utilities",
"choco": "nanazip",
@@ -7096,6 +7192,14 @@ $sync.configs.applications = '{
"link": "https://www.qbittorrent.org/",
"winget": "qBittorrent.qBittorrent"
},
+ "WPFInstalltransmission": {
+ "category": "Utilities",
+ "choco": "transmission",
+ "content": "Transmission",
+ "description": "Transmission is a cross-platform BitTorrent client that is open source, easy, powerful, and lean.",
+ "link": "https://transmissionbt.com/",
+ "winget": "Transmission.Transmission"
+ },
"WPFInstalltixati": {
"category": "Utilities",
"choco": "tixati.portable",
@@ -7504,6 +7608,14 @@ $sync.configs.applications = '{
"link": "https://github.com/thonny/thonny",
"winget": "AivarAnnamaa.Thonny"
},
+ "WPFInstallMuEditor": {
+ "category": "Development",
+ "choco": "na",
+ "content": "Code With Mu (Mu Editor)",
+ "description": "Mu is a Python code editor for beginner programmers",
+ "link": "https://codewith.mu/",
+ "winget": "Mu.Mu"
+ },
"WPFInstallthorium": {
"category": "Browsers",
"choco": "na",
@@ -7688,6 +7800,14 @@ $sync.configs.applications = '{
"link": "https://voicemeeter.com/",
"winget": "VB-Audio.Voicemeeter"
},
+ "WPFInstallVoicemeeterPotato": {
+ "category": "Multimedia Tools",
+ "choco": "voicemeeter-potato",
+ "content": "Voicemeeter Potato",
+ "description": "Voicemeeter Potato is the ultimate version of the Voicemeeter Audio Mixer Application endowed with Virtual Audio Device to mix and manage any audio sources from or to any audio devices or applications.",
+ "link": "https://voicemeeter.com/",
+ "winget": "VB-Audio.Voicemeeter.Potato"
+ },
"WPFInstallvrdesktopstreamer": {
"category": "Games",
"choco": "na",
@@ -7736,14 +7856,6 @@ $sync.configs.applications = '{
"link": "https://wezfurlong.org/wezterm/index.html",
"winget": "wez.wezterm"
},
- "WPFInstallwindirstat": {
- "category": "Utilities",
- "choco": "windirstat",
- "content": "WinDirStat",
- "description": "WinDirStat is a disk usage statistics viewer and cleanup tool for Windows.",
- "link": "https://windirstat.net/",
- "winget": "WinDirStat.WinDirStat"
- },
"WPFInstallwindowspchealth": {
"category": "Utilities",
"choco": "na",
@@ -7752,6 +7864,14 @@ $sync.configs.applications = '{
"link": "https://support.microsoft.com/en-us/windows/how-to-use-the-pc-health-check-app-9c8abd9b-03ba-4e67-81ef-36f37caa7844",
"winget": "Microsoft.WindowsPCHealthCheck"
},
+ "WPFInstallWindowGrid": {
+ "category": "Utilities",
+ "choco": "windowgrid",
+ "content": "WindowGrid",
+ "description": "WindowGrid is a modern window management program for Windows that allows the user to quickly and easily layout their windows on a dynamic grid using just the mouse.",
+ "link": "http://windowgrid.net/",
+ "winget": "na"
+ },
"WPFInstallwingetui": {
"category": "Utilities",
"choco": "wingetui",
@@ -8643,7 +8763,7 @@ $sync.configs.tweaks = '{
"powercfg.exe /hibernate on"
]
},
- "WPFToggleTweaksLaptopHybernation": {
+ "WPFTweaksLaptopHibernation": {
"Content": "Set Hibernation as default (good for laptops)",
"Description": "Most modern laptops have connected stadby enabled which drains the battery, this sets hibernation as default which will not drain the battery. See issue https://github.com/ChrisTitusTech/winutil/issues/1399",
"category": "Essential Tweaks",
@@ -11036,79 +11156,92 @@ $sync.configs.tweaks = '{
},
"WPFTweaksRemoveOnedrive": {
"Content": "Remove OneDrive",
- "Description": "Copies OneDrive files to Default Home Folders and Uninstalls it.",
+ "Description": "Moves OneDrive files to Default Home Folders and Uninstalls it.",
"category": "z__Advanced Tweaks - CAUTION",
"panel": "1",
"Order": "a030_",
"InvokeScript": [
+ "
+ $OneDrivePath = $($env:OneDrive)
+ Write-Host \"Removing OneDrive\"
+ $regPath = \"HKCU:\\Software\\Microsoft\\Windows\\CurrentVersion\\Uninstall\\OneDriveSetup.exe\"
+ if (Test-Path $regPath){
+ $OneDriveUninstallString = Get-ItemPropertyValue \"$regPath\" -Name \"UninstallString\"
+ $OneDriveExe, $OneDriveArgs = $OneDriveUninstallString.Split(\" \")
+ Start-Process -FilePath $OneDriveExe -ArgumentList \"$OneDriveArgs /silent\" -NoNewWindow -Wait
+ }
+ else{
+ Write-Host \"Onedrive dosn''t seem to be installed anymore\" -ForegroundColor Red
+ return
+ }
+ # Check if OneDrive got Uninstalled
+ if (-not (Test-Path $regPath)){
+ Write-Host \"Copy downloaded Files from the OneDrive Folder to Root UserProfile\"
+ Start-Process -FilePath powershell -ArgumentList \"robocopy ''$($OneDrivePath)'' ''$($env:USERPROFILE.TrimEnd())\\'' /mov /e /xj\" -NoNewWindow -Wait
+
+ Write-Host \"Removing OneDrive leftovers\"
+ Remove-Item -Recurse -Force -ErrorAction SilentlyContinue \"$env:localappdata\\Microsoft\\OneDrive\"
+ Remove-Item -Recurse -Force -ErrorAction SilentlyContinue \"$env:localappdata\\OneDrive\"
+ Remove-Item -Recurse -Force -ErrorAction SilentlyContinue \"$env:programdata\\Microsoft OneDrive\"
+ Remove-Item -Recurse -Force -ErrorAction SilentlyContinue \"$env:systemdrive\\OneDriveTemp\"
+ reg delete \"HKEY_CURRENT_USER\\Software\\Microsoft\\OneDrive\" -f
+ # check if directory is empty before removing:
+ If ((Get-ChildItem \"$OneDrivePath\" -Recurse | Measure-Object).Count -eq 0) {
+ Remove-Item -Recurse -Force -ErrorAction SilentlyContinue \"$OneDrivePath\"
+ }
+
+ Write-Host \"Remove Onedrive from explorer sidebar\"
+ Set-ItemProperty -Path \"HKCR:\\CLSID\\{018D5C66-4533-4307-9B53-224DE2ED1FE6}\" -Name \"System.IsPinnedToNameSpaceTree\" -Value 0
+ Set-ItemProperty -Path \"HKCR:\\Wow6432Node\\CLSID\\{018D5C66-4533-4307-9B53-224DE2ED1FE6}\" -Name \"System.IsPinnedToNameSpaceTree\" -Value 0
+
+ Write-Host \"Removing run hook for new users\"
+ reg load \"hku\\Default\" \"C:\\Users\\Default\\NTUSER.DAT\"
+ reg delete \"HKEY_USERS\\Default\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run\" /v \"OneDriveSetup\" /f
+ reg unload \"hku\\Default\"
+
+ Write-Host \"Removing startmenu entry\"
+ Remove-Item -Force -ErrorAction SilentlyContinue \"$env:userprofile\\AppData\\Roaming\\Microsoft\\Windows\\Start Menu\\Programs\\OneDrive.lnk\"
+
+ Write-Host \"Removing scheduled task\"
+ Get-ScheduledTask -TaskPath ''\\'' -TaskName ''OneDrive*'' -ea SilentlyContinue | Unregister-ScheduledTask -Confirm:$false
+
+ # Add Shell folders restoring default locations
+ Write-Host \"Shell Fixing\"
+ Set-ItemProperty -Path \"HKCU:\\Software\\Microsoft\\Windows\\CurrentVersion\\Explorer\\User Shell Folders\" -Name \"AppData\" -Value \"$env:userprofile\\AppData\\Roaming\" -Type ExpandString
+ Set-ItemProperty -Path \"HKCU:\\Software\\Microsoft\\Windows\\CurrentVersion\\Explorer\\User Shell Folders\" -Name \"Cache\" -Value \"$env:userprofile\\AppData\\Local\\Microsoft\\Windows\\INetCache\" -Type ExpandString
+ Set-ItemProperty -Path \"HKCU:\\Software\\Microsoft\\Windows\\CurrentVersion\\Explorer\\User Shell Folders\" -Name \"Cookies\" -Value \"$env:userprofile\\AppData\\Local\\Microsoft\\Windows\\INetCookies\" -Type ExpandString
+ Set-ItemProperty -Path \"HKCU:\\Software\\Microsoft\\Windows\\CurrentVersion\\Explorer\\User Shell Folders\" -Name \"Favorites\" -Value \"$env:userprofile\\Favorites\" -Type ExpandString
+ Set-ItemProperty -Path \"HKCU:\\Software\\Microsoft\\Windows\\CurrentVersion\\Explorer\\User Shell Folders\" -Name \"History\" -Value \"$env:userprofile\\AppData\\Local\\Microsoft\\Windows\\History\" -Type ExpandString
+ Set-ItemProperty -Path \"HKCU:\\Software\\Microsoft\\Windows\\CurrentVersion\\Explorer\\User Shell Folders\" -Name \"Local AppData\" -Value \"$env:userprofile\\AppData\\Local\" -Type ExpandString
+ Set-ItemProperty -Path \"HKCU:\\Software\\Microsoft\\Windows\\CurrentVersion\\Explorer\\User Shell Folders\" -Name \"My Music\" -Value \"$env:userprofile\\Music\" -Type ExpandString
+ Set-ItemProperty -Path \"HKCU:\\Software\\Microsoft\\Windows\\CurrentVersion\\Explorer\\User Shell Folders\" -Name \"My Video\" -Value \"$env:userprofile\\Videos\" -Type ExpandString
+ Set-ItemProperty -Path \"HKCU:\\Software\\Microsoft\\Windows\\CurrentVersion\\Explorer\\User Shell Folders\" -Name \"NetHood\" -Value \"$env:userprofile\\AppData\\Roaming\\Microsoft\\Windows\\Network Shortcuts\" -Type ExpandString
+ Set-ItemProperty -Path \"HKCU:\\Software\\Microsoft\\Windows\\CurrentVersion\\Explorer\\User Shell Folders\" -Name \"PrintHood\" -Value \"$env:userprofile\\AppData\\Roaming\\Microsoft\\Windows\\Printer Shortcuts\" -Type ExpandString
+ Set-ItemProperty -Path \"HKCU:\\Software\\Microsoft\\Windows\\CurrentVersion\\Explorer\\User Shell Folders\" -Name \"Programs\" -Value \"$env:userprofile\\AppData\\Roaming\\Microsoft\\Windows\\Start Menu\\Programs\" -Type ExpandString
+ Set-ItemProperty -Path \"HKCU:\\Software\\Microsoft\\Windows\\CurrentVersion\\Explorer\\User Shell Folders\" -Name \"Recent\" -Value \"$env:userprofile\\AppData\\Roaming\\Microsoft\\Windows\\Recent\" -Type ExpandString
+ Set-ItemProperty -Path \"HKCU:\\Software\\Microsoft\\Windows\\CurrentVersion\\Explorer\\User Shell Folders\" -Name \"SendTo\" -Value \"$env:userprofile\\AppData\\Roaming\\Microsoft\\Windows\\SendTo\" -Type ExpandString
+ Set-ItemProperty -Path \"HKCU:\\Software\\Microsoft\\Windows\\CurrentVersion\\Explorer\\User Shell Folders\" -Name \"Start Menu\" -Value \"$env:userprofile\\AppData\\Roaming\\Microsoft\\Windows\\Start Menu\" -Type ExpandString
+ Set-ItemProperty -Path \"HKCU:\\Software\\Microsoft\\Windows\\CurrentVersion\\Explorer\\User Shell Folders\" -Name \"Startup\" -Value \"$env:userprofile\\AppData\\Roaming\\Microsoft\\Windows\\Start Menu\\Programs\\Startup\" -Type ExpandString
+ Set-ItemProperty -Path \"HKCU:\\Software\\Microsoft\\Windows\\CurrentVersion\\Explorer\\User Shell Folders\" -Name \"Templates\" -Value \"$env:userprofile\\AppData\\Roaming\\Microsoft\\Windows\\Templates\" -Type ExpandString
+ Set-ItemProperty -Path \"HKCU:\\Software\\Microsoft\\Windows\\CurrentVersion\\Explorer\\User Shell Folders\" -Name \"{374DE290-123F-4565-9164-39C4925E467B}\" -Value \"$env:userprofile\\Downloads\" -Type ExpandString
+ Set-ItemProperty -Path \"HKCU:\\Software\\Microsoft\\Windows\\CurrentVersion\\Explorer\\User Shell Folders\" -Name \"Desktop\" -Value \"$env:userprofile\\Desktop\" -Type ExpandString
+ Set-ItemProperty -Path \"HKCU:\\Software\\Microsoft\\Windows\\CurrentVersion\\Explorer\\User Shell Folders\" -Name \"My Pictures\" -Value \"$env:userprofile\\Pictures\" -Type ExpandString
+ Set-ItemProperty -Path \"HKCU:\\Software\\Microsoft\\Windows\\CurrentVersion\\Explorer\\User Shell Folders\" -Name \"Personal\" -Value \"$env:userprofile\\Documents\" -Type ExpandString
+ Set-ItemProperty -Path \"HKCU:\\Software\\Microsoft\\Windows\\CurrentVersion\\Explorer\\User Shell Folders\" -Name \"{F42EE2D3-909F-4907-8871-4C22FC0BF756}\" -Value \"$env:userprofile\\Documents\" -Type ExpandString
+ Set-ItemProperty -Path \"HKCU:\\Software\\Microsoft\\Windows\\CurrentVersion\\Explorer\\User Shell Folders\" -Name \"{0DDD015D-B06C-45D5-8C4C-F59713854639}\" -Value \"$env:userprofile\\Pictures\" -Type ExpandString
+ Write-Host \"Restarting explorer\"
+ taskkill.exe /F /IM \"explorer.exe\"
+ Start-Process \"explorer.exe\"
+
+ Write-Host \"Waiting for explorer to complete loading\"
+ Write-Host \"Please Note - The OneDrive folder at $OneDrivePath may still have items in it. You must manually delete it, but all the files should already be copied to the base user folder.\"
+ Write-Host \"If there are Files missing afterwards, please Login to Onedrive.com and Download them manually\" -ForegroundColor Yellow
+ Start-Sleep 5
+ }
+ else{
+ Write-Host \"Something went Wrong during the Unistallation of OneDrive\" -ForegroundColor Red
+ }
"
-
- Write-Host \"Kill OneDrive process\"
- taskkill.exe /F /IM \"OneDrive.exe\"
- taskkill.exe /F /IM \"explorer.exe\"
-
- Write-Host \"Copy all OneDrive to Root UserProfile\"
- Start-Process -FilePath powershell -ArgumentList \"robocopy ''$($env:USERPROFILE.TrimEnd())\\OneDrive'' ''$($env:USERPROFILE.TrimEnd())\\'' /e /xj\" -NoNewWindow -Wait
-
- Write-Host \"Remove OneDrive\"
- Start-Process -FilePath winget -ArgumentList \"uninstall -e --purge --force --silent Microsoft.OneDrive \" -NoNewWindow -Wait
-
- Write-Host \"Removing OneDrive leftovers\"
- Remove-Item -Recurse -Force -ErrorAction SilentlyContinue \"$env:localappdata\\Microsoft\\OneDrive\"
- Remove-Item -Recurse -Force -ErrorAction SilentlyContinue \"$env:localappdata\\OneDrive\"
- Remove-Item -Recurse -Force -ErrorAction SilentlyContinue \"$env:programdata\\Microsoft OneDrive\"
- Remove-Item -Recurse -Force -ErrorAction SilentlyContinue \"$env:systemdrive\\OneDriveTemp\"
- # check if directory is empty before removing:
- If ((Get-ChildItem \"$env:userprofile\\OneDrive\" -Recurse | Measure-Object).Count -eq 0) {
- Remove-Item -Recurse -Force -ErrorAction SilentlyContinue \"$env:userprofile\\OneDrive\"
- }
-
- Write-Host \"Remove Onedrive from explorer sidebar\"
- Set-ItemProperty -Path \"HKCR:\\CLSID\\{018D5C66-4533-4307-9B53-224DE2ED1FE6}\" -Name \"System.IsPinnedToNameSpaceTree\" -Value 0
- Set-ItemProperty -Path \"HKCR:\\Wow6432Node\\CLSID\\{018D5C66-4533-4307-9B53-224DE2ED1FE6}\" -Name \"System.IsPinnedToNameSpaceTree\" -Value 0
-
- Write-Host \"Removing run hook for new users\"
- reg load \"hku\\Default\" \"C:\\Users\\Default\\NTUSER.DAT\"
- reg delete \"HKEY_USERS\\Default\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run\" /v \"OneDriveSetup\" /f
- reg unload \"hku\\Default\"
-
- Write-Host \"Removing startmenu entry\"
- Remove-Item -Force -ErrorAction SilentlyContinue \"$env:userprofile\\AppData\\Roaming\\Microsoft\\Windows\\Start Menu\\Programs\\OneDrive.lnk\"
-
- Write-Host \"Removing scheduled task\"
- Get-ScheduledTask -TaskPath ''\\'' -TaskName ''OneDrive*'' -ea SilentlyContinue | Unregister-ScheduledTask -Confirm:$false
-
- # Add Shell folders restoring default locations
- Write-Host \"Shell Fixing\"
- Set-ItemProperty -Path \"HKCU:\\Software\\Microsoft\\Windows\\CurrentVersion\\Explorer\\User Shell Folders\" -Name \"AppData\" -Value \"$env:userprofile\\AppData\\Roaming\" -Type ExpandString
- Set-ItemProperty -Path \"HKCU:\\Software\\Microsoft\\Windows\\CurrentVersion\\Explorer\\User Shell Folders\" -Name \"Cache\" -Value \"$env:userprofile\\AppData\\Local\\Microsoft\\Windows\\INetCache\" -Type ExpandString
- Set-ItemProperty -Path \"HKCU:\\Software\\Microsoft\\Windows\\CurrentVersion\\Explorer\\User Shell Folders\" -Name \"Cookies\" -Value \"$env:userprofile\\AppData\\Local\\Microsoft\\Windows\\INetCookies\" -Type ExpandString
- Set-ItemProperty -Path \"HKCU:\\Software\\Microsoft\\Windows\\CurrentVersion\\Explorer\\User Shell Folders\" -Name \"Favorites\" -Value \"$env:userprofile\\Favorites\" -Type ExpandString
- Set-ItemProperty -Path \"HKCU:\\Software\\Microsoft\\Windows\\CurrentVersion\\Explorer\\User Shell Folders\" -Name \"History\" -Value \"$env:userprofile\\AppData\\Local\\Microsoft\\Windows\\History\" -Type ExpandString
- Set-ItemProperty -Path \"HKCU:\\Software\\Microsoft\\Windows\\CurrentVersion\\Explorer\\User Shell Folders\" -Name \"Local AppData\" -Value \"$env:userprofile\\AppData\\Local\" -Type ExpandString
- Set-ItemProperty -Path \"HKCU:\\Software\\Microsoft\\Windows\\CurrentVersion\\Explorer\\User Shell Folders\" -Name \"My Music\" -Value \"$env:userprofile\\Music\" -Type ExpandString
- Set-ItemProperty -Path \"HKCU:\\Software\\Microsoft\\Windows\\CurrentVersion\\Explorer\\User Shell Folders\" -Name \"My Video\" -Value \"$env:userprofile\\Videos\" -Type ExpandString
- Set-ItemProperty -Path \"HKCU:\\Software\\Microsoft\\Windows\\CurrentVersion\\Explorer\\User Shell Folders\" -Name \"NetHood\" -Value \"$env:userprofile\\AppData\\Roaming\\Microsoft\\Windows\\Network Shortcuts\" -Type ExpandString
- Set-ItemProperty -Path \"HKCU:\\Software\\Microsoft\\Windows\\CurrentVersion\\Explorer\\User Shell Folders\" -Name \"PrintHood\" -Value \"$env:userprofile\\AppData\\Roaming\\Microsoft\\Windows\\Printer Shortcuts\" -Type ExpandString
- Set-ItemProperty -Path \"HKCU:\\Software\\Microsoft\\Windows\\CurrentVersion\\Explorer\\User Shell Folders\" -Name \"Programs\" -Value \"$env:userprofile\\AppData\\Roaming\\Microsoft\\Windows\\Start Menu\\Programs\" -Type ExpandString
- Set-ItemProperty -Path \"HKCU:\\Software\\Microsoft\\Windows\\CurrentVersion\\Explorer\\User Shell Folders\" -Name \"Recent\" -Value \"$env:userprofile\\AppData\\Roaming\\Microsoft\\Windows\\Recent\" -Type ExpandString
- Set-ItemProperty -Path \"HKCU:\\Software\\Microsoft\\Windows\\CurrentVersion\\Explorer\\User Shell Folders\" -Name \"SendTo\" -Value \"$env:userprofile\\AppData\\Roaming\\Microsoft\\Windows\\SendTo\" -Type ExpandString
- Set-ItemProperty -Path \"HKCU:\\Software\\Microsoft\\Windows\\CurrentVersion\\Explorer\\User Shell Folders\" -Name \"Start Menu\" -Value \"$env:userprofile\\AppData\\Roaming\\Microsoft\\Windows\\Start Menu\" -Type ExpandString
- Set-ItemProperty -Path \"HKCU:\\Software\\Microsoft\\Windows\\CurrentVersion\\Explorer\\User Shell Folders\" -Name \"Startup\" -Value \"$env:userprofile\\AppData\\Roaming\\Microsoft\\Windows\\Start Menu\\Programs\\Startup\" -Type ExpandString
- Set-ItemProperty -Path \"HKCU:\\Software\\Microsoft\\Windows\\CurrentVersion\\Explorer\\User Shell Folders\" -Name \"Templates\" -Value \"$env:userprofile\\AppData\\Roaming\\Microsoft\\Windows\\Templates\" -Type ExpandString
- Set-ItemProperty -Path \"HKCU:\\Software\\Microsoft\\Windows\\CurrentVersion\\Explorer\\User Shell Folders\" -Name \"{374DE290-123F-4565-9164-39C4925E467B}\" -Value \"$env:userprofile\\Downloads\" -Type ExpandString
- Set-ItemProperty -Path \"HKCU:\\Software\\Microsoft\\Windows\\CurrentVersion\\Explorer\\User Shell Folders\" -Name \"Desktop\" -Value \"$env:userprofile\\Desktop\" -Type ExpandString
- Set-ItemProperty -Path \"HKCU:\\Software\\Microsoft\\Windows\\CurrentVersion\\Explorer\\User Shell Folders\" -Name \"My Pictures\" -Value \"$env:userprofile\\Pictures\" -Type ExpandString
- Set-ItemProperty -Path \"HKCU:\\Software\\Microsoft\\Windows\\CurrentVersion\\Explorer\\User Shell Folders\" -Name \"Personal\" -Value \"$env:userprofile\\Documents\" -Type ExpandString
- Set-ItemProperty -Path \"HKCU:\\Software\\Microsoft\\Windows\\CurrentVersion\\Explorer\\User Shell Folders\" -Name \"{F42EE2D3-909F-4907-8871-4C22FC0BF756}\" -Value \"$env:userprofile\\Documents\" -Type ExpandString
- Set-ItemProperty -Path \"HKCU:\\Software\\Microsoft\\Windows\\CurrentVersion\\Explorer\\User Shell Folders\" -Name \"{0DDD015D-B06C-45D5-8C4C-F59713854639}\" -Value \"$env:userprofile\\Pictures\" -Type ExpandString
- Write-Host \"Restarting explorer\"
- Start-Process \"explorer.exe\"
-
- Write-Host \"Waiting for explorer to complete loading\"
- Write-Host \"Please Note - OneDrive folder may still have items in it. You must manually delete it, but all the files should already be copied to the base user folder.\"
- Start-Sleep 5
- "
],
"UndoScript": [
"
@@ -11553,28 +11686,6 @@ $sync.configs.tweaks = '{
}
]
},
- "WPFTweaksEnableipsix": {
- "Content": "Enable IPv6",
- "Description": "Enables IPv6.",
- "category": "z__Advanced Tweaks - CAUTION",
- "panel": "1",
- "Order": "a023_",
- "registry": [
- {
- "Path": "HKLM:\\SYSTEM\\CurrentControlSet\\Services\\Tcpip6\\Parameters",
- "Name": "DisabledComponents",
- "Value": "0",
- "OriginalValue": "0",
- "Type": "DWord"
- }
- ],
- "InvokeScript": [
- "Enable-NetAdapterBinding -Name \"*\" -ComponentID ms_tcpip6"
- ],
- "UndoScript": [
- "Disable-NetAdapterBinding -Name \"*\" -ComponentID ms_tcpip6"
- ]
- },
"WPFToggleDarkMode": {
"Content": "Dark Theme",
"Description": "Enable/Disable Dark Mode.",
@@ -11652,7 +11763,15 @@ $sync.configs.tweaks = '{
"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": "a069_",
+ "Order": "a070_",
+ "Type": "Toggle"
+ },
+ "WPFToggleTaskbarSearch": {
+ "Content": "Taskbar Search",
+ "Description": "If Enabled Search Button will be on the taskbar.",
+ "category": "Customize Preferences",
+ "panel": "2",
+ "Order": "a068_",
"Type": "Toggle"
},
"WPFOOSUbutton": {
@@ -11667,7 +11786,7 @@ $sync.configs.tweaks = '{
"Description": "If Enabled then Widgets Icon in Taskbar will be shown.",
"category": "Customize Preferences",
"panel": "2",
- "Order": "a068_",
+ "Order": "a069_",
"Type": "Toggle"
},
"WPFchangedns": {
@@ -11712,6 +11831,14 @@ $sync.configs.tweaks = '{
"panel": "2",
"Order": "a082_",
"Type": "300"
+ },
+ "WPFToggleTaskView": {
+ "Content": "Task View",
+ "Description": "If Enabled then Task View Icon in Taskbar will be shown.",
+ "category": "Customize Preferences",
+ "panel": "2",
+ "Order": "a069_",
+ "Type": "Toggle"
}
}' | convertfrom-json
$inputXML = '
-
+
@@ -12645,6 +12772,9 @@ $inputXML = '
+
+
+
@@ -12802,9 +12932,6 @@ $inputXML = '
-
-
-
@@ -12880,17 +13007,17 @@ $inputXML = '
-
-
-
-
-
+
+
+
+
+
@@ -13076,6 +13203,9 @@ $inputXML = '
+
+
+
@@ -13088,6 +13218,9 @@ $inputXML = '
+
+
+
@@ -13106,15 +13239,15 @@ $inputXML = '
+
+
+
-
-
-
@@ -13161,6 +13294,9 @@ $inputXML = '
+
+
+
@@ -13182,9 +13318,6 @@ $inputXML = '
-
-
-
@@ -13233,7 +13366,7 @@ $inputXML = '
-
+
@@ -13263,6 +13396,9 @@ $inputXML = '
+
+
+
@@ -13328,15 +13464,15 @@ $inputXML = '
+
+
+
-
-
-
@@ -13484,6 +13620,9 @@ $inputXML = '
+
+
+
@@ -13505,7 +13644,7 @@ $inputXML = '
-
+
@@ -13590,13 +13729,12 @@ $inputXML = '
-
+
-
@@ -13606,7 +13744,7 @@ $inputXML = '
-
+
@@ -13666,10 +13804,18 @@ $inputXML = '
+
+
+
+
+
+
+
+