diff --git a/config/applications.json b/config/applications.json index 63b4e23d..b9b16943 100644 --- a/config/applications.json +++ b/config/applications.json @@ -95,14 +95,6 @@ "link": "https://www.audacityteam.org/", "winget": "Audacity.Audacity" }, - "WPFInstallauthy": { - "category": "Utilities", - "choco": "authy-desktop", - "content": "Authy", - "description": "Simple and cross-platform 2FA app", - "link": "https://authy.com/", - "winget": "Twilio.Authy" - }, "WPFInstallautoruns": { "category": "Microsoft Tools", "choco": "autoruns", @@ -111,6 +103,14 @@ "link": "https://learn.microsoft.com/en-us/sysinternals/downloads/autoruns", "winget": "Microsoft.Sysinternals.Autoruns" }, + "WPFInstallrdcman": { + "category": "Microsoft Tools", + "choco": "rdcman", + "content": "Remote Desktop Connection Manager (RDCMan)", + "description": "RDCMan manages multiple remote desktop connections. It is useful for managing server labs where you need regular access to each machine such as automated checkin systems and data centers.", + "link": "https://learn.microsoft.com/en-us/sysinternals/downloads/rdcman", + "winget": "Microsoft.Sysinternals.RDCMan" + }, "WPFInstallautohotkey": { "category": "Utilities", "choco": "autohotkey", @@ -295,6 +295,14 @@ "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", @@ -1215,6 +1223,14 @@ "link": "https://mremoteng.org/", "winget": "mRemoteNG.mRemoteNG" }, + "WPFInstallmsedgeredirect": { + "category": "Utilities", + "choco": "msedgeredirect", + "content": "MSEdgeRedirect", + "description": "A Tool to Redirect News, Search, Widgets, Weather, and More to Your Default Browser.", + "link": "https://github.com/rcmaehl/MSEdgeRedirect", + "winget": "rcmaehl.MSEdgeRedirect" + }, "WPFInstallmsiafterburner": { "category": "Utilities", "choco": "msiafterburner", @@ -1223,6 +1239,46 @@ "link": "https://www.msi.com/Landing/afterburner", "winget": "Guru3D.Afterburner" }, + "WPFInstallBorderlessGaming": { + "category": "Utilities", + "choco": "na", + "content": "Borderless Gaming", + "description": "Play your favorite games in a borderless window; no more time consuming alt-tabs.", + "link": "https://github.com/Codeusa/Borderless-Gaming", + "winget": "Codeusa.BorderlessGaming" + }, + "WPFInstallEqualizerAPO": { + "category": "Multimedia Tools", + "choco": "equalizerapo", + "content": "Equalizer APO", + "description": "Equalizer APO is a parametric / graphic equalizer for Windows.", + "link": "https://sourceforge.net/projects/equalizerapo", + "winget": "na" + }, + "WPFInstallFreeFileSync": { + "category": "Utilities", + "choco": "freefilesync", + "content": "FreeFileSync", + "description": "Synchronize Files and Folders", + "link": "https://freefilesync.org", + "winget": "na" + }, + "WPFInstallCompactGUI": { + "category": "Utilities", + "choco": "compactgui", + "content": "Compact GUI", + "description": "Transparently compress active games and programs using Windows 10/11 APIs", + "link": "https://github.com/IridiumIO/CompactGUI", + "winget": "IridiumIO.CompactGUI" + }, + "WPFInstallExifCleaner": { + "category": "Utilities", + "choco": "na", + "content": "ExifCleaner", + "description": "Desktop app to clean metadata from images, videos, PDFs, and other files.", + "link": "https://github.com/szTheory/exifcleaner", + "winget": "szTheory.exifcleaner" + }, "WPFInstallmullvadbrowser": { "category": "Browsers", "choco": "na", @@ -1247,6 +1303,14 @@ "link": "https://getmusicbee.com/", "winget": "MusicBee.MusicBee" }, + "WPFInstallmp3tag": { + "category": "Multimedia Tools", + "choco": "mp3tag", + "content": "Mp3tag (Metadata Audio Editor)", + "description": "Mp3tag is a powerful and yet easy-to-use tool to edit metadata of common audio formats.", + "link": "https://www.mp3tag.de/en/", + "winget": "Mp3tag.Mp3tag" + }, "WPFInstallnanazip": { "category": "Utilities", "choco": "nanazip", @@ -1255,6 +1319,14 @@ "link": "https://github.com/M2Team/NanaZip", "winget": "M2Team.NanaZip" }, + "WPFInstallnetbird": { + "category": "Pro Tools", + "choco": "netbird", + "content": "NetBird", + "description": "NetBird is a Open Source alternative comparable to TailScale that can be connected to a selfhosted Server.", + "link": "https://netbird.io/", + "winget": "netbird" + }, "WPFInstallnaps2": { "category": "Document", "choco": "naps2", @@ -1879,14 +1951,6 @@ "link": "https://starship.rs/", "winget": "starship" }, - "WPFInstallstartallback": { - "category": "Utilities", - "choco": "na", - "content": "StartAllBack", - "description": "StartAllBack is a Tool that can be used to edit the Windows appearance by your liking (Taskbar, Start Menu, File Explorer, Control Panel, Context Menu ...)", - "link": "https://www.startallback.com/", - "winget": "startallback" - }, "WPFInstallsteam": { "category": "Games", "choco": "steam-client", @@ -2079,6 +2143,14 @@ "link": "https://www.thunderbird.net/", "winget": "Mozilla.Thunderbird" }, + "WPFInstallbetterbird": { + "category": "Communications", + "choco": "betterbird", + "content": "Betterbird", + "description": "Betterbird is a fork of Mozilla Thunderbird with additional features and bugfixes.", + "link": "https://www.betterbird.eu/", + "winget": "Betterbird.Betterbird" + }, "WPFInstalltidal": { "category": "Multimedia Tools", "choco": "na", @@ -2229,7 +2301,7 @@ "content": "Vivaldi", "description": "Vivaldi is a highly customizable web browser with a focus on user personalization and productivity features.", "link": "https://vivaldi.com/", - "winget": "VivaldiTechnologies.Vivaldi" + "winget": "Vivaldi.Vivaldi" }, "WPFInstallvlc": { "category": "Multimedia Tools", @@ -2287,14 +2359,6 @@ "link": "https://wezfurlong.org/wezterm/index.html", "winget": "wez.wezterm" }, - "WPFInstallwhatsapp": { - "category": "Communications", - "choco": "whatsapp", - "content": "Whatsapp", - "description": "WhatsApp Desktop is a desktop version of the popular messaging app, allowing users to send and receive messages, share files, and connect with contacts from their computer.", - "link": "https://www.whatsapp.com/", - "winget": "WhatsApp.WhatsApp" - }, "WPFInstallwindirstat": { "category": "Utilities", "choco": "windirstat", @@ -2598,5 +2662,37 @@ "description": "get things from one computer to another, safely", "link": "https://github.com/magic-wormhole/magic-wormhole", "winget": "magic-wormhole.magic-wormhole" + }, + "WPFInstalglazewm": { + "category": "Utilities", + "choco": "na", + "content": "GlazeWM", + "description": "GlazeWM is a tiling window manager for Windows inspired by i3 and Polybar", + "link": "https://github.com/glzr-io/glazewm", + "winget": "glzr-io.glazewm" + }, + "WPFInstallfancontrol": { + "category": "Utilities", + "choco": "na", + "content": "FanControl", + "description": "Fan Control is a free and open-source software that allows the user to control his CPU, GPU and case fans using temperatures.", + "link": "https://getfancontrol.com/", + "winget": "Rem0o.FanControl" + }, + "WPFInstallfnm": { + "category": "Development", + "choco": "fnm", + "content": "Fast Node Manager", + "description": "Fast Node Manager (fnm) allows you to switch your Node version by using the Terminal", + "link": "https://github.com/Schniz/fnm", + "winget": "Schniz.fnm" + }, + "WPFInstallWindhawk": { + "category": "Utilities", + "choco": "windhawk", + "content": "Windhawk", + "description": "The customization marketplace for Windows programs", + "link": "https://windhawk.net", + "winget": "RamenSoftware.Windhawk" } } diff --git a/config/tweaks.json b/config/tweaks.json index d1de827d..e260bd3e 100644 --- a/config/tweaks.json +++ b/config/tweaks.json @@ -77,6 +77,60 @@ } ] }, + "WPFTweaksAdobe": { + "Content": "Disable Adobe Services", + "Description": "Disables many of the services that come with Adobe and run in the background.", + "category": "Essential Tweaks", + "panel": "1", + "Order": "a009_", + "service": [ + { + "Name": "AGSService", + "StartupType": "Manual", + "OriginalType": "Automatic" + }, + { + "Name": "AdobeUpdateService", + "StartupType": "Manual", + "OriginalType": "Automatic" + }, + { + "Name": "Adobe Acrobat Update", + "StartupType": "Manual", + "OriginalType": "Automatic" + }, + { + "Name": "Adobe Genuine Monitor Service", + "StartupType": "Manual", + "OriginalType": "Automatic" + }, + { + "Name": "AdobeARMservice", + "StartupType": "Manual", + "OriginalType": "Automatic" + }, + { + "Name": "Adobe Licensing Console", + "StartupType": "Manual", + "OriginalType": "Automatic" + }, + { + "Name": "CCXProcess", + "StartupType": "Manual", + "OriginalType": "Automatic" + }, + { + "Name": "AdobeIPCBroker", + "StartupType": "Manual", + "OriginalType": "Automatic" + }, + { + "Name": "CoreSync", + "StartupType": "Manual", + "OriginalType": "Automatic" + } + ] + }, "WPFTweaksLoc": { "Content": "Disable Location Tracking", "Description": "Disables Location Tracking...DUH!", @@ -1872,27 +1926,6 @@ "Value": "1", "Type": "DWord" }, - { - "Path": "HKLM:\\SOFTWARE\\Microsoft\\Windows NT\\CurrentVersion\\Multimedia\\SystemProfile\\Tasks\\Games", - "OriginalValue": "1", - "Name": "GPU Priority", - "Value": "8", - "Type": "DWord" - }, - { - "Path": "HKLM:\\SOFTWARE\\Microsoft\\Windows NT\\CurrentVersion\\Multimedia\\SystemProfile\\Tasks\\Games", - "OriginalValue": "1", - "Name": "Priority", - "Value": "6", - "Type": "DWord" - }, - { - "Path": "HKLM:\\SOFTWARE\\Microsoft\\Windows NT\\CurrentVersion\\Multimedia\\SystemProfile\\Tasks\\Games", - "OriginalValue": "High", - "Name": "Scheduling Category", - "Value": "High", - "Type": "String" - }, { "Path": "HKCU:\\Software\\Microsoft\\Windows\\CurrentVersion\\UserProfileEngagement", "OriginalValue": "1", @@ -2323,6 +2356,25 @@ " ] }, + "WPFTweaksRemoveCopilot": { + "Content": "Disables Microsoft Copilot", + "Description": "Disables MS Copilot AI built into Windows since 23H2.", + "category": "z__Advanced Tweaks - CAUTION", + "panel": "1", + "Order": "a025_", + "InvokeScript": [ + " + Set-ItemProperty -Path \"HKCU:\\Software\\Microsoft\\Windows\\CurrentVersion\\Explorer\\Advanced\" -Name \"ShowCopilotButton\" -Type \"DWord\" -Value \"0\" + New-Item \"HKCU:\\SOFTWARE\\Policies\\Microsoft\\Windows\\WindowsCopilot\" -Force | New-ItemProperty -Name \"TurnOffWindowsCopilot\" -Value \"1\" -Force -Type \"DWord\" + " + ], + "UndoScript": [ + " + Set-ItemProperty -Path \"HKCU:\\Software\\Microsoft\\Windows\\CurrentVersion\\Explorer\\Advanced\" -Name \"ShowCopilotButton\" -Type \"DWord\" -Value \"1\" + Remove-Item \"HKCU:\\SOFTWARE\\Policies\\Microsoft\\Windows\\WindowsCopilot\" -Force + " + ] + }, "WPFTweaksRemoveOnedrive": { "Content": "Remove OneDrive", "Description": "Copies OneDrive files to Default Home Folders and Uninstalls it.", diff --git a/functions/private/Test-WinUtilPackageManager.ps1 b/functions/private/Test-WinUtilPackageManager.ps1 index ca269fc3..291616b2 100644 --- a/functions/private/Test-WinUtilPackageManager.ps1 +++ b/functions/private/Test-WinUtilPackageManager.ps1 @@ -20,13 +20,22 @@ function Test-WinUtilPackageManager { $status = "not-installed" if ($winget) { - # Install Winget if not detected - $wingetExists = Get-Command -Name winget -ErrorAction SilentlyContinue - - if ($wingetExists) { - # Check Winget Version - $wingetVersionFull = (winget --version) # Full Version without 'v'. + # Check if Winget is available while getting it's Version if it's available + $wingetExists = $true + try { + $wingetVersionFull = winget --version + } catch [System.Management.Automation.CommandNotFoundException], [System.Management.Automation.ApplicationFailedException] { + Write-Warning "Winget was not found due to un-availablity reasons" + $wingetExists = $false + } catch { + Write-Warning "Winget was not found due to un-known reasons, The Stack Trace is:`n$($psitem.Exception.StackTrace)" + $wingetExists = $false + } + # If Winget is available, Parse it's Version and give proper information to Terminal Output. + # If it isn't available, the return of this funtion will be "not-installed", indicating that + # Winget isn't installed/available on The System. + if ($wingetExists) { # Check if Preview Version if ($wingetVersionFull.Contains("-preview")) { $wingetVersion = $wingetVersionFull.Trim("-preview") diff --git a/functions/public/Invoke-WPFMicrowin.ps1 b/functions/public/Invoke-WPFMicrowin.ps1 index 89d15872..564a836a 100644 --- a/functions/public/Invoke-WPFMicrowin.ps1 +++ b/functions/public/Invoke-WPFMicrowin.ps1 @@ -53,6 +53,7 @@ public class PowerManagement { $keepEdge = $sync.WPFMicrowinKeepEdge.IsChecked $copyToUSB = $sync.WPFMicrowinCopyToUsb.IsChecked $injectDrivers = $sync.MicrowinInjectDrivers.IsChecked + $importDrivers = $sync.MicrowinImportDrivers.IsChecked $mountDir = $sync.MicrowinMountDir.Text $scratchDir = $sync.MicrowinScratchDir.Text @@ -111,13 +112,54 @@ public class PowerManagement { return } + if ($importDrivers) + { + Write-Host "Exporting drivers from active installation..." + if (Test-Path "$env:TEMP\DRV_EXPORT") + { + Remove-Item "$env:TEMP\DRV_EXPORT" -Recurse -Force + } + if (($injectDrivers -and (Test-Path $sync.MicrowinDriverLocation.Text))) + { + Write-Host "Using specified driver source..." + dism /english /online /export-driver /destination="$($sync.MicrowinDriverLocation.Text)" | Out-Host + if ($?) + { + # Don't add exported drivers yet, that is run later + Write-Host "Drivers have been exported successfully." + } + else + { + Write-Host "Failed to export drivers." + } + } + else + { + New-Item -Path "$env:TEMP\DRV_EXPORT" -ItemType Directory -Force + dism /english /online /export-driver /destination="$env:TEMP\DRV_EXPORT" | Out-Host + if ($?) + { + Write-Host "Adding exported drivers..." + dism /english /image="$scratchDir" /add-driver /driver="$env:TEMP\DRV_EXPORT" /recurse | Out-Host + } + else + { + Write-Host "Failed to export drivers. Continuing without importing them..." + } + if (Test-Path "$env:TEMP\DRV_EXPORT") + { + Remove-Item "$env:TEMP\DRV_EXPORT" -Recurse -Force + } + } + } + if ($injectDrivers) { $driverPath = $sync.MicrowinDriverLocation.Text if (Test-Path $driverPath) { Write-Host "Adding Windows Drivers image($scratchDir) drivers($driverPath) " - Add-WindowsDriver -Path "$scratchDir" -Recurse -Driver "$driverPath" + dism /English /image:$scratchDir /add-driver /driver:$driverPath /recurse | Out-Host } else { @@ -335,7 +377,7 @@ public class PowerManagement { if (Test-Path $driverPath) { Write-Host "Adding Windows Drivers image($scratchDir) drivers($driverPath) " - Add-WindowsDriver -Path "$scratchDir" -Driver "$driverPath" -Recurse + dism /English /image:$scratchDir /add-driver /driver:$driverPath /recurse | Out-Host } else { diff --git a/functions/public/Invoke-WPFShortcut.ps1 b/functions/public/Invoke-WPFShortcut.ps1 index 4eab2dc6..f8ae04f9 100644 --- a/functions/public/Invoke-WPFShortcut.ps1 +++ b/functions/public/Invoke-WPFShortcut.ps1 @@ -17,27 +17,35 @@ function Invoke-WPFShortcut { [bool]$RunAsAdmin = $false ) - $iconPath = $null - Switch ($ShortcutToAdd) { - "WinUtil" { - $SourceExe = "$env:SystemRoot\System32\WindowsPowerShell\v1.0\powershell.exe" - $IRM = 'irm https://christitus.com/win | iex' - $Powershell = '-ExecutionPolicy Bypass -Command "Start-Process powershell.exe -verb runas -ArgumentList' - $ArgumentsToSourceExe = "$powershell '$IRM'" - $DestinationName = "WinUtil.lnk" + # Preper the Shortcut Fields and add an a Custom Icon if it's available at "$env:TEMP\cttlogo.png", else don't add a Custom Icon. + $iconPath = $null + Switch ($ShortcutToAdd) { + "WinUtil" { + $SourceExe = "$env:SystemRoot\System32\WindowsPowerShell\v1.0\powershell.exe" + $IRM = 'irm https://christitus.com/win | iex' + $Powershell = '-ExecutionPolicy Bypass -Command "Start-Process powershell.exe -verb runas -ArgumentList' + $ArgumentsToSourceExe = "$powershell '$IRM'" + $DestinationName = "WinUtil.lnk" - if (Test-Path -Path "$env:TEMP\cttlogo.png") { - $iconPath = "$env:SystempRoot\cttlogo.ico" - ConvertTo-Icon -bitmapPath "$env:TEMP\cttlogo.png" -iconPath $iconPath - } + if (Test-Path -Path "$env:TEMP\cttlogo.png") { + $iconPath = "$env:SystempRoot\cttlogo.ico" + ConvertTo-Icon -bitmapPath "$env:TEMP\cttlogo.png" -iconPath $iconPath } } + } + # Show a File Dialog Browser, to let the User choose the Name and Location of where to save the Shortcut $FileBrowser = New-Object System.Windows.Forms.SaveFileDialog $FileBrowser.InitialDirectory = [Environment]::GetFolderPath('Desktop') $FileBrowser.Filter = "Shortcut Files (*.lnk)|*.lnk" $FileBrowser.FileName = $DestinationName - $FileBrowser.ShowDialog() | Out-Null + + # Do an Early Return if The Save Shortcut operation was cancel by User's Input. + $FileBrowserResult = $FileBrowser.ShowDialog() + $DialogResultEnum = New-Object System.Windows.Forms.DialogResult + if (-not ($FileBrowserResult -eq $DialogResultEnum::OK)) { + return + } $WshShell = New-Object -comObject WScript.Shell $Shortcut = $WshShell.CreateShortcut($FileBrowser.FileName) @@ -56,4 +64,4 @@ function Invoke-WPFShortcut { } Write-Host "Shortcut for $ShortcutToAdd has been saved to $($FileBrowser.FileName) with 'Run as administrator' set to $RunAsAdmin" -} \ No newline at end of file +} diff --git a/winutil.ps1 b/winutil.ps1 index a0da66a9..f225bbfe 100644 --- a/winutil.ps1 +++ b/winutil.ps1 @@ -10,7 +10,7 @@ Author : Chris Titus @christitustech Runspace Author: @DeveloperDurp GitHub : https://github.com/ChrisTitusTech - Version : 24.05.10 + #> param ( [switch]$Debug, @@ -2646,13 +2646,22 @@ function Test-WinUtilPackageManager { $status = "not-installed" if ($winget) { - # Install Winget if not detected - $wingetExists = Get-Command -Name winget -ErrorAction SilentlyContinue - - if ($wingetExists) { - # Check Winget Version - $wingetVersionFull = (winget --version) # Full Version without 'v'. + # Check if Winget is available while getting it's Version if it's available + $wingetExists = $true + try { + $wingetVersionFull = winget --version + } catch [System.Management.Automation.CommandNotFoundException], [System.Management.Automation.ApplicationFailedException] { + Write-Warning "Winget was not found due to un-availablity reasons" + $wingetExists = $false + } catch { + Write-Warning "Winget was not found due to un-known reasons, The Stack Trace is:`n$($psitem.Exception.StackTrace)" + $wingetExists = $false + } + # If Winget is available, Parse it's Version and give proper information to Terminal Output. + # If it isn't available, the return of this funtion will be "not-installed", indicating that + # Winget isn't installed/available on The System. + if ($wingetExists) { # Check if Preview Version if ($wingetVersionFull.Contains("-preview")) { $wingetVersion = $wingetVersionFull.Trim("-preview") @@ -3731,6 +3740,7 @@ public class PowerManagement { $keepEdge = $sync.WPFMicrowinKeepEdge.IsChecked $copyToUSB = $sync.WPFMicrowinCopyToUsb.IsChecked $injectDrivers = $sync.MicrowinInjectDrivers.IsChecked + $importDrivers = $sync.MicrowinImportDrivers.IsChecked $mountDir = $sync.MicrowinMountDir.Text $scratchDir = $sync.MicrowinScratchDir.Text @@ -3789,13 +3799,54 @@ public class PowerManagement { return } + if ($importDrivers) + { + Write-Host "Exporting drivers from active installation..." + if (Test-Path "$env:TEMP\DRV_EXPORT") + { + Remove-Item "$env:TEMP\DRV_EXPORT" -Recurse -Force + } + if (($injectDrivers -and (Test-Path $sync.MicrowinDriverLocation.Text))) + { + Write-Host "Using specified driver source..." + dism /english /online /export-driver /destination="$($sync.MicrowinDriverLocation.Text)" | Out-Host + if ($?) + { + # Don't add exported drivers yet, that is run later + Write-Host "Drivers have been exported successfully." + } + else + { + Write-Host "Failed to export drivers." + } + } + else + { + New-Item -Path "$env:TEMP\DRV_EXPORT" -ItemType Directory -Force + dism /english /online /export-driver /destination="$env:TEMP\DRV_EXPORT" | Out-Host + if ($?) + { + Write-Host "Adding exported drivers..." + dism /english /image="$scratchDir" /add-driver /driver="$env:TEMP\DRV_EXPORT" /recurse | Out-Host + } + else + { + Write-Host "Failed to export drivers. Continuing without importing them..." + } + if (Test-Path "$env:TEMP\DRV_EXPORT") + { + Remove-Item "$env:TEMP\DRV_EXPORT" -Recurse -Force + } + } + } + if ($injectDrivers) { $driverPath = $sync.MicrowinDriverLocation.Text if (Test-Path $driverPath) { Write-Host "Adding Windows Drivers image($scratchDir) drivers($driverPath) " - Add-WindowsDriver -Path "$scratchDir" -Recurse -Driver "$driverPath" + dism /English /image:$scratchDir /add-driver /driver:$driverPath /recurse | Out-Host } else { @@ -4013,7 +4064,7 @@ public class PowerManagement { if (Test-Path $driverPath) { Write-Host "Adding Windows Drivers image($scratchDir) drivers($driverPath) " - Add-WindowsDriver -Path "$scratchDir" -Driver "$driverPath" -Recurse + dism /English /image:$scratchDir /add-driver /driver:$driverPath /recurse | Out-Host } else { @@ -4356,27 +4407,35 @@ function Invoke-WPFShortcut { [bool]$RunAsAdmin = $false ) - $iconPath = $null - Switch ($ShortcutToAdd) { - "WinUtil" { - $SourceExe = "$env:SystemRoot\System32\WindowsPowerShell\v1.0\powershell.exe" - $IRM = 'irm https://christitus.com/win | iex' - $Powershell = '-ExecutionPolicy Bypass -Command "Start-Process powershell.exe -verb runas -ArgumentList' - $ArgumentsToSourceExe = "$powershell '$IRM'" - $DestinationName = "WinUtil.lnk" + # Preper the Shortcut Fields and add an a Custom Icon if it's available at "$env:TEMP\cttlogo.png", else don't add a Custom Icon. + $iconPath = $null + Switch ($ShortcutToAdd) { + "WinUtil" { + $SourceExe = "$env:SystemRoot\System32\WindowsPowerShell\v1.0\powershell.exe" + $IRM = 'irm https://christitus.com/win | iex' + $Powershell = '-ExecutionPolicy Bypass -Command "Start-Process powershell.exe -verb runas -ArgumentList' + $ArgumentsToSourceExe = "$powershell '$IRM'" + $DestinationName = "WinUtil.lnk" - if (Test-Path -Path "$env:TEMP\cttlogo.png") { - $iconPath = "$env:SystempRoot\cttlogo.ico" - ConvertTo-Icon -bitmapPath "$env:TEMP\cttlogo.png" -iconPath $iconPath - } + if (Test-Path -Path "$env:TEMP\cttlogo.png") { + $iconPath = "$env:SystempRoot\cttlogo.ico" + ConvertTo-Icon -bitmapPath "$env:TEMP\cttlogo.png" -iconPath $iconPath } } + } + # Show a File Dialog Browser, to let the User choose the Name and Location of where to save the Shortcut $FileBrowser = New-Object System.Windows.Forms.SaveFileDialog $FileBrowser.InitialDirectory = [Environment]::GetFolderPath('Desktop') $FileBrowser.Filter = "Shortcut Files (*.lnk)|*.lnk" $FileBrowser.FileName = $DestinationName - $FileBrowser.ShowDialog() | Out-Null + + # Do an Early Return if The Save Shortcut operation was cancel by User's Input. + $FileBrowserResult = $FileBrowser.ShowDialog() + $DialogResultEnum = New-Object System.Windows.Forms.DialogResult + if (-not ($FileBrowserResult -eq $DialogResultEnum::OK)) { + return + } $WshShell = New-Object -comObject WScript.Shell $Shortcut = $WshShell.CreateShortcut($FileBrowser.FileName) @@ -5072,14 +5131,6 @@ $sync.configs.applications = '{ "link": "https://www.audacityteam.org/", "winget": "Audacity.Audacity" }, - "WPFInstallauthy": { - "category": "Utilities", - "choco": "authy-desktop", - "content": "Authy", - "description": "Simple and cross-platform 2FA app", - "link": "https://authy.com/", - "winget": "Twilio.Authy" - }, "WPFInstallautoruns": { "category": "Microsoft Tools", "choco": "autoruns", @@ -5088,6 +5139,14 @@ $sync.configs.applications = '{ "link": "https://learn.microsoft.com/en-us/sysinternals/downloads/autoruns", "winget": "Microsoft.Sysinternals.Autoruns" }, + "WPFInstallrdcman": { + "category": "Microsoft Tools", + "choco": "rdcman", + "content": "Remote Desktop Connection Manager (RDCMan)", + "description": "RDCMan manages multiple remote desktop connections. It is useful for managing server labs where you need regular access to each machine such as automated checkin systems and data centers.", + "link": "https://learn.microsoft.com/en-us/sysinternals/downloads/rdcman", + "winget": "Microsoft.Sysinternals.RDCMan" + }, "WPFInstallautohotkey": { "category": "Utilities", "choco": "autohotkey", @@ -5272,6 +5331,14 @@ $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", @@ -6192,6 +6259,14 @@ $sync.configs.applications = '{ "link": "https://mremoteng.org/", "winget": "mRemoteNG.mRemoteNG" }, + "WPFInstallmsedgeredirect": { + "category": "Utilities", + "choco": "msedgeredirect", + "content": "MSEdgeRedirect", + "description": "A Tool to Redirect News, Search, Widgets, Weather, and More to Your Default Browser.", + "link": "https://github.com/rcmaehl/MSEdgeRedirect", + "winget": "rcmaehl.MSEdgeRedirect" + }, "WPFInstallmsiafterburner": { "category": "Utilities", "choco": "msiafterburner", @@ -6200,6 +6275,46 @@ $sync.configs.applications = '{ "link": "https://www.msi.com/Landing/afterburner", "winget": "Guru3D.Afterburner" }, + "WPFInstallBorderlessGaming": { + "category": "Utilities", + "choco": "na", + "content": "Borderless Gaming", + "description": "Play your favorite games in a borderless window; no more time consuming alt-tabs.", + "link": "https://github.com/Codeusa/Borderless-Gaming", + "winget": "Codeusa.BorderlessGaming" + }, + "WPFInstallEqualizerAPO": { + "category": "Multimedia Tools", + "choco": "equalizerapo", + "content": "Equalizer APO", + "description": "Equalizer APO is a parametric / graphic equalizer for Windows.", + "link": "https://sourceforge.net/projects/equalizerapo", + "winget": "na" + }, + "WPFInstallFreeFileSync": { + "category": "Utilities", + "choco": "freefilesync", + "content": "FreeFileSync", + "description": "Synchronize Files and Folders", + "link": "https://freefilesync.org", + "winget": "na" + }, + "WPFInstallCompactGUI": { + "category": "Utilities", + "choco": "compactgui", + "content": "Compact GUI", + "description": "Transparently compress active games and programs using Windows 10/11 APIs", + "link": "https://github.com/IridiumIO/CompactGUI", + "winget": "IridiumIO.CompactGUI" + }, + "WPFInstallExifCleaner": { + "category": "Utilities", + "choco": "na", + "content": "ExifCleaner", + "description": "Desktop app to clean metadata from images, videos, PDFs, and other files.", + "link": "https://github.com/szTheory/exifcleaner", + "winget": "szTheory.exifcleaner" + }, "WPFInstallmullvadbrowser": { "category": "Browsers", "choco": "na", @@ -6224,6 +6339,14 @@ $sync.configs.applications = '{ "link": "https://getmusicbee.com/", "winget": "MusicBee.MusicBee" }, + "WPFInstallmp3tag": { + "category": "Multimedia Tools", + "choco": "mp3tag", + "content": "Mp3tag (Metadata Audio Editor)", + "description": "Mp3tag is a powerful and yet easy-to-use tool to edit metadata of common audio formats.", + "link": "https://www.mp3tag.de/en/", + "winget": "Mp3tag.Mp3tag" + }, "WPFInstallnanazip": { "category": "Utilities", "choco": "nanazip", @@ -6232,6 +6355,14 @@ $sync.configs.applications = '{ "link": "https://github.com/M2Team/NanaZip", "winget": "M2Team.NanaZip" }, + "WPFInstallnetbird": { + "category": "Pro Tools", + "choco": "netbird", + "content": "NetBird", + "description": "NetBird is a Open Source alternative comparable to TailScale that can be connected to a selfhosted Server.", + "link": "https://netbird.io/", + "winget": "netbird" + }, "WPFInstallnaps2": { "category": "Document", "choco": "naps2", @@ -6856,14 +6987,6 @@ $sync.configs.applications = '{ "link": "https://starship.rs/", "winget": "starship" }, - "WPFInstallstartallback": { - "category": "Utilities", - "choco": "na", - "content": "StartAllBack", - "description": "StartAllBack is a Tool that can be used to edit the Windows appearance by your liking (Taskbar, Start Menu, File Explorer, Control Panel, Context Menu ...)", - "link": "https://www.startallback.com/", - "winget": "startallback" - }, "WPFInstallsteam": { "category": "Games", "choco": "steam-client", @@ -7056,6 +7179,14 @@ $sync.configs.applications = '{ "link": "https://www.thunderbird.net/", "winget": "Mozilla.Thunderbird" }, + "WPFInstallbetterbird": { + "category": "Communications", + "choco": "betterbird", + "content": "Betterbird", + "description": "Betterbird is a fork of Mozilla Thunderbird with additional features and bugfixes.", + "link": "https://www.betterbird.eu/", + "winget": "Betterbird.Betterbird" + }, "WPFInstalltidal": { "category": "Multimedia Tools", "choco": "na", @@ -7206,7 +7337,7 @@ $sync.configs.applications = '{ "content": "Vivaldi", "description": "Vivaldi is a highly customizable web browser with a focus on user personalization and productivity features.", "link": "https://vivaldi.com/", - "winget": "VivaldiTechnologies.Vivaldi" + "winget": "Vivaldi.Vivaldi" }, "WPFInstallvlc": { "category": "Multimedia Tools", @@ -7264,14 +7395,6 @@ $sync.configs.applications = '{ "link": "https://wezfurlong.org/wezterm/index.html", "winget": "wez.wezterm" }, - "WPFInstallwhatsapp": { - "category": "Communications", - "choco": "whatsapp", - "content": "Whatsapp", - "description": "WhatsApp Desktop is a desktop version of the popular messaging app, allowing users to send and receive messages, share files, and connect with contacts from their computer.", - "link": "https://www.whatsapp.com/", - "winget": "WhatsApp.WhatsApp" - }, "WPFInstallwindirstat": { "category": "Utilities", "choco": "windirstat", @@ -7575,6 +7698,38 @@ $sync.configs.applications = '{ "description": "get things from one computer to another, safely", "link": "https://github.com/magic-wormhole/magic-wormhole", "winget": "magic-wormhole.magic-wormhole" + }, + "WPFInstalglazewm": { + "category": "Utilities", + "choco": "na", + "content": "GlazeWM", + "description": "GlazeWM is a tiling window manager for Windows inspired by i3 and Polybar", + "link": "https://github.com/glzr-io/glazewm", + "winget": "glzr-io.glazewm" + }, + "WPFInstallfancontrol": { + "category": "Utilities", + "choco": "na", + "content": "FanControl", + "description": "Fan Control is a free and open-source software that allows the user to control his CPU, GPU and case fans using temperatures.", + "link": "https://getfancontrol.com/", + "winget": "Rem0o.FanControl" + }, + "WPFInstallfnm": { + "category": "Development", + "choco": "fnm", + "content": "Fast Node Manager", + "description": "Fast Node Manager (fnm) allows you to switch your Node version by using the Terminal", + "link": "https://github.com/Schniz/fnm", + "winget": "Schniz.fnm" + }, + "WPFInstallWindhawk": { + "category": "Utilities", + "choco": "windhawk", + "content": "Windhawk", + "description": "The customization marketplace for Windows programs", + "link": "https://windhawk.net", + "winget": "RamenSoftware.Windhawk" } }' | convertfrom-json $sync.configs.dns = '{ @@ -8074,6 +8229,60 @@ $sync.configs.tweaks = '{ } ] }, + "WPFTweaksAdobe": { + "Content": "Disable Adobe Services", + "Description": "Disables many of the services that come with Adobe and run in the background.", + "category": "Essential Tweaks", + "panel": "1", + "Order": "a009_", + "service": [ + { + "Name": "AGSService", + "StartupType": "Manual", + "OriginalType": "Automatic" + }, + { + "Name": "AdobeUpdateService", + "StartupType": "Manual", + "OriginalType": "Automatic" + }, + { + "Name": "Adobe Acrobat Update", + "StartupType": "Manual", + "OriginalType": "Automatic" + }, + { + "Name": "Adobe Genuine Monitor Service", + "StartupType": "Manual", + "OriginalType": "Automatic" + }, + { + "Name": "AdobeARMservice", + "StartupType": "Manual", + "OriginalType": "Automatic" + }, + { + "Name": "Adobe Licensing Console", + "StartupType": "Manual", + "OriginalType": "Automatic" + }, + { + "Name": "CCXProcess", + "StartupType": "Manual", + "OriginalType": "Automatic" + }, + { + "Name": "AdobeIPCBroker", + "StartupType": "Manual", + "OriginalType": "Automatic" + }, + { + "Name": "CoreSync", + "StartupType": "Manual", + "OriginalType": "Automatic" + } + ] + }, "WPFTweaksLoc": { "Content": "Disable Location Tracking", "Description": "Disables Location Tracking...DUH!", @@ -9869,27 +10078,6 @@ $sync.configs.tweaks = '{ "Value": "1", "Type": "DWord" }, - { - "Path": "HKLM:\\SOFTWARE\\Microsoft\\Windows NT\\CurrentVersion\\Multimedia\\SystemProfile\\Tasks\\Games", - "OriginalValue": "1", - "Name": "GPU Priority", - "Value": "8", - "Type": "DWord" - }, - { - "Path": "HKLM:\\SOFTWARE\\Microsoft\\Windows NT\\CurrentVersion\\Multimedia\\SystemProfile\\Tasks\\Games", - "OriginalValue": "1", - "Name": "Priority", - "Value": "6", - "Type": "DWord" - }, - { - "Path": "HKLM:\\SOFTWARE\\Microsoft\\Windows NT\\CurrentVersion\\Multimedia\\SystemProfile\\Tasks\\Games", - "OriginalValue": "High", - "Name": "Scheduling Category", - "Value": "High", - "Type": "String" - }, { "Path": "HKCU:\\Software\\Microsoft\\Windows\\CurrentVersion\\UserProfileEngagement", "OriginalValue": "1", @@ -10320,6 +10508,25 @@ $sync.configs.tweaks = '{ " ] }, + "WPFTweaksRemoveCopilot": { + "Content": "Disables Microsoft Copilot", + "Description": "Disables MS Copilot AI built into Windows since 23H2.", + "category": "z__Advanced Tweaks - CAUTION", + "panel": "1", + "Order": "a025_", + "InvokeScript": [ + " + Set-ItemProperty -Path \"HKCU:\\Software\\Microsoft\\Windows\\CurrentVersion\\Explorer\\Advanced\" -Name \"ShowCopilotButton\" -Type \"DWord\" -Value \"0\" + New-Item \"HKCU:\\SOFTWARE\\Policies\\Microsoft\\Windows\\WindowsCopilot\" -Force | New-ItemProperty -Name \"TurnOffWindowsCopilot\" -Value \"1\" -Force -Type \"DWord\" + " + ], + "UndoScript": [ + " + Set-ItemProperty -Path \"HKCU:\\Software\\Microsoft\\Windows\\CurrentVersion\\Explorer\\Advanced\" -Name \"ShowCopilotButton\" -Type \"DWord\" -Value \"1\" + Remove-Item \"HKCU:\\SOFTWARE\\Policies\\Microsoft\\Windows\\WindowsCopilot\" -Force + " + ] + }, "WPFTweaksRemoveOnedrive": { "Content": "Remove OneDrive", "Description": "Copies OneDrive files to Default Home Folders and Uninstalls it.", @@ -11474,6 +11681,9 @@ $inputXML = '