From 376a2205cd600d22b34102be6e756f82407e171e Mon Sep 17 00:00:00 2001 From: "Mr.k" Date: Tue, 23 Apr 2024 00:16:48 +0300 Subject: [PATCH 001/106] Several Additions to 'applications.json' File (#1865) * Add 'ditto' App to 'applications.json' File * Add 'rdcman' App to 'applications.json' File * Add 'mp3tag' App to 'applications.json' File * Add 'fan control' App to 'applications.json' File --- config/applications.json | 32 ++++++++++++++++++++++++++++++++ 1 file changed, 32 insertions(+) diff --git a/config/applications.json b/config/applications.json index c65f1906..836b3272 100644 --- a/config/applications.json +++ b/config/applications.json @@ -111,6 +111,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 +303,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", @@ -1247,6 +1263,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", @@ -2590,5 +2614,13 @@ "description": "get things from one computer to another, safely", "link": "https://github.com/magic-wormhole/magic-wormhole", "winget": "magic-wormhole.magic-wormhole" + }, + "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" } } From 2eb9e4ea0aad16f0d10618677cf46fd6c69234be Mon Sep 17 00:00:00 2001 From: ChrisTitusTech Date: Mon, 22 Apr 2024 21:17:09 +0000 Subject: [PATCH 002/106] Compile Winutil --- winutil.ps1 | 70 +++++++++++++++++++++++++++++++++++++--------- xaml/inputApp.xaml | 34 ++++++++++++++-------- 2 files changed, 80 insertions(+), 24 deletions(-) diff --git a/winutil.ps1 b/winutil.ps1 index ad6a4c04..b9e1f0af 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.04.21 + Version : 24.04.22 #> param ( [switch]$Debug, @@ -47,7 +47,7 @@ Add-Type -AssemblyName System.Windows.Forms # Variable to sync between runspaces $sync = [Hashtable]::Synchronized(@{}) $sync.PSScriptRoot = $PSScriptRoot -$sync.version = "24.04.21" +$sync.version = "24.04.22" $sync.configs = @{} $sync.ProcessRunning = $false @@ -5074,6 +5074,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", @@ -5258,6 +5266,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", @@ -6210,6 +6226,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", @@ -7553,6 +7577,14 @@ $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" + }, + "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" } }' | convertfrom-json $sync.configs.dns = '{ @@ -11599,15 +11631,15 @@ $inputXML = ' + + + - - - @@ -11798,17 +11830,17 @@ $inputXML = ' - - - - - + + + + + @@ -11856,6 +11888,9 @@ $inputXML = ' + + + @@ -11956,6 +11991,9 @@ $inputXML = ' + + + @@ -12003,15 +12041,15 @@ $inputXML = ' + + + - - - + + + @@ -12152,6 +12193,9 @@ $inputXML = ' + + + diff --git a/xaml/inputApp.xaml b/xaml/inputApp.xaml index 69a1dbe7..cb010799 100644 --- a/xaml/inputApp.xaml +++ b/xaml/inputApp.xaml @@ -202,15 +202,15 @@ + + + - - - @@ -401,17 +401,17 @@ - - - - - + + + + + @@ -459,6 +459,9 @@ + + + @@ -559,6 +562,9 @@ + + + @@ -606,15 +612,15 @@ + + + - - - + + + @@ -755,6 +764,9 @@ + + + From 9e3faced80f84d8006e0656ff4ad0cd77a1f4790 Mon Sep 17 00:00:00 2001 From: "Mr.k" Date: Thu, 25 Apr 2024 19:14:15 +0300 Subject: [PATCH 003/106] Add 'betterbird' App to 'applications.json' File (#1876) --- config/applications.json | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/config/applications.json b/config/applications.json index 836b3272..50c8657e 100644 --- a/config/applications.json +++ b/config/applications.json @@ -2095,6 +2095,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", From f8c3fda0e70cb45d722149abf9f624edd1603603 Mon Sep 17 00:00:00 2001 From: ChrisTitusTech Date: Thu, 25 Apr 2024 16:14:41 +0000 Subject: [PATCH 004/106] Compile Winutil --- winutil.ps1 | 39 +++++++++++++++++++++++++-------------- xaml/inputApp.xaml | 27 +++++++++++++++------------ 2 files changed, 40 insertions(+), 26 deletions(-) diff --git a/winutil.ps1 b/winutil.ps1 index b9e1f0af..5fec0345 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.04.22 + Version : 24.04.25 #> param ( [switch]$Debug, @@ -47,7 +47,7 @@ Add-Type -AssemblyName System.Windows.Forms # Variable to sync between runspaces $sync = [Hashtable]::Synchronized(@{}) $sync.PSScriptRoot = $PSScriptRoot -$sync.version = "24.04.22" +$sync.version = "24.04.25" $sync.configs = @{} $sync.ProcessRunning = $false @@ -7058,6 +7058,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", @@ -11484,6 +11492,9 @@ $inputXML = ' + + + @@ -11833,15 +11844,15 @@ $inputXML = ' - - - + + + - - - + + + - - - + + + diff --git a/xaml/inputApp.xaml b/xaml/inputApp.xaml index cb010799..25bce084 100644 --- a/xaml/inputApp.xaml +++ b/xaml/inputApp.xaml @@ -55,6 +55,9 @@ + + + @@ -404,15 +407,15 @@ - - - + + + + + + + + + From 959c85f57b932545bd9586e78226ebdc93dea178 Mon Sep 17 00:00:00 2001 From: Melloni <66322451+MelloniDev@users.noreply.github.com> Date: Thu, 25 Apr 2024 18:15:12 +0200 Subject: [PATCH 005/106] Added fnm to the install menu (#1879) --- config/applications.json | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/config/applications.json b/config/applications.json index 50c8657e..717ba98b 100644 --- a/config/applications.json +++ b/config/applications.json @@ -2630,5 +2630,13 @@ "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" } } From f398f9a63b804bceef3be3abc4955564a4fb091e Mon Sep 17 00:00:00 2001 From: ChrisTitusTech Date: Thu, 25 Apr 2024 16:15:36 +0000 Subject: [PATCH 006/106] Compile Winutil --- winutil.ps1 | 35 +++++++++++++++++++++++------------ xaml/inputApp.xaml | 27 +++++++++++++++------------ 2 files changed, 38 insertions(+), 24 deletions(-) diff --git a/winutil.ps1 b/winutil.ps1 index 5fec0345..9be2ba21 100644 --- a/winutil.ps1 +++ b/winutil.ps1 @@ -7593,6 +7593,14 @@ $sync.configs.applications = '{ "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" } }' | convertfrom-json $sync.configs.dns = '{ @@ -11583,6 +11591,9 @@ $inputXML = ' + + + @@ -11639,15 +11650,15 @@ $inputXML = ' - - - + + + @@ -11841,15 +11852,15 @@ $inputXML = ' - - - + + + @@ -12049,15 +12060,15 @@ $inputXML = ' - - - + + + @@ -12251,15 +12262,15 @@ $inputXML = ' - - - + + + diff --git a/xaml/inputApp.xaml b/xaml/inputApp.xaml index 25bce084..fd630022 100644 --- a/xaml/inputApp.xaml +++ b/xaml/inputApp.xaml @@ -146,6 +146,9 @@ + + + @@ -202,15 +205,15 @@ - - - + + + @@ -404,15 +407,15 @@ - - - + + + @@ -612,15 +615,15 @@ - - - + + + @@ -814,15 +817,15 @@ - - - + + + From e4bf33e3ab128bf2cf3649e3ff81e49b9dc78b90 Mon Sep 17 00:00:00 2001 From: Justawildwolf <62820836+blusewill@users.noreply.github.com> Date: Fri, 26 Apr 2024 03:34:08 +0800 Subject: [PATCH 007/106] Update applications.json (#1883) --- config/applications.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/config/applications.json b/config/applications.json index 717ba98b..a49139d9 100644 --- a/config/applications.json +++ b/config/applications.json @@ -2253,7 +2253,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", From bdf9c8378c76eb9f466beec3e4c1fba4b45bcfdd Mon Sep 17 00:00:00 2001 From: ChrisTitusTech Date: Thu, 25 Apr 2024 19:34:33 +0000 Subject: [PATCH 008/106] Compile Winutil --- winutil.ps1 | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/winutil.ps1 b/winutil.ps1 index 9be2ba21..4ab52398 100644 --- a/winutil.ps1 +++ b/winutil.ps1 @@ -7216,7 +7216,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", From f5f506b9c50d4c9ef93666f355d08beef645854f Mon Sep 17 00:00:00 2001 From: "Mr.k" Date: Wed, 1 May 2024 21:42:38 +0300 Subject: [PATCH 009/106] Simple improvement: make WinUtil's Shortcut Function Do Less (Lazier) (#1903) * Add Extra Comments to 'Invoke-WPFShortcut' to make the Logic a Bit Clearer * Make The 'Invoke-WPFShortcut' Function Lazier for Added Efficiency and to not Display False Info whenever the User Cancels the 'Save As' Operation --- functions/public/Invoke-WPFShortcut.ps1 | 36 +++++++++++++++---------- 1 file changed, 22 insertions(+), 14 deletions(-) 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 +} From 94abf3fd6624583f6d69538096bde1a9070a0818 Mon Sep 17 00:00:00 2001 From: ChrisTitusTech Date: Wed, 1 May 2024 18:43:03 +0000 Subject: [PATCH 010/106] Compile Winutil --- winutil.ps1 | 38 +++++++++++++++++++++++--------------- 1 file changed, 23 insertions(+), 15 deletions(-) diff --git a/winutil.ps1 b/winutil.ps1 index 4ab52398..5365fb72 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.04.25 + Version : 24.05.01 #> param ( [switch]$Debug, @@ -47,7 +47,7 @@ Add-Type -AssemblyName System.Windows.Forms # Variable to sync between runspaces $sync = [Hashtable]::Synchronized(@{}) $sync.PSScriptRoot = $PSScriptRoot -$sync.version = "24.04.25" +$sync.version = "24.05.01" $sync.configs = @{} $sync.ProcessRunning = $false @@ -4342,27 +4342,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) From 3719b015d4f973d26a73e9de0be377ea2f0a8f10 Mon Sep 17 00:00:00 2001 From: MyDrift Date: Wed, 1 May 2024 21:28:43 +0200 Subject: [PATCH 011/106] Update applications.jsonremove Whatsapp because it is not being maintained and is named "outdated" when installed * Update applications.json remove Whatsapp because it is not being maintained and is named "outdated" when installed --- config/applications.json | 8 -------- 1 file changed, 8 deletions(-) diff --git a/config/applications.json b/config/applications.json index a49139d9..9f20afbe 100644 --- a/config/applications.json +++ b/config/applications.json @@ -2311,14 +2311,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", From fc700537890c1c285eb45eace2c7c8bbc6b095f2 Mon Sep 17 00:00:00 2001 From: ChrisTitusTech Date: Wed, 1 May 2024 19:29:07 +0000 Subject: [PATCH 012/106] Compile Winutil --- winutil.ps1 | 35 ++++++++++++----------------------- xaml/inputApp.xaml | 27 ++++++++++++--------------- 2 files changed, 24 insertions(+), 38 deletions(-) diff --git a/winutil.ps1 b/winutil.ps1 index 5365fb72..d1eb6b51 100644 --- a/winutil.ps1 +++ b/winutil.ps1 @@ -7282,14 +7282,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", @@ -11574,9 +11566,6 @@ $inputXML = ' - - - @@ -11658,15 +11647,15 @@ $inputXML = ' + + + - - - @@ -11860,15 +11849,15 @@ $inputXML = ' + + + - - - @@ -12068,15 +12057,15 @@ $inputXML = ' + + + - - - @@ -12270,15 +12259,15 @@ $inputXML = ' + + + - - - diff --git a/xaml/inputApp.xaml b/xaml/inputApp.xaml index fd630022..326bb2bb 100644 --- a/xaml/inputApp.xaml +++ b/xaml/inputApp.xaml @@ -121,9 +121,6 @@ - - - @@ -205,15 +202,15 @@ + + + - - - @@ -407,15 +404,15 @@ + + + - - - @@ -615,15 +612,15 @@ + + + - - - @@ -817,15 +814,15 @@ + + + - - - From b3fc21d7e4cbf86b15aa77af88c6d66c60632276 Mon Sep 17 00:00:00 2001 From: ModernTTY <165050080+ModernTTY@users.noreply.github.com> Date: Wed, 1 May 2024 22:58:51 +0300 Subject: [PATCH 013/106] Add option to remove Microsoft Copilot AI * Add option to remove MS Copilot * Update tweaks.json * fix bugs - remove appx caused a lockup - also it looks like copilot will be the dependency for some built-in windows searches Due to this I am changing it from a removal to a disable. --- config/tweaks.json | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/config/tweaks.json b/config/tweaks.json index d1de827d..42821110 100644 --- a/config/tweaks.json +++ b/config/tweaks.json @@ -2323,6 +2323,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.", From fc93ec16d6a67ae4583634c5710b4f47e5872dce Mon Sep 17 00:00:00 2001 From: ChrisTitusTech Date: Wed, 1 May 2024 19:59:15 +0000 Subject: [PATCH 014/106] Compile Winutil --- winutil.ps1 | 20 ++++++++++++++++++++ xaml/inputTweaks.xaml | 1 + 2 files changed, 21 insertions(+) diff --git a/winutil.ps1 b/winutil.ps1 index d1eb6b51..73fe2233 100644 --- a/winutil.ps1 +++ b/winutil.ps1 @@ -10346,6 +10346,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.", @@ -12513,6 +12532,7 @@ $inputXML = ' + diff --git a/xaml/inputTweaks.xaml b/xaml/inputTweaks.xaml index db7e918e..63db69c6 100644 --- a/xaml/inputTweaks.xaml +++ b/xaml/inputTweaks.xaml @@ -25,6 +25,7 @@ + From 841de3699fc40230a7e659065b923dd16d7b0b49 Mon Sep 17 00:00:00 2001 From: Kasim Date: Wed, 1 May 2024 21:01:35 +0100 Subject: [PATCH 015/106] remove authy authy reached EOLhttps://help.twilio.com/articles/22771146070299-User-guide-End-of-Life-EOL-for-Twilio-Authy-Desktop-app * remove authy authy reached EOL https://help.twilio.com/articles/22771146070299-User-guide-End-of-Life-EOL-for-Twilio-Authy-Desktop-app --- config/applications.json | 8 -------- 1 file changed, 8 deletions(-) diff --git a/config/applications.json b/config/applications.json index 9f20afbe..fea86fd4 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", From 14b3c859ab68efe7782c96d2a86c807242203e90 Mon Sep 17 00:00:00 2001 From: ChrisTitusTech Date: Wed, 1 May 2024 20:02:03 +0000 Subject: [PATCH 016/106] Compile Winutil --- winutil.ps1 | 17 +++-------------- xaml/inputApp.xaml | 9 +++------ 2 files changed, 6 insertions(+), 20 deletions(-) diff --git a/winutil.ps1 b/winutil.ps1 index 73fe2233..a044f253 100644 --- a/winutil.ps1 +++ b/winutil.ps1 @@ -5066,14 +5066,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", @@ -12153,9 +12145,6 @@ $inputXML = ' - - - @@ -12281,15 +12270,15 @@ $inputXML = ' + + + - - - diff --git a/xaml/inputApp.xaml b/xaml/inputApp.xaml index 326bb2bb..a4479fed 100644 --- a/xaml/inputApp.xaml +++ b/xaml/inputApp.xaml @@ -689,9 +689,6 @@ - - - @@ -817,15 +814,15 @@ + + + - - - From 17faeef0d6200392c1d14698b10b557009f2f933 Mon Sep 17 00:00:00 2001 From: trenton4k Date: Thu, 2 May 2024 07:29:48 +1000 Subject: [PATCH 017/106] Update applications.jsonWindhawkThe customization marketplace for Windows programshttps://www.youtube.com/watch?v=ijG0nXnO2gQ * Update applications.json Windhawk The customization marketplace for Windows programs https://www.youtube.com/watch?v=ijG0nXnO2gQ --- config/applications.json | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/config/applications.json b/config/applications.json index fea86fd4..876151f7 100644 --- a/config/applications.json +++ b/config/applications.json @@ -2623,4 +2623,12 @@ "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" + }, } From ad6dcca76ec031eb9cdb5366051699bb61834843 Mon Sep 17 00:00:00 2001 From: Evan Galvin Date: Wed, 1 May 2024 17:34:22 -0400 Subject: [PATCH 018/106] add MSEdgeRedirect to applications.jsonperhaps a good "tweak" that could be added to Tweaks section down the road. project is foss... could be a good resource for someone with enough skills.in the meantime, does what it says it will, and does it well. * add MSEdgeRedirect to applications.json perhaps a good "tweak" that could be added to Tweaks section down the road. project is foss... could be a good resource for someone with enough skills. in the meantime, does what it says it will, and does it well. --- config/applications.json | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/config/applications.json b/config/applications.json index 876151f7..0993479f 100644 --- a/config/applications.json +++ b/config/applications.json @@ -1223,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", From 60db65b5a626d545cfbc9005134f4bb805745f22 Mon Sep 17 00:00:00 2001 From: "Mr.k" Date: Thu, 2 May 2024 00:34:52 +0300 Subject: [PATCH 019/106] Fix Winget Detection by doing Proper Error Handling using a Try-Catch * Fix Winget Detection by doing Proper Error Handling using a Try-Catch * Remove unnecessary Variable Initialization of 'wingetFullVersion' Co-authored-by: Martin Wiethan <47688561+Marterich@users.noreply.github.com> * Add Comments to be make The Logic a Lot More Clear to Follow and Understand * Add Another Catch Statement with some 'Write-Warning' for Extra Information --- .../private/Test-WinUtilPackageManager.ps1 | 21 +++++++++++++------ 1 file changed, 15 insertions(+), 6 deletions(-) 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") From 7065e2ac383948f1e59db6b22db35df591723db7 Mon Sep 17 00:00:00 2001 From: Chris Titus Date: Wed, 1 May 2024 16:39:09 -0700 Subject: [PATCH 020/106] Update applications.json --- config/applications.json | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/config/applications.json b/config/applications.json index 0993479f..516601a5 100644 --- a/config/applications.json +++ b/config/applications.json @@ -2630,13 +2630,13 @@ "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": { + }, + "WPFInstallWindhawk": { "category": "Utilities", "choco": "windhawk", "content": "Windhawk", "description": "The customization marketplace for Windows programs", "link": "https://windhawk.net", "winget": "RamenSoftware.Windhawk" - }, + } } From 8fccb8b74903711b562de6e2c42070837b4c4e78 Mon Sep 17 00:00:00 2001 From: ChrisTitusTech Date: Wed, 1 May 2024 21:39:34 +0000 Subject: [PATCH 021/106] Compile Winutil --- winutil.ps1 | 43 +++++++++++++++++++++++++++++++++++++------ xaml/inputApp.xaml | 6 ++++++ 2 files changed, 43 insertions(+), 6 deletions(-) diff --git a/winutil.ps1 b/winutil.ps1 index a044f253..b6a421dc 100644 --- a/winutil.ps1 +++ b/winutil.ps1 @@ -2632,13 +2632,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") @@ -6194,6 +6203,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", @@ -7593,6 +7610,14 @@ $sync.configs.applications = '{ "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 = '{ @@ -12300,6 +12325,9 @@ $inputXML = ' + + + @@ -12435,6 +12463,9 @@ $inputXML = ' + + + diff --git a/xaml/inputApp.xaml b/xaml/inputApp.xaml index a4479fed..e01a1519 100644 --- a/xaml/inputApp.xaml +++ b/xaml/inputApp.xaml @@ -844,6 +844,9 @@ + + + @@ -979,6 +982,9 @@ + + + From d1eedd0d74e9f6b5922f95a9fddf850e99a5ae79 Mon Sep 17 00:00:00 2001 From: MyDrift Date: Wed, 1 May 2024 23:44:41 +0200 Subject: [PATCH 022/106] Remove StartAllBack + Adobe Debloater Tweak + Add Netbird * remove StartAllBack * Added Adobe Service Debloater Sets Adobe Services to manual for people that sadly need to work with their apps. * Add Netbird https://netbird.io --- config/applications.json | 16 ++++++------ config/tweaks.json | 54 ++++++++++++++++++++++++++++++++++++++++ 2 files changed, 62 insertions(+), 8 deletions(-) diff --git a/config/applications.json b/config/applications.json index 516601a5..f8a3f395 100644 --- a/config/applications.json +++ b/config/applications.json @@ -1279,6 +1279,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", @@ -1895,14 +1903,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", diff --git a/config/tweaks.json b/config/tweaks.json index 42821110..63e48bd3 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!", From 11b64623e9320792bf66bc77f567f3ba16a10c51 Mon Sep 17 00:00:00 2001 From: ChrisTitusTech Date: Wed, 1 May 2024 21:45:12 +0000 Subject: [PATCH 023/106] Compile Winutil --- winutil.ps1 | 83 +++++++++++++++++++++++++++++++++++-------- xaml/inputApp.xaml | 12 +++---- xaml/inputTweaks.xaml | 1 + 3 files changed, 76 insertions(+), 20 deletions(-) diff --git a/winutil.ps1 b/winutil.ps1 index b6a421dc..73b70c6f 100644 --- a/winutil.ps1 +++ b/winutil.ps1 @@ -6259,6 +6259,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", @@ -6875,14 +6883,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", @@ -8117,6 +8117,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!", @@ -12124,6 +12178,9 @@ $inputXML = ' + + + @@ -12295,15 +12352,15 @@ $inputXML = ' - - - + + + @@ -12418,9 +12475,6 @@ $inputXML = ' - - - @@ -12541,6 +12595,7 @@ $inputXML = ' + diff --git a/xaml/inputApp.xaml b/xaml/inputApp.xaml index e01a1519..9acce14d 100644 --- a/xaml/inputApp.xaml +++ b/xaml/inputApp.xaml @@ -643,6 +643,9 @@ + + + @@ -814,15 +817,15 @@ - - - + + + @@ -937,9 +940,6 @@ - - - diff --git a/xaml/inputTweaks.xaml b/xaml/inputTweaks.xaml index 63db69c6..717b3724 100644 --- a/xaml/inputTweaks.xaml +++ b/xaml/inputTweaks.xaml @@ -14,6 +14,7 @@ + From 665f31d91af7070a0fedb180854267834d74bffe Mon Sep 17 00:00:00 2001 From: CodingWonders <101426328+CodingWonders@users.noreply.github.com> Date: Thu, 9 May 2024 22:31:27 +0200 Subject: [PATCH 024/106] Added ability to import drivers * Added ability to import drivers Added the ability to import drivers from the active installation to the MicroWin image. * Merge branch 'test-2024-04-20-2' into CW-MicroWin-240420 * Update inputXML.xaml Removed warning because of a fluke * Update Invoke-WPFMicrowin.ps1 Use the driver injection directory if it is specified and if the directory exists * Merge branch 'test-2024-04-20-2' into CW-MicroWin-240420 * Merge branch 'test-2024-04-20-2' into CW-MicroWin-240420 --- functions/public/Invoke-WPFMicrowin.ps1 | 46 +++++++++++++++++++++++-- xaml/inputXML.xaml | 1 + 2 files changed, 45 insertions(+), 2 deletions(-) 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/xaml/inputXML.xaml b/xaml/inputXML.xaml index 9fee01b4..ba3475fb 100644 --- a/xaml/inputXML.xaml +++ b/xaml/inputXML.xaml @@ -843,6 +843,7 @@ Foreground="{LabelboxForegroundColor}" ToolTip="Path to unpacked drivers all sys and inf files for devices that need drivers" /> + From b0bd06be96b913e9d8142a4b652cb3b1e77856e6 Mon Sep 17 00:00:00 2001 From: ChrisTitusTech Date: Thu, 9 May 2024 20:31:53 +0000 Subject: [PATCH 025/106] Compile Winutil --- winutil.ps1 | 51 +++++++++++++++++++++++++++++++++++++++++++++++---- 1 file changed, 47 insertions(+), 4 deletions(-) diff --git a/winutil.ps1 b/winutil.ps1 index 73b70c6f..8a2f9f2a 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.01 + Version : 24.05.09 #> param ( [switch]$Debug, @@ -47,7 +47,7 @@ Add-Type -AssemblyName System.Windows.Forms # Variable to sync between runspaces $sync = [Hashtable]::Synchronized(@{}) $sync.PSScriptRoot = $PSScriptRoot -$sync.version = "24.05.01" +$sync.version = "24.05.09" $sync.configs = @{} $sync.ProcessRunning = $false @@ -3726,6 +3726,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 @@ -3784,13 +3785,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 { @@ -4008,7 +4050,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 { @@ -12851,6 +12893,7 @@ $inputXML = ' + From b28a79d1773d9c1d35a9e8f20a465f71b98250b3 Mon Sep 17 00:00:00 2001 From: misspent <78914154+misspent@users.noreply.github.com> Date: Thu, 9 May 2024 21:35:53 +0100 Subject: [PATCH 026/106] Test 2024 04 20 2 | 7 additions to applications.json * 7 additions to applications.json Adds: NetLimiter - https://www.netlimiter.com OneCommander - https://www.onecommander.com Borderless Gaming - https://github.com/Codeusa/Borderless-Gaming Equalizer APO - https://sourceforge.net/projects/equalizerapo FreeFileSync - https://freefilesync.org Elgato Stream Deck - https://www.elgato.com/uk/en/s/downloads Stardock Curtains - https://www.stardock.com/products/curtains * Added Compact GUI support Link: https://github.com/IridiumIO/CompactGUI Since I wasn't sure what category to put it in, I chose Utilities. * Added ExifCleaner support Link: https://github.com/szTheory/exifcleaner * Removed trial ware additions Removed: Net Limiter One Commander Elgato: Stream Deck Stardock Curtains --- config/applications.json | 40 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 40 insertions(+) diff --git a/config/applications.json b/config/applications.json index f8a3f395..512fdd65 100644 --- a/config/applications.json +++ b/config/applications.json @@ -1239,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", From f1c52d957b06d0a5470f4152495a2a89176ea259 Mon Sep 17 00:00:00 2001 From: ChrisTitusTech Date: Thu, 9 May 2024 20:36:16 +0000 Subject: [PATCH 027/106] Compile Winutil --- winutil.ps1 | 87 +++++++++++++++++++++++++++++++++++++--------- xaml/inputApp.xaml | 47 ++++++++++++++++--------- 2 files changed, 102 insertions(+), 32 deletions(-) diff --git a/winutil.ps1 b/winutil.ps1 index 8a2f9f2a..f49ebec9 100644 --- a/winutil.ps1 +++ b/winutil.ps1 @@ -6261,6 +6261,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", @@ -11782,15 +11822,15 @@ $inputXML = ' + + + - - - @@ -11984,17 +12024,17 @@ $inputXML = ' - - - - - + + + + + - - - + + + + + + + + diff --git a/xaml/inputApp.xaml b/xaml/inputApp.xaml index 9acce14d..a723b5d7 100644 --- a/xaml/inputApp.xaml +++ b/xaml/inputApp.xaml @@ -205,15 +205,15 @@ + + + - - - @@ -407,17 +407,17 @@ - - - - - + + + + + - - + + + + + + + + From 386808d0e022fd06cead9dbda94e0f76a46eb2f2 Mon Sep 17 00:00:00 2001 From: Federico Pulcino <78621373+FedeP14@users.noreply.github.com> Date: Fri, 10 May 2024 00:00:16 +0200 Subject: [PATCH 028/106] add GlazeWM to applications.js (#1891) Co-authored-by: Chris Titus --- config/applications.json | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/config/applications.json b/config/applications.json index 512fdd65..39fe433f 100644 --- a/config/applications.json +++ b/config/applications.json @@ -2655,6 +2655,14 @@ "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", From 63f45ed4467b276c7053c2ebcfddddf04b04b685 Mon Sep 17 00:00:00 2001 From: ChrisTitusTech Date: Thu, 9 May 2024 22:00:48 +0000 Subject: [PATCH 029/106] Compile Winutil --- winutil.ps1 | 45 ++++++++++++++++++++++++++++----------------- xaml/inputApp.xaml | 37 ++++++++++++++++++++----------------- 2 files changed, 48 insertions(+), 34 deletions(-) diff --git a/winutil.ps1 b/winutil.ps1 index f49ebec9..5caaf80b 100644 --- a/winutil.ps1 +++ b/winutil.ps1 @@ -7677,6 +7677,14 @@ $sync.configs.applications = '{ "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", @@ -11825,15 +11833,15 @@ $inputXML = ' + + + - - - @@ -12030,15 +12038,15 @@ $inputXML = ' + - - - - - - + + + @@ -12300,6 +12308,9 @@ $inputXML = ' - - - @@ -12460,6 +12466,11 @@ $inputXML = ' + + + + + diff --git a/xaml/inputApp.xaml b/xaml/inputApp.xaml index a723b5d7..fa8036be 100644 --- a/xaml/inputApp.xaml +++ b/xaml/inputApp.xaml @@ -208,15 +208,15 @@ + + + - - - @@ -413,15 +413,15 @@ + - - - - + + @@ -683,6 +683,9 @@ - - @@ -843,6 +841,11 @@ + + + + + From 81fd3d168302b6b2667985cb4f13fd2783503bce Mon Sep 17 00:00:00 2001 From: Chris Titus Date: Thu, 9 May 2024 17:04:41 -0700 Subject: [PATCH 030/106] Remove old Win7 game tweak --- config/tweaks.json | 21 --------------------- 1 file changed, 21 deletions(-) diff --git a/config/tweaks.json b/config/tweaks.json index 63e48bd3..e260bd3e 100644 --- a/config/tweaks.json +++ b/config/tweaks.json @@ -1926,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", From 8eb51560d857b8921df4abffe9dbc08b8c8f2ea7 Mon Sep 17 00:00:00 2001 From: ChrisTitusTech Date: Thu, 9 May 2024 22:05:13 +0000 Subject: [PATCH 031/106] Compile Winutil --- winutil.ps1 | 21 --------------------- 1 file changed, 21 deletions(-) diff --git a/winutil.ps1 b/winutil.ps1 index 5caaf80b..9650d9b4 100644 --- a/winutil.ps1 +++ b/winutil.ps1 @@ -10056,27 +10056,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", From 565f9c310cd87425fd2ec4f6911d2da0c75fc8bb Mon Sep 17 00:00:00 2001 From: kian yamamoto Date: Thu, 9 May 2024 22:49:23 -0500 Subject: [PATCH 032/106] Test 1715290913 fix ugly ifs (#1957) * fix nested ifs * Compile Winutil * fix syntax * Compile Winutil * Add Spotify and Choco Fallback * Compile Winutil --------- Co-authored-by: ty802 Co-authored-by: Chris Titus Co-authored-by: ChrisTitusTech --- .gitignore | 1 + config/applications.json | 8 ++ .../private/Install-WinUtilProgramWinget.ps1 | 48 ++++++++---- winutil.ps1 | 77 ++++++++++++++----- xaml/inputApp.xaml | 12 +++ 5 files changed, 110 insertions(+), 36 deletions(-) diff --git a/.gitignore b/.gitignore index 215d85ed..4d77e17c 100644 --- a/.gitignore +++ b/.gitignore @@ -44,3 +44,4 @@ Microsoft.PowerShell.ConsoleHost.dll microwin.log True test.ps1 +winutil.ps1 diff --git a/config/applications.json b/config/applications.json index 39fe433f..b9b16943 100644 --- a/config/applications.json +++ b/config/applications.json @@ -1687,6 +1687,14 @@ "link": "https://bitsum.com/", "winget": "BitSum.ProcessLasso" }, + "WPFInstallspotify": { + "category": "Multimedia Tools", + "choco": "spotify", + "content": "Spotify", + "description": "Spotify is a digital music service that gives you access to millions of songs, podcasts, and videos from artists all over the world.", + "link": "https://www.spotify.com/", + "winget": "Spotify.Spotify" + }, "WPFInstallprocessmonitor": { "category": "Microsoft Tools", "choco": "procexp", diff --git a/functions/private/Install-WinUtilProgramWinget.ps1 b/functions/private/Install-WinUtilProgramWinget.ps1 index 4f840007..2aa10bae 100644 --- a/functions/private/Install-WinUtilProgramWinget.ps1 +++ b/functions/private/Install-WinUtilProgramWinget.ps1 @@ -34,26 +34,40 @@ Function Install-WinUtilProgramWinget { # This is up to the individual package maintainers to enable these options. Aka. not as clean as Linux Package Managers. try { $status = $(Start-Process -FilePath "winget" -ArgumentList "install --id $Program --silent --accept-source-agreements --accept-package-agreements" -Wait -PassThru).ExitCode - if($status -ne 0){ - Write-Host "Attempt with User scope" - $status = $(Start-Process -FilePath "winget" -ArgumentList "install --id $Program --scope user --silent --accept-source-agreements --accept-package-agreements" -Wait -PassThru).ExitCode - if($status -ne 0){ - Write-Host "Attempt with Unelevated prompt" - $status = $(Start-Process -FilePath "powershell" -ArgumentList "-Command Start-Process winget -ArgumentList 'install --id $Program --silent --accept-source-agreements --accept-package-agreements' -Verb runAsUser" -Wait -PassThru).ExitCode - if($status -ne 0){ - Write-Host "Failed to install $Program." - } else { - Write-Host "$Program installed successfully with Unelevated prompt." - } - } else { - Write-Host "$Program installed successfully with User scope." - } - } else { + if($status -eq 0){ Write-Host "$Program installed successfully." + continue } - } catch { + Write-Host "Attempt with User scope" + $status = $(Start-Process -FilePath "winget" -ArgumentList "install --id $Program --scope user --silent --accept-source-agreements --accept-package-agreements" -Wait -PassThru).ExitCode + if($status -eq 0){ + Write-Host "$Program installed successfully with User scope." + continue + } + Write-Host "Attempt with User prompt" + $userChoice = [System.Windows.MessageBox]::Show("Do you want to attempt $Program installation with specific user credentials? Select 'Yes' to proceed or 'No' to skip.", "User Credential Prompt", [System.Windows.MessageBoxButton]::YesNo) + if ($userChoice -eq 'Yes') { + $getcreds = Get-Credential + $process = Start-Process -FilePath "winget" -ArgumentList "install --id $Program --silent --accept-source-agreements --accept-package-agreements" -Credential $getcreds -PassThru + Wait-Process -Id $process.Id + $status = $process.ExitCode + } else { + Write-Host "Skipping installation with specific user credentials." + } + if($status -eq 0){ + Write-Host "$Program installed successfully with User prompt." + continue + } + Write-Host "Attempting installation with Chocolatey as a fallback method" + $status = $(Start-Process -FilePath "choco" -ArgumentList "install $Program -y" -Wait -PassThru).ExitCode + if($status -eq 0){ + Write-Host "$Program installed successfully using Chocolatey." + continue + } + Write-Host "Failed to install $Program. You need to install it manually... Sorry!" + } catch { Write-Host "Failed to install $Program due to an error: $_" - } + } } if($manage -eq "Uninstalling"){ # Uninstall package via ID using winget directly. diff --git a/winutil.ps1 b/winutil.ps1 index 9650d9b4..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.09 + #> param ( [switch]$Debug, @@ -47,7 +47,7 @@ Add-Type -AssemblyName System.Windows.Forms # Variable to sync between runspaces $sync = [Hashtable]::Synchronized(@{}) $sync.PSScriptRoot = $PSScriptRoot -$sync.version = "24.05.09" +$sync.version = "24.05.10" $sync.configs = @{} $sync.ProcessRunning = $false @@ -733,26 +733,40 @@ Function Install-WinUtilProgramWinget { # This is up to the individual package maintainers to enable these options. Aka. not as clean as Linux Package Managers. try { $status = $(Start-Process -FilePath "winget" -ArgumentList "install --id $Program --silent --accept-source-agreements --accept-package-agreements" -Wait -PassThru).ExitCode - if($status -ne 0){ - Write-Host "Attempt with User scope" - $status = $(Start-Process -FilePath "winget" -ArgumentList "install --id $Program --scope user --silent --accept-source-agreements --accept-package-agreements" -Wait -PassThru).ExitCode - if($status -ne 0){ - Write-Host "Attempt with Unelevated prompt" - $status = $(Start-Process -FilePath "powershell" -ArgumentList "-Command Start-Process winget -ArgumentList 'install --id $Program --silent --accept-source-agreements --accept-package-agreements' -Verb runAsUser" -Wait -PassThru).ExitCode - if($status -ne 0){ - Write-Host "Failed to install $Program." - } else { - Write-Host "$Program installed successfully with Unelevated prompt." - } - } else { - Write-Host "$Program installed successfully with User scope." - } - } else { + if($status -eq 0){ Write-Host "$Program installed successfully." + continue } - } catch { + Write-Host "Attempt with User scope" + $status = $(Start-Process -FilePath "winget" -ArgumentList "install --id $Program --scope user --silent --accept-source-agreements --accept-package-agreements" -Wait -PassThru).ExitCode + if($status -eq 0){ + Write-Host "$Program installed successfully with User scope." + continue + } + Write-Host "Attempt with User prompt" + $userChoice = [System.Windows.MessageBox]::Show("Do you want to attempt $Program installation with specific user credentials? Select 'Yes' to proceed or 'No' to skip.", "User Credential Prompt", [System.Windows.MessageBoxButton]::YesNo) + if ($userChoice -eq 'Yes') { + $getcreds = Get-Credential + $process = Start-Process -FilePath "winget" -ArgumentList "install --id $Program --silent --accept-source-agreements --accept-package-agreements" -Credential $getcreds -PassThru + Wait-Process -Id $process.Id + $status = $process.ExitCode + } else { + Write-Host "Skipping installation with specific user credentials." + } + if($status -eq 0){ + Write-Host "$Program installed successfully with User prompt." + continue + } + Write-Host "Attempting installation with Chocolatey as a fallback method" + $status = $(Start-Process -FilePath "choco" -ArgumentList "install $Program -y" -Wait -PassThru).ExitCode + if($status -eq 0){ + Write-Host "$Program installed successfully using Chocolatey." + continue + } + Write-Host "Failed to install $Program. You need to install it manually... Sorry!" + } catch { Write-Host "Failed to install $Program due to an error: $_" - } + } } if($manage -eq "Uninstalling"){ # Uninstall package via ID using winget directly. @@ -6709,6 +6723,14 @@ $sync.configs.applications = '{ "link": "https://bitsum.com/", "winget": "BitSum.ProcessLasso" }, + "WPFInstallspotify": { + "category": "Multimedia Tools", + "choco": "spotify", + "content": "Spotify", + "description": "Spotify is a digital music service that gives you access to millions of songs, podcasts, and videos from artists all over the world.", + "link": "https://www.spotify.com/", + "winget": "Spotify.Spotify" + }, "WPFInstallprocessmonitor": { "category": "Microsoft Tools", "choco": "procexp", @@ -12208,6 +12230,9 @@ $inputXML = ' + + + @@ -12219,6 +12244,10 @@ $inputXML = ' + + + + @@ -12439,6 +12468,7 @@ $inputXML = ' + @@ -12446,11 +12476,20 @@ $inputXML = ' + + + + + + + + + diff --git a/xaml/inputApp.xaml b/xaml/inputApp.xaml index fa8036be..839f4448 100644 --- a/xaml/inputApp.xaml +++ b/xaml/inputApp.xaml @@ -604,6 +604,9 @@ + + + @@ -619,6 +622,9 @@ + + + @@ -847,6 +853,12 @@ + + + + + + From 5648115256eebdb3a65e095a28f7f641a8d0cb4b Mon Sep 17 00:00:00 2001 From: ChrisTitusTech Date: Fri, 10 May 2024 03:49:49 +0000 Subject: [PATCH 033/106] Compile Winutil --- winutil.ps1 | 22 ++++------------------ xaml/inputApp.xaml | 15 +++------------ 2 files changed, 7 insertions(+), 30 deletions(-) diff --git a/winutil.ps1 b/winutil.ps1 index f225bbfe..0369f6d7 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, @@ -12244,10 +12244,6 @@ $inputXML = ' - - - - @@ -12261,15 +12257,15 @@ $inputXML = ' - - - + + + @@ -12468,28 +12464,18 @@ $inputXML = ' - - - - - - - - - - diff --git a/xaml/inputApp.xaml b/xaml/inputApp.xaml index 839f4448..4ff1d7b8 100644 --- a/xaml/inputApp.xaml +++ b/xaml/inputApp.xaml @@ -622,9 +622,6 @@ - - - @@ -634,15 +631,15 @@ - - - + + + @@ -844,18 +841,12 @@ - - - - - - From 39e89f16274e14799a9d4a2756343b6569524e8b Mon Sep 17 00:00:00 2001 From: Callum Carmicheal Date: Fri, 10 May 2024 04:51:54 +0100 Subject: [PATCH 034/106] Fix incorrect url for jellyfin-media-player (#1912) --- config/applications.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/config/applications.json b/config/applications.json index b9b16943..21e21082 100644 --- a/config/applications.json +++ b/config/applications.json @@ -996,7 +996,7 @@ "choco": "jellyfin-media-player", "content": "Jellyfin Media Player", "description": "Jellyfin Media Player is a client application for the Jellyfin media server, providing access to your media library.", - "link": "https://github.com/jellyfin/jellyfin-media-playerf", + "link": "https://github.com/jellyfin/jellyfin-media-player", "winget": "Jellyfin.JellyfinMediaPlayer" }, "WPFInstalljellyfinserver": { From d43d09872d9c90e7aeea56f8fe09156311a09f92 Mon Sep 17 00:00:00 2001 From: ChrisTitusTech Date: Fri, 10 May 2024 03:52:18 +0000 Subject: [PATCH 035/106] Compile Winutil --- winutil.ps1 | 4 ++-- xaml/inputApp.xaml | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/winutil.ps1 b/winutil.ps1 index 0369f6d7..66f93f7b 100644 --- a/winutil.ps1 +++ b/winutil.ps1 @@ -6032,7 +6032,7 @@ $sync.configs.applications = '{ "choco": "jellyfin-media-player", "content": "Jellyfin Media Player", "description": "Jellyfin Media Player is a client application for the Jellyfin media server, providing access to your media library.", - "link": "https://github.com/jellyfin/jellyfin-media-playerf", + "link": "https://github.com/jellyfin/jellyfin-media-player", "winget": "Jellyfin.JellyfinMediaPlayer" }, "WPFInstalljellyfinserver": { @@ -12173,7 +12173,7 @@ $inputXML = ' - + diff --git a/xaml/inputApp.xaml b/xaml/inputApp.xaml index 4ff1d7b8..5c53cec0 100644 --- a/xaml/inputApp.xaml +++ b/xaml/inputApp.xaml @@ -547,7 +547,7 @@ - + From 457e8cdcdcad2dc551aa45b38cf4511d3a934c8d Mon Sep 17 00:00:00 2001 From: Rux Date: Thu, 9 May 2024 21:01:25 -0700 Subject: [PATCH 036/106] Update name and description for Element (#1930) - Fixed the name and description for Element to reflect the name of the client, rather than the underlying technology-Matrix. --- config/applications.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/config/applications.json b/config/applications.json index 21e21082..4cfd0904 100644 --- a/config/applications.json +++ b/config/applications.json @@ -1170,8 +1170,8 @@ "WPFInstallmatrix": { "category": "Communications", "choco": "element-desktop", - "content": "Matrix", - "description": "Matrix is an open network for secure, decentralized communication with features like chat, VoIP, and collaboration tools.", + "content": "Element", + "description": "Element is a client for Matrix—an open network for secure, decentralized communication.", "link": "https://element.io/", "winget": "Element.Element" }, From c4a9ab098bedae2ea0ceceee1156747618fceeff Mon Sep 17 00:00:00 2001 From: ChrisTitusTech Date: Fri, 10 May 2024 04:01:51 +0000 Subject: [PATCH 037/106] Compile Winutil --- winutil.ps1 | 6 +++--- xaml/inputApp.xaml | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/winutil.ps1 b/winutil.ps1 index 66f93f7b..19fe254f 100644 --- a/winutil.ps1 +++ b/winutil.ps1 @@ -6206,8 +6206,8 @@ $sync.configs.applications = '{ "WPFInstallmatrix": { "category": "Communications", "choco": "element-desktop", - "content": "Matrix", - "description": "Matrix is an open network for secure, decentralized communication with features like chat, VoIP, and collaboration tools.", + "content": "Element", + "description": "Element is a client for Matrix?an open network for secure, decentralized communication.", "link": "https://element.io/", "winget": "Element.Element" }, @@ -11705,7 +11705,7 @@ $inputXML = ' - + diff --git a/xaml/inputApp.xaml b/xaml/inputApp.xaml index 5c53cec0..3c19da16 100644 --- a/xaml/inputApp.xaml +++ b/xaml/inputApp.xaml @@ -79,7 +79,7 @@ - + From eb205771fb2b2e37badfa1160e3119c41f35c271 Mon Sep 17 00:00:00 2001 From: Martin Wiethan <47688561+Marterich@users.noreply.github.com> Date: Fri, 10 May 2024 06:03:07 +0200 Subject: [PATCH 038/106] Optimize winget download speed (#1931) * Optimize Winget Download Speed * Add Downloading Message --- functions/private/Get-WinUtilWingetLatest.ps1 | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/functions/private/Get-WinUtilWingetLatest.ps1 b/functions/private/Get-WinUtilWingetLatest.ps1 index 5a18a536..f392cd17 100644 --- a/functions/private/Get-WinUtilWingetLatest.ps1 +++ b/functions/private/Get-WinUtilWingetLatest.ps1 @@ -5,14 +5,17 @@ function Get-WinUtilWingetLatest { .DESCRIPTION This function grabs the latest version of Winget and returns the download path to Install-WinUtilWinget for installation. #> - + # Invoke-WebRequest is notoriously slow when the byte progress is displayed. The following lines disable the progress bar and reset them at the end of the function + $PreviousProgressPreference = $ProgressPreference + $ProgressPreference = "silentlyContinue" Try{ # Grabs the latest release of Winget from the Github API for the install process. $response = Invoke-RestMethod -Uri "https://api.github.com/repos/microsoft/Winget-cli/releases/latest" -Method Get -ErrorAction Stop $latestVersion = $response.tag_name #Stores version number of latest release. - $licenseWingetUrl = $response.assets.browser_download_url[0] #Index value for License file. + $licenseWingetUrl = $response.assets.browser_download_url | Where-Object {$_ -like "*License1.xml"} #Index value for License file. Write-Host "Latest Version:`t$($latestVersion)`n" - $assetUrl = $response.assets.browser_download_url[2] #Index value for download URL. + Write-Host "Downloading..." + $assetUrl = $response.assets.browser_download_url | Where-Object {$_ -like "*Microsoft.DesktopAppInstaller_8wekyb3d8bbwe.msixbundle"} Invoke-WebRequest -Uri $licenseWingetUrl -OutFile $ENV:TEMP\License1.xml # The only pain is that the msixbundle for winget-cli is 246MB. In some situations this can take a bit, with slower connections. Invoke-WebRequest -Uri $assetUrl -OutFile $ENV:TEMP\Microsoft.DesktopAppInstaller.msixbundle @@ -20,4 +23,5 @@ function Get-WinUtilWingetLatest { Catch{ throw [WingetFailedInstall]::new('Failed to get latest Winget release and license') } + $ProgressPreference = $PreviousProgressPreference } From 963bfe935841932ac8a3cd69707c67ab3cacede8 Mon Sep 17 00:00:00 2001 From: ChrisTitusTech Date: Fri, 10 May 2024 04:03:29 +0000 Subject: [PATCH 039/106] Compile Winutil --- winutil.ps1 | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/winutil.ps1 b/winutil.ps1 index 19fe254f..05d49022 100644 --- a/winutil.ps1 +++ b/winutil.ps1 @@ -624,14 +624,17 @@ function Get-WinUtilWingetLatest { .DESCRIPTION This function grabs the latest version of Winget and returns the download path to Install-WinUtilWinget for installation. #> - + # Invoke-WebRequest is notoriously slow when the byte progress is displayed. The following lines disable the progress bar and reset them at the end of the function + $PreviousProgressPreference = $ProgressPreference + $ProgressPreference = "silentlyContinue" Try{ # Grabs the latest release of Winget from the Github API for the install process. $response = Invoke-RestMethod -Uri "https://api.github.com/repos/microsoft/Winget-cli/releases/latest" -Method Get -ErrorAction Stop $latestVersion = $response.tag_name #Stores version number of latest release. - $licenseWingetUrl = $response.assets.browser_download_url[0] #Index value for License file. + $licenseWingetUrl = $response.assets.browser_download_url | Where-Object {$_ -like "*License1.xml"} #Index value for License file. Write-Host "Latest Version:`t$($latestVersion)`n" - $assetUrl = $response.assets.browser_download_url[2] #Index value for download URL. + Write-Host "Downloading..." + $assetUrl = $response.assets.browser_download_url | Where-Object {$_ -like "*Microsoft.DesktopAppInstaller_8wekyb3d8bbwe.msixbundle"} Invoke-WebRequest -Uri $licenseWingetUrl -OutFile $ENV:TEMP\License1.xml # The only pain is that the msixbundle for winget-cli is 246MB. In some situations this can take a bit, with slower connections. Invoke-WebRequest -Uri $assetUrl -OutFile $ENV:TEMP\Microsoft.DesktopAppInstaller.msixbundle @@ -639,6 +642,7 @@ function Get-WinUtilWingetLatest { Catch{ throw [WingetFailedInstall]::new('Failed to get latest Winget release and license') } + $ProgressPreference = $PreviousProgressPreference } function Get-WinUtilWingetPrerequisites { <# From bcc5b691d6ea7e2f4ec6cc0de829ae71900bc633 Mon Sep 17 00:00:00 2001 From: Martin Wiethan <47688561+Marterich@users.noreply.github.com> Date: Fri, 10 May 2024 06:05:04 +0200 Subject: [PATCH 040/106] Include OOSU Config in winutil.ps1 (#1932) --- Compile.ps1 | 3 +++ functions/public/Invoke-WPFOOSU | 6 ++---- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/Compile.ps1 b/Compile.ps1 index 330c226a..2f568499 100644 --- a/Compile.ps1 +++ b/Compile.ps1 @@ -55,6 +55,9 @@ Get-ChildItem .\config | Where-Object {$psitem.extension -eq ".json"} | ForEach- $sync.configs.$($psitem.BaseName) = $json | convertfrom-json Write-output "`$sync.configs.$($psitem.BaseName) = '$json' `| convertfrom-json" | Out-File ./$scriptname -Append -Encoding ascii } +Get-ChildItem .\config | Where-Object {$PSItem.Extension -eq ".cfg"} | ForEach-Object { + Write-output "`$sync.configs.$($psitem.BaseName) = '$(Get-Content $PSItem.FullName)'" | Out-File ./$scriptname -Append -Encoding ascii +} $xaml = (Get-Content .\xaml\inputXML.xaml).replace("'","''") diff --git a/functions/public/Invoke-WPFOOSU b/functions/public/Invoke-WPFOOSU index d30ea3a8..d244acf2 100644 --- a/functions/public/Invoke-WPFOOSU +++ b/functions/public/Invoke-WPFOOSU @@ -27,14 +27,12 @@ function Invoke-WPFOOSU { Start-Process $OOSU_filepath } "recommended"{ - $oosu_config = "$ENV:temp\ooshutup10_recommended.cfg" - Invoke-WebRequest -Uri "https://raw.githubusercontent.com/ChrisTitusTech/winutil/main/config/ooshutup10_recommended.cfg" -OutFile $oosu_config + New-Item -Path $ENV:temp\ooshutup10_recommended.cfg -ItemType File -Value $sync.configs.ooshutup10_recommended -Force Write-Host "Applying recommended OO Shutup 10 Policies" Start-Process $OOSU_filepath -ArgumentList "$oosu_config /quiet" -Wait } "undo"{ - $oosu_config = "$ENV:temp\ooshutup10_factory.cfg" - Invoke-WebRequest -Uri "https://raw.githubusercontent.com/ChrisTitusTech/winutil/main/config/ooshutup10_factory.cfg" -OutFile $oosu_config + New-Item -Path $ENV:temp\ooshutup10_factory.cfg -ItemType File -Value $sync.configs.ooshutup10_factory -Force Write-Host "Resetting all OO Shutup 10 Policies" Start-Process $OOSU_filepath -ArgumentList "$oosu_config /quiet" -Wait } From 1c80af1aca62c7b989d75758e96a0effc61af4f2 Mon Sep 17 00:00:00 2001 From: ChrisTitusTech Date: Fri, 10 May 2024 04:05:31 +0000 Subject: [PATCH 041/106] Compile Winutil --- winutil.ps1 | 494 +++++++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 490 insertions(+), 4 deletions(-) diff --git a/winutil.ps1 b/winutil.ps1 index 05d49022..6e5a2176 100644 --- a/winutil.ps1 +++ b/winutil.ps1 @@ -4198,14 +4198,12 @@ function Invoke-WPFOOSU { Start-Process $OOSU_filepath } "recommended"{ - $oosu_config = "$ENV:temp\ooshutup10_recommended.cfg" - Invoke-WebRequest -Uri "https://raw.githubusercontent.com/ChrisTitusTech/winutil/main/config/ooshutup10_recommended.cfg" -OutFile $oosu_config + New-Item -Path $ENV:temp\ooshutup10_recommended.cfg -ItemType File -Value $sync.configs.ooshutup10_recommended -Force Write-Host "Applying recommended OO Shutup 10 Policies" Start-Process $OOSU_filepath -ArgumentList "$oosu_config /quiet" -Wait } "undo"{ - $oosu_config = "$ENV:temp\ooshutup10_factory.cfg" - Invoke-WebRequest -Uri "https://raw.githubusercontent.com/ChrisTitusTech/winutil/main/config/ooshutup10_factory.cfg" -OutFile $oosu_config + New-Item -Path $ENV:temp\ooshutup10_factory.cfg -ItemType File -Value $sync.configs.ooshutup10_factory -Force Write-Host "Resetting all OO Shutup 10 Policies" Start-Process $OOSU_filepath -ArgumentList "$oosu_config /quiet" -Wait } @@ -10925,6 +10923,494 @@ $sync.configs.tweaks = '{ "Type": "300" } }' | convertfrom-json +$sync.configs.ooshutup10_factory = '############################################################################ +# This file was created with O&O ShutUp10++ V1.9.1436 +# and can be imported onto another computer. +# +# Download the application at https://www.oo-software.com/shutup10 +# You can then import the file from within the program. +# +# Alternatively you can import it automatically over a command line. +# Simply use the following parameter: +# OOSU10.exe +# +# Selecting the Option /quiet ends the app right after the import and the +# user does not get any feedback about the import. +# +# We are always happy to answer any questions you may have! +# ? 2015-2023 O&O Software GmbH, Berlin. All rights reserved. +# https://www.oo-software.com/ +############################################################################ + +P001 - +P002 - +P003 - +P004 - +P005 - +P006 - +P008 - +P026 - +P027 - +P028 - +P064 - +P065 - +P066 - +P067 - +P070 - +P069 - +P009 - +P010 - +P015 - +P068 - +P016 - +A001 - +A002 - +A003 - +A004 - +A006 - +A005 - +P007 - +P036 - +P025 - +P033 - +P023 - +P056 - +P057 - +P012 - +P034 - +P013 - +P035 - +P062 - +P063 - +P081 - +P047 - +P019 - +P048 - +P049 - +P020 - +P037 - +P011 - +P038 - +P050 - +P051 - +P018 - +P039 - +P021 - +P040 - +P022 - +P041 - +P014 - +P042 - +P052 - +P053 - +P054 - +P055 - +P029 - +P043 - +P030 - +P044 - +P031 - +P045 - +P032 - +P046 - +P058 - +P059 - +P060 - +P061 - +P071 - +P072 - +P073 - +P074 - +P075 - +P076 - +P077 - +P078 - +P079 - +P080 - +P024 - +S001 - +S002 - +S003 - +S008 - +E101 - +E201 - +E115 - +E215 - +E118 - +E218 - +E107 - +E207 - +E111 - +E211 - +E112 - +E212 - +E109 - +E209 - +E121 - +E221 - +E103 - +E203 - +E123 - +E223 - +E124 - +E224 - +E128 - +E228 - +E119 - +E219 - +E120 - +E220 - +E122 - +E222 - +E125 - +E225 - +E126 - +E226 - +E106 - +E206 - +E127 - +E227 - +E001 - +E002 - +E003 - +E008 - +E007 - +E010 - +E011 + +E012 + +E009 - +E004 - +E005 - +E013 - +E014 - +E006 - +F002 - +F014 - +F015 - +F016 - +F001 - +F003 - +F004 - +F005 - +F007 - +F008 - +F009 - +F006 - +F010 - +F011 - +F012 - +F013 - +Y001 - +Y002 - +Y003 - +Y004 - +Y005 - +Y006 - +Y007 - +C012 - +C002 - +C013 - +C007 - +C008 - +C009 - +C010 - +C011 - +C014 - +C015 - +C101 - +C201 - +C102 - +L001 - +L003 - +L004 - +L005 - +U001 - +U004 - +U005 - +U006 - +U007 - +W001 - +W011 - +W004 - +W005 - +W010 - +W009 - +P017 - +W006 - +W008 - +M006 - +M011 - +M010 - +O003 - +O001 - +S012 - +S013 - +S014 - +K001 - +K002 - +K005 - +M025 - +M003 - +M015 - +M016 - +M017 - +M018 - +M019 - +M020 - +M021 - +M022 - +M001 - +M004 - +M005 - +M024 - +M012 - +M013 - +M014 - +N001 -' +$sync.configs.ooshutup10_recommended = '############################################################################ +# This file was created with O&O ShutUp10++ V1.9.1436 +# and can be imported onto another computer. +# +# Download the application at https://www.oo-software.com/shutup10 +# You can then import the file from within the program. +# +# Alternatively you can import it automatically over a command line. +# Simply use the following parameter: +# OOSU10.exe +# +# Selecting the Option /quiet ends the app right after the import and the +# user does not get any feedback about the import. +# +# We are always happy to answer any questions you may have! +# ? 2015-2023 O&O Software GmbH, Berlin. All rights reserved. +# https://www.oo-software.com/ +############################################################################ + +P001 + +P002 + +P003 + +P004 + +P005 + +P006 + +P008 + +P026 + +P027 + +P028 + +P064 + +P065 + +P066 + +P067 + +P070 + +P069 + +P009 - +P010 - +P015 - +P068 - +P016 - +A001 + +A002 + +A003 + +A004 + +A006 + +A005 + +P007 + +P036 + +P025 + +P033 + +P023 + +P056 - +P057 - +P012 - +P034 - +P013 - +P035 - +P062 - +P063 - +P081 - +P047 - +P019 - +P048 - +P049 - +P020 - +P037 - +P011 - +P038 - +P050 - +P051 - +P018 - +P039 - +P021 - +P040 - +P022 - +P041 - +P014 - +P042 - +P052 - +P053 - +P054 - +P055 - +P029 - +P043 - +P030 - +P044 - +P031 - +P045 - +P032 - +P046 - +P058 - +P059 - +P060 - +P061 - +P071 - +P072 - +P073 - +P074 - +P075 - +P076 - +P077 - +P078 - +P079 - +P080 - +P024 - +S001 + +S002 + +S003 + +S008 - +E101 + +E201 + +E115 + +E215 + +E118 + +E218 + +E107 + +E207 + +E111 + +E211 + +E112 + +E212 + +E109 + +E209 + +E121 + +E221 + +E103 + +E203 + +E123 + +E223 + +E124 + +E224 + +E128 + +E228 + +E119 - +E219 - +E120 - +E220 - +E122 - +E222 - +E125 - +E225 - +E126 - +E226 - +E106 - +E206 - +E127 - +E227 - +E001 + +E002 + +E003 + +E008 + +E007 + +E010 + +E011 + +E012 + +E009 - +E004 - +E005 - +E013 - +E014 - +E006 - +F002 + +F014 + +F015 + +F016 + +F001 + +F003 + +F004 + +F005 + +F007 + +F008 + +F009 + +F006 - +F010 - +F011 - +F012 - +F013 - +Y001 + +Y002 + +Y003 + +Y004 + +Y005 + +Y006 + +Y007 + +C012 + +C002 + +C013 + +C007 + +C008 + +C009 + +C010 + +C011 + +C014 + +C015 + +C101 + +C201 + +C102 + +L001 + +L003 + +L004 - +L005 - +U001 + +U004 + +U005 + +U006 + +U007 + +W001 + +W011 + +W004 - +W005 - +W010 - +W009 - +P017 - +W006 - +W008 - +M006 + +M011 - +M010 - +O003 - +O001 - +S012 - +S013 - +S014 - +K001 + +K002 + +K005 + +M025 + +M003 - +M015 - +M016 - +M017 - +M018 - +M019 - +M020 - +M021 - +M022 + +M001 + +M004 + +M005 + +M024 + +M012 - +M013 - +M014 - +N001 -' $inputXML = ' Date: Fri, 10 May 2024 06:13:57 +0200 Subject: [PATCH 042/106] Only install choco if needed (#1943) --- functions/private/Install-WinUtilWinget.ps1 | 2 ++ functions/public/Invoke-WPFFixesWinget.ps1 | 3 ++- functions/public/Invoke-WPFGetIso.ps1 | 2 ++ scripts/main.ps1 | 4 ++-- 4 files changed, 8 insertions(+), 3 deletions(-) diff --git a/functions/private/Install-WinUtilWinget.ps1 b/functions/private/Install-WinUtilWinget.ps1 index 093a5c35..601d3c30 100644 --- a/functions/private/Install-WinUtilWinget.ps1 +++ b/functions/private/Install-WinUtilWinget.ps1 @@ -53,6 +53,8 @@ function Install-WinUtilWinget { Write-Host "Failure detected while installing via GitHub method. Continuing with Chocolatey method as fallback." -ForegroundColor Red # In case install fails via GitHub method. Try { + # Install Choco if not already present + Install-WinUtilChoco Start-Process -Verb runas -FilePath powershell.exe -ArgumentList "choco install winget-cli" Write-Host "Winget Installed" -ForegroundColor Green Write-Output "Refreshing Environment Variables...`n" diff --git a/functions/public/Invoke-WPFFixesWinget.ps1 b/functions/public/Invoke-WPFFixesWinget.ps1 index 5dd53a6b..96b5bb7f 100644 --- a/functions/public/Invoke-WPFFixesWinget.ps1 +++ b/functions/public/Invoke-WPFFixesWinget.ps1 @@ -7,7 +7,8 @@ function Invoke-WPFFixesWinget { .DESCRIPTION BravoNorris for the fantastic idea of a button to reinstall winget #> - + # Install Choco if not already present + Install-WinUtilChoco Start-Process -FilePath "choco" -ArgumentList "install winget -y --force" -NoNewWindow -Wait } \ No newline at end of file diff --git a/functions/public/Invoke-WPFGetIso.ps1 b/functions/public/Invoke-WPFGetIso.ps1 index 1b448a4f..483c494a 100644 --- a/functions/public/Invoke-WPFGetIso.ps1 +++ b/functions/public/Invoke-WPFGetIso.ps1 @@ -41,6 +41,8 @@ function Invoke-WPFGetIso { # you consent to downloading it, no need to show extra dialogs [System.Windows.MessageBox]::Show("oscdimge.exe is not found on the system, winutil will now attempt do download and install it using choco. This might take a long time.") # the step below needs choco to download oscdimg + # Install Choco if not already present + Install-WinUtilChoco $chocoFound = [bool] (Get-Command -ErrorAction Ignore -Type Application choco) Write-Host "choco on system: $chocoFound" if (!$chocoFound) diff --git a/scripts/main.ps1 b/scripts/main.ps1 index 38007969..cc9aaa35 100644 --- a/scripts/main.ps1 +++ b/scripts/main.ps1 @@ -145,8 +145,8 @@ Invoke-WPFRunspace -ScriptBlock { # Print the logo Invoke-WPFFormVariables -# Check if Chocolatey is installed -Install-WinUtilChoco +# Install Winget if not already present +Install-WinUtilWinget # Set the titlebar $sync["Form"].title = $sync["Form"].title + " " + $sync.version From 7d8ff5e0f94ea804b050998becb77c0aef7908a9 Mon Sep 17 00:00:00 2001 From: ChrisTitusTech Date: Fri, 10 May 2024 04:14:20 +0000 Subject: [PATCH 043/106] Compile Winutil --- winutil.ps1 | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/winutil.ps1 b/winutil.ps1 index 6e5a2176..70ac5992 100644 --- a/winutil.ps1 +++ b/winutil.ps1 @@ -845,6 +845,8 @@ function Install-WinUtilWinget { Write-Host "Failure detected while installing via GitHub method. Continuing with Chocolatey method as fallback." -ForegroundColor Red # In case install fails via GitHub method. Try { + # Install Choco if not already present + Install-WinUtilChoco Start-Process -Verb runas -FilePath powershell.exe -ArgumentList "choco install winget-cli" Write-Host "Winget Installed" -ForegroundColor Green Write-Output "Refreshing Environment Variables...`n" @@ -3228,7 +3230,8 @@ function Invoke-WPFFixesWinget { .DESCRIPTION BravoNorris for the fantastic idea of a button to reinstall winget #> - + # Install Choco if not already present + Install-WinUtilChoco Start-Process -FilePath "choco" -ArgumentList "install winget -y --force" -NoNewWindow -Wait } @@ -3357,6 +3360,8 @@ function Invoke-WPFGetIso { # you consent to downloading it, no need to show extra dialogs [System.Windows.MessageBox]::Show("oscdimge.exe is not found on the system, winutil will now attempt do download and install it using choco. This might take a long time.") # the step below needs choco to download oscdimg + # Install Choco if not already present + Install-WinUtilChoco $chocoFound = [bool] (Get-Command -ErrorAction Ignore -Type Application choco) Write-Host "choco on system: $chocoFound" if (!$chocoFound) @@ -13704,8 +13709,8 @@ Invoke-WPFRunspace -ScriptBlock { # Print the logo Invoke-WPFFormVariables -# Check if Chocolatey is installed -Install-WinUtilChoco +# Install Winget if not already present +Install-WinUtilWinget # Set the titlebar $sync["Form"].title = $sync["Form"].title + " " + $sync.version From 5c65f32fdf78671c6a4cb1bc5dae27a428a61532 Mon Sep 17 00:00:00 2001 From: Chris Titus Date: Thu, 9 May 2024 23:14:54 -0700 Subject: [PATCH 044/106] Install Choco if needed --- functions/private/Install-WinUtilProgramWinget.ps1 | 1 + 1 file changed, 1 insertion(+) diff --git a/functions/private/Install-WinUtilProgramWinget.ps1 b/functions/private/Install-WinUtilProgramWinget.ps1 index 2aa10bae..187bb37c 100644 --- a/functions/private/Install-WinUtilProgramWinget.ps1 +++ b/functions/private/Install-WinUtilProgramWinget.ps1 @@ -59,6 +59,7 @@ Function Install-WinUtilProgramWinget { continue } Write-Host "Attempting installation with Chocolatey as a fallback method" + Install-WinUtilChoco $status = $(Start-Process -FilePath "choco" -ArgumentList "install $Program -y" -Wait -PassThru).ExitCode if($status -eq 0){ Write-Host "$Program installed successfully using Chocolatey." From 6e201305c91c56928caa29900d73fa47866f0159 Mon Sep 17 00:00:00 2001 From: ChrisTitusTech Date: Fri, 10 May 2024 04:15:31 +0000 Subject: [PATCH 045/106] Compile Winutil --- winutil.ps1 | 1 + 1 file changed, 1 insertion(+) diff --git a/winutil.ps1 b/winutil.ps1 index 70ac5992..aee1eeea 100644 --- a/winutil.ps1 +++ b/winutil.ps1 @@ -762,6 +762,7 @@ Function Install-WinUtilProgramWinget { continue } Write-Host "Attempting installation with Chocolatey as a fallback method" + Install-WinUtilChoco $status = $(Start-Process -FilePath "choco" -ArgumentList "install $Program -y" -Wait -PassThru).ExitCode if($status -eq 0){ Write-Host "$Program installed successfully using Chocolatey." From 800a5085fca5cdfad17c0310b330f277106a1f62 Mon Sep 17 00:00:00 2001 From: Andrew <121936658+7gxycn08@users.noreply.github.com> Date: Sun, 12 May 2024 00:45:32 +0400 Subject: [PATCH 046/106] Added ForceAutoHDR application to applications.json (#1951) * Added ForceAutoHDR application to applications.json Entry added on line 2642 * Update config/applications.json Yep my bad I though games related tools should be under "Games" Co-authored-by: Mr.k --------- Co-authored-by: Mr.k --- config/applications.json | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/config/applications.json b/config/applications.json index 4cfd0904..989839e9 100644 --- a/config/applications.json +++ b/config/applications.json @@ -2694,5 +2694,13 @@ "description": "The customization marketplace for Windows programs", "link": "https://windhawk.net", "winget": "RamenSoftware.Windhawk" + }, + "WPFInstallForceAutoHDR": { + "category": "Utilities", + "choco": "na", + "content": "GUI That Forces Auto HDR In Unsupported Games", + "description": "ForceAutoHDR simplifies the process of adding games to the AutoHDR list in the Windows Registry", + "link": "https://github.com/7gxycn08/ForceAutoHDR", + "winget": "ForceAutoHDR.7gxycn08" } } From c78a48d67025c8e68adee12e4fa958cccbf7972c Mon Sep 17 00:00:00 2001 From: ChrisTitusTech Date: Sat, 11 May 2024 20:45:57 +0000 Subject: [PATCH 047/106] Compile Winutil --- winutil.ps1 | 21 ++++++++++++++++----- xaml/inputApp.xaml | 9 ++++++--- 2 files changed, 22 insertions(+), 8 deletions(-) diff --git a/winutil.ps1 b/winutil.ps1 index aee1eeea..e5ce7fcf 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 + Version : 24.05.11 #> param ( [switch]$Debug, @@ -47,7 +47,7 @@ Add-Type -AssemblyName System.Windows.Forms # Variable to sync between runspaces $sync = [Hashtable]::Synchronized(@{}) $sync.PSScriptRoot = $PSScriptRoot -$sync.version = "24.05.10" +$sync.version = "24.05.11" $sync.configs = @{} $sync.ProcessRunning = $false @@ -7738,6 +7738,14 @@ $sync.configs.applications = '{ "description": "The customization marketplace for Windows programs", "link": "https://windhawk.net", "winget": "RamenSoftware.Windhawk" + }, + "WPFInstallForceAutoHDR": { + "category": "Utilities", + "choco": "na", + "content": "GUI That Forces Auto HDR In Unsupported Games", + "description": "ForceAutoHDR simplifies the process of adding games to the AutoHDR list in the Windows Registry", + "link": "https://github.com/7gxycn08/ForceAutoHDR", + "winget": "ForceAutoHDR.7gxycn08" } }' | convertfrom-json $sync.configs.dns = '{ @@ -12919,6 +12927,9 @@ $inputXML = ' + + + @@ -12960,15 +12971,15 @@ $inputXML = ' - - - + + + diff --git a/xaml/inputApp.xaml b/xaml/inputApp.xaml index 3c19da16..d8953256 100644 --- a/xaml/inputApp.xaml +++ b/xaml/inputApp.xaml @@ -797,6 +797,9 @@ + + + @@ -838,15 +841,15 @@ - - - + + + From 4993407f2c155e93622cf61c4065a8fc3b06c2fe Mon Sep 17 00:00:00 2001 From: Jelle <89023848+mrjbongo@users.noreply.github.com> Date: Sat, 11 May 2024 22:46:08 +0200 Subject: [PATCH 048/106] add Godot Engine to applications.json (#1933) Added Godot Engine (https://godotengine.org/). Godot Engine is a free, open-source 2D and 3D game engine with a focus on usability and flexibility. --- config/applications.json | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/config/applications.json b/config/applications.json index 989839e9..f7a57d53 100644 --- a/config/applications.json +++ b/config/applications.json @@ -743,6 +743,14 @@ "link": "https://www.glarysoft.com/glary-utilities/", "winget": "Glarysoft.GlaryUtilities" }, + "WPFInstallgodotengine": { + "category": "Development", + "choco": "godot", + "content": "Godot Engine", + "description": "Godot Engine is a free, open-source 2D and 3D game engine with a focus on usability and flexibility.", + "link": "https://godotengine.org/", + "winget": "GodotEngine.GodotEngine" + }, "WPFInstallgog": { "category": "Games", "choco": "goggalaxy", From a0db6cfdce73ec8c09cfded1a0977a41a9cec606 Mon Sep 17 00:00:00 2001 From: ChrisTitusTech Date: Sat, 11 May 2024 20:46:32 +0000 Subject: [PATCH 049/106] Compile Winutil --- winutil.ps1 | 35 +++++++++++++++++++++++------------ xaml/inputApp.xaml | 27 +++++++++++++++------------ 2 files changed, 38 insertions(+), 24 deletions(-) diff --git a/winutil.ps1 b/winutil.ps1 index e5ce7fcf..b82e0923 100644 --- a/winutil.ps1 +++ b/winutil.ps1 @@ -5787,6 +5787,14 @@ $sync.configs.applications = '{ "link": "https://www.glarysoft.com/glary-utilities/", "winget": "Glarysoft.GlaryUtilities" }, + "WPFInstallgodotengine": { + "category": "Development", + "choco": "godot", + "content": "Godot Engine", + "description": "Godot Engine is a free, open-source 2D and 3D game engine with a focus on usability and flexibility.", + "link": "https://godotengine.org/", + "winget": "GodotEngine.GodotEngine" + }, "WPFInstallgog": { "category": "Games", "choco": "goggalaxy", @@ -12288,6 +12296,9 @@ $inputXML = ' + + + @@ -12338,15 +12349,15 @@ $inputXML = ' - - - + + + @@ -12544,15 +12555,15 @@ $inputXML = ' + + + @@ -12758,15 +12769,15 @@ $inputXML = ' + + + @@ -12968,15 +12979,15 @@ $inputXML = ' - - - + + + diff --git a/xaml/inputApp.xaml b/xaml/inputApp.xaml index d8953256..23531409 100644 --- a/xaml/inputApp.xaml +++ b/xaml/inputApp.xaml @@ -158,6 +158,9 @@ + + + @@ -208,15 +211,15 @@ - - - + + + @@ -414,15 +417,15 @@ + + + @@ -628,15 +631,15 @@ + + + @@ -838,15 +841,15 @@ - - - + + + From d893c0512a7dad134ab6dc51cd0be3272aa45c45 Mon Sep 17 00:00:00 2001 From: Marc Brooks Date: Sat, 11 May 2024 15:46:37 -0500 Subject: [PATCH 050/106] Add GitKraken Client (#1927) Adds development utility client for git repository management --- config/applications.json | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/config/applications.json b/config/applications.json index f7a57d53..b568a0d9 100644 --- a/config/applications.json +++ b/config/applications.json @@ -735,6 +735,14 @@ "link": "https://desktop.github.com/", "winget": "Git.Git;GitHub.GitHubDesktop" }, + "WPFInstallgitkrakenclient": { + "category": "Development", + "choco": "gitkraken", + "content": "GitKraken Client", + "description": "GitKraken Client is a powerful visual Git client from Axosoft that works with ALL git repositories on any hosting environment.", + "link": "https://www.gitkraken.com/git-client", + "winget": "Axosoft.GitKraken" + }, "WPFInstallglaryutilities": { "category": "Utilities", "choco": "glaryutilities-free", From 794d390a7faba18ac282a3d0a0971171180c9053 Mon Sep 17 00:00:00 2001 From: ChrisTitusTech Date: Sat, 11 May 2024 20:47:02 +0000 Subject: [PATCH 051/106] Compile Winutil --- winutil.ps1 | 27 +++++++++++++++++++-------- xaml/inputApp.xaml | 19 +++++++++++-------- 2 files changed, 30 insertions(+), 16 deletions(-) diff --git a/winutil.ps1 b/winutil.ps1 index b82e0923..e254c343 100644 --- a/winutil.ps1 +++ b/winutil.ps1 @@ -5779,6 +5779,14 @@ $sync.configs.applications = '{ "link": "https://desktop.github.com/", "winget": "Git.Git;GitHub.GitHubDesktop" }, + "WPFInstallgitkrakenclient": { + "category": "Development", + "choco": "gitkraken", + "content": "GitKraken Client", + "description": "GitKraken Client is a powerful visual Git client from Axosoft that works with ALL git repositories on any hosting environment.", + "link": "https://www.gitkraken.com/git-client", + "winget": "Axosoft.GitKraken" + }, "WPFInstallglaryutilities": { "category": "Utilities", "choco": "glaryutilities-free", @@ -12296,6 +12304,9 @@ $inputXML = ' + + + @@ -12346,15 +12357,15 @@ $inputXML = ' - - - + + + @@ -12554,12 +12565,12 @@ $inputXML = ' - + - + - - - + + + diff --git a/xaml/inputApp.xaml b/xaml/inputApp.xaml index 23531409..229031f5 100644 --- a/xaml/inputApp.xaml +++ b/xaml/inputApp.xaml @@ -158,6 +158,9 @@ + + + @@ -208,15 +211,15 @@ - - - + + + @@ -416,12 +419,12 @@ - + + + + + From eec184ee81c5e4140c9a58db1595f9bb8f2ff187 Mon Sep 17 00:00:00 2001 From: Hayden Plumley Date: Sat, 11 May 2024 13:48:18 -0700 Subject: [PATCH 052/106] Simplified Admin Check and Added Code Comments (#1938) - Simplified the admin check by filtering the "WindowsIdentity" class for owner value and comparing against admin value - Removed the need for an if admin check by moving its commands under the if not admin check. - Added code comments --- scripts/start.ps1 | 19 +++++++------------ 1 file changed, 7 insertions(+), 12 deletions(-) diff --git a/scripts/start.ps1 b/scripts/start.ps1 index a2b65b01..4f68920a 100644 --- a/scripts/start.ps1 +++ b/scripts/start.ps1 @@ -44,21 +44,16 @@ $sync.version = "#{replaceme}" $sync.configs = @{} $sync.ProcessRunning = $false -$currentPid = [System.Security.Principal.WindowsIdentity]::GetCurrent() -$principal = new-object System.Security.Principal.WindowsPrincipal($currentPid) -$adminRole=[System.Security.Principal.WindowsBuiltInRole]::Administrator - - -if ($principal.IsInRole($adminRole)) -{ - $Host.UI.RawUI.WindowTitle = $myInvocation.MyCommand.Definition + "(Admin)" - clear-host -} -else +# If script isn't running as admin, show error message and quit +If (([Security.Principal.WindowsIdentity]::GetCurrent()).Owner.Value -ne "S-1-5-32-544") { Write-Host "===========================================" -Foregroundcolor Red Write-Host "-- Scripts must be run as Administrator ---" -Foregroundcolor Red Write-Host "-- Right-Click Start -> Terminal(Admin) ---" -Foregroundcolor Red Write-Host "===========================================" -Foregroundcolor Red break -} \ No newline at end of file +} + +# Set PowerShell window title +$Host.UI.RawUI.WindowTitle = $myInvocation.MyCommand.Definition + "(Admin)" +clear-host From 15eb12af1163f674205c5ec706e2449a4589158f Mon Sep 17 00:00:00 2001 From: ChrisTitusTech Date: Sat, 11 May 2024 20:48:42 +0000 Subject: [PATCH 053/106] Compile Winutil --- winutil.ps1 | 17 ++++++----------- 1 file changed, 6 insertions(+), 11 deletions(-) diff --git a/winutil.ps1 b/winutil.ps1 index e254c343..13daae3e 100644 --- a/winutil.ps1 +++ b/winutil.ps1 @@ -51,17 +51,8 @@ $sync.version = "24.05.11" $sync.configs = @{} $sync.ProcessRunning = $false -$currentPid = [System.Security.Principal.WindowsIdentity]::GetCurrent() -$principal = new-object System.Security.Principal.WindowsPrincipal($currentPid) -$adminRole=[System.Security.Principal.WindowsBuiltInRole]::Administrator - - -if ($principal.IsInRole($adminRole)) -{ - $Host.UI.RawUI.WindowTitle = $myInvocation.MyCommand.Definition + "(Admin)" - clear-host -} -else +# If script isn't running as admin, show error message and quit +If (([Security.Principal.WindowsIdentity]::GetCurrent()).Owner.Value -ne "S-1-5-32-544") { Write-Host "===========================================" -Foregroundcolor Red Write-Host "-- Scripts must be run as Administrator ---" -Foregroundcolor Red @@ -69,6 +60,10 @@ else Write-Host "===========================================" -Foregroundcolor Red break } + +# Set PowerShell window title +$Host.UI.RawUI.WindowTitle = $myInvocation.MyCommand.Definition + "(Admin)" +clear-host function ConvertTo-Icon { <# From f130fc6c495e87e6559f4b1b3dbb5c61139a2c56 Mon Sep 17 00:00:00 2001 From: Berrick Werkman <105836264+BKlaasWerkman@users.noreply.github.com> Date: Sat, 11 May 2024 15:52:52 -0500 Subject: [PATCH 054/106] Main window handle (#1941) Condition is comparing $proc.Id with [System.IntPtr]::Zero. The Id property is an integer, representing the process ID, and it's not directly related to window handles. Instead, you should compare the MainWindowHandle property against [System.IntPtr]::Zero --- scripts/main.ps1 | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/scripts/main.ps1 b/scripts/main.ps1 index cc9aaa35..5507d641 100644 --- a/scripts/main.ps1 +++ b/scripts/main.ps1 @@ -271,10 +271,14 @@ Add-Type @" "@ } - foreach ($proc in (Get-Process | Where-Object { $_.MainWindowTitle -and $_.MainWindowTitle -like "*titus*" })) { - if ($proc.Id -ne [System.IntPtr]::Zero) { + foreach ($proc in (Get-Process | Where-Object { $_.MainWindowTitle -and $_.MainWindowTitle -like "*titus*" })) { + # Check if the process's MainWindowHandle is valid + if ($proc.MainWindowHandle -ne [System.IntPtr]::Zero) { Write-Debug "MainWindowHandle: $($proc.Id) $($proc.MainWindowTitle) $($proc.MainWindowHandle)" $windowHandle = $proc.MainWindowHandle + } else { + Write-Warning "Process found, but no MainWindowHandle: $($proc.Id) $($proc.MainWindowTitle)" + } } From 3c2b236d0a21186bcff3bc69550b12d8d87c8ee5 Mon Sep 17 00:00:00 2001 From: ChrisTitusTech Date: Sat, 11 May 2024 20:53:18 +0000 Subject: [PATCH 055/106] Compile Winutil --- winutil.ps1 | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/winutil.ps1 b/winutil.ps1 index 13daae3e..66f21eb2 100644 --- a/winutil.ps1 +++ b/winutil.ps1 @@ -13864,10 +13864,14 @@ Add-Type @" "@ } - foreach ($proc in (Get-Process | Where-Object { $_.MainWindowTitle -and $_.MainWindowTitle -like "*titus*" })) { - if ($proc.Id -ne [System.IntPtr]::Zero) { + foreach ($proc in (Get-Process | Where-Object { $_.MainWindowTitle -and $_.MainWindowTitle -like "*titus*" })) { + # Check if the process's MainWindowHandle is valid + if ($proc.MainWindowHandle -ne [System.IntPtr]::Zero) { Write-Debug "MainWindowHandle: $($proc.Id) $($proc.MainWindowTitle) $($proc.MainWindowHandle)" $windowHandle = $proc.MainWindowHandle + } else { + Write-Warning "Process found, but no MainWindowHandle: $($proc.Id) $($proc.MainWindowTitle)" + } } From 9850ffd2c2b3f0ddb3a649a6e8d6144d7ae24c94 Mon Sep 17 00:00:00 2001 From: o-iu <168581616+o-iu@users.noreply.github.com> Date: Sat, 11 May 2024 17:54:18 -0300 Subject: [PATCH 056/106] Add SMPlayer to `applications.json` (#1948) * Add SMPlayer to `applications.json` * Fix formatting --------- Co-authored-by: Chris Titus --- config/applications.json | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/config/applications.json b/config/applications.json index b568a0d9..9f69473b 100644 --- a/config/applications.json +++ b/config/applications.json @@ -2679,6 +2679,14 @@ "link": "https://github.com/magic-wormhole/magic-wormhole", "winget": "magic-wormhole.magic-wormhole" }, + "WPFInstallsmplayer": { + "category": "Multimedia Tools", + "choco": "smplayer", + "content": "SMPlayer", + "description": "SMPlayer is a free media player for Windows and Linux with built-in codecs that can play virtually all video and audio formats.", + "link": "https://www.smplayer.info", + "winget": "SMPlayer.SMPlayer" + }, "WPFInstalglazewm": { "category": "Utilities", "choco": "na", From 2c5544c4c7aea43a79a7848ce74f26604d7010e2 Mon Sep 17 00:00:00 2001 From: ChrisTitusTech Date: Sat, 11 May 2024 20:54:40 +0000 Subject: [PATCH 057/106] Compile Winutil --- winutil.ps1 | 23 +++++++++++++++++------ xaml/inputApp.xaml | 15 +++++++++------ 2 files changed, 26 insertions(+), 12 deletions(-) diff --git a/winutil.ps1 b/winutil.ps1 index 66f21eb2..7c002b2f 100644 --- a/winutil.ps1 +++ b/winutil.ps1 @@ -7718,6 +7718,14 @@ $sync.configs.applications = '{ "link": "https://github.com/magic-wormhole/magic-wormhole", "winget": "magic-wormhole.magic-wormhole" }, + "WPFInstallsmplayer": { + "category": "Multimedia Tools", + "choco": "smplayer", + "content": "SMPlayer", + "description": "SMPlayer is a free media player for Windows and Linux with built-in codecs that can play virtually all video and audio formats.", + "link": "https://www.smplayer.info", + "winget": "SMPlayer.SMPlayer" + }, "WPFInstalglazewm": { "category": "Utilities", "choco": "na", @@ -12751,6 +12759,9 @@ $inputXML = ' + + + @@ -12771,14 +12782,14 @@ $inputXML = ' - - - + + + + + + diff --git a/xaml/inputApp.xaml b/xaml/inputApp.xaml index 229031f5..8046162c 100644 --- a/xaml/inputApp.xaml +++ b/xaml/inputApp.xaml @@ -610,6 +610,9 @@ + + + @@ -630,14 +633,14 @@ - - - + + + + + + From dd705267318505b002a860c566a57f44707f6a9d Mon Sep 17 00:00:00 2001 From: MyDrift Date: Sat, 11 May 2024 23:01:48 +0200 Subject: [PATCH 058/106] Adobe Network Blocking / Adobe Debloater / Tweak Fixes & more (#1954) * Added Applications AFFiNE: Open source Notion alternative with selfhostable option for syncing. Wazuh Agent: Adgent for open-source security monitoring platform * Change layout of toggles Change the layout of the toggles to first show toggles and then the content (text). - testet, works * added snap related toggles - disable snapping entirely (requires relogin of windows user) - disable suggestion to snap other windows next to the snapped window -tested * Layouted Checkboxes, redesigned Toggles & renamed RDCMan - Removed text inside toggle as it can be confusing because it sais "enable" while enabled and "disable" if disabled. The coloring should be enough to know in what state that setting is. - without the text i could make it a little bit smaller while still letting it look good. - Renamed "Remote Desktop Connection Manager (RDCMan)" to "RDCMan" because that name is shorter and also mostly used by the linked site. - layouted checkboxes so they are not more left than the title and look tidy. - tested * Disable Acrobat auto-updates - added script & undoscript to disable automatic downloads & installation of acrobat reader. The user gets a notified if there is an update available. I put some info to that inside the code * edited AFFiNE description * Tweak Adobe Debloater -disable Adobe Desktop Service by getting ownership and renaming it. - added AGMService service - disable AGMService and AGSService entirely * Block Adobe Network, Debloat Adobe & Compile - fixes order of tweaks to always run "WPFTweaksRestorePoint" first. Before it was only the case because if was one of the first letter0s of the alphabet - Fixed some stuff at Debloat Adobe & added Adobe Reader update stopper & "deactivated" Adobe Desktop Service. - Added Blocking of Adobe Servers (as of your suggestion) to it's own Tweak. - ran compile for testing & showing * undo compilation * added Note to AcrobatUpdates Management in Tweak "Debloat Adobe" * Fix Right Click Method to use accurate names * fixed my mistake in README --------- Co-authored-by: Chris Titus --- README.md | 2 +- config/applications.json | 18 +- config/tweaks.json | 245 +++++++++++++++++- functions/private/Get-TabXaml.ps1 | 5 +- functions/private/Get-WinUtilCheckBoxes.ps1 | 22 +- functions/private/Get-WinUtilToggleStatus.ps1 | 18 ++ .../private/Invoke-WinUtilSnapSuggestion.ps1 | 34 +++ .../private/Invoke-WinUtilSnapWindow.ps1 | 31 +++ functions/public/Invoke-WPFToggle.ps1 | 2 + winutil.ps1 | 17 +- xaml/inputApp.xaml | 14 +- xaml/inputXML.xaml | 36 +-- 12 files changed, 386 insertions(+), 58 deletions(-) create mode 100644 functions/private/Invoke-WinUtilSnapSuggestion.ps1 create mode 100644 functions/private/Invoke-WinUtilSnapWindow.ps1 diff --git a/README.md b/README.md index 60c4fec2..a921ad79 100644 --- a/README.md +++ b/README.md @@ -10,7 +10,7 @@ Winutil must be run in Admin mode because it performs system-wide tweaks. To ach 1. **Right-Click Method:** - Right-click on the start menu. - - Choose "PowerShell As Admin" (for Windows 10) or "Windows Terminal As Admin" (for Windows 11). + - Choose "Windows PowerShell (Admin)" (for Windows 10) or "Terminal (Admin)" (for Windows 11). 2. **Search and Launch Method:** - Press the Windows key. diff --git a/config/applications.json b/config/applications.json index 9f69473b..be6d9a7a 100644 --- a/config/applications.json +++ b/config/applications.json @@ -31,6 +31,14 @@ "link": "https://www.advanced-ip-scanner.com/", "winget": "Famatech.AdvancedIPScanner" }, + "WPFInstallaffine": { + "category": "Document", + "choco": "na", + "content": "AFFiNE", + "description": "AFFiNE is an open source alternative to Notion. Write, draw, plan all at once. Selfhost it to sync across devices.", + "link": "https://affine.pro/", + "winget": "AFFiNE.stable" + }, "WPFInstallaimp": { "category": "Multimedia Tools", "choco": "aimp", @@ -106,7 +114,7 @@ "WPFInstallrdcman": { "category": "Microsoft Tools", "choco": "rdcman", - "content": "Remote Desktop Connection Manager (RDCMan)", + "content": "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" @@ -2367,6 +2375,14 @@ "link": "https://www.waterfox.net/", "winget": "Waterfox.Waterfox" }, + "WPFInstallwazuh": { + "category": "Utilities", + "choco": "wazuh-agent", + "content": "Wazuh.", + "description": "Wazuh is an open-source security monitoring platform that offers intrusion detection, compliance checks, and log analysis.", + "link": "https://wazuh.com/", + "winget": "Wazuh.WazuhAgent" + }, "WPFInstallwezterm": { "category": "Development", "choco": "wezterm", diff --git a/config/tweaks.json b/config/tweaks.json index e260bd3e..2b45b9b5 100644 --- a/config/tweaks.json +++ b/config/tweaks.json @@ -34,7 +34,7 @@ "Description": "Hibernation is really meant for laptops as it saves what's in memory before turning the pc off. It really should never be used, but some people are lazy and rely on it. Don't be like Bob. Bob likes hibernation.", "category": "Essential Tweaks", "panel": "1", - "Order": "a011_", + "Order": "a012_", "registry": [ { "Path": "HKLM:\\System\\CurrentControlSet\\Control\\Session Manager\\Power", @@ -63,7 +63,7 @@ "Description": "Disables HomeGroup - HomeGroup is a password-protected home networking service that lets you share your stuff with other PCs that are currently running and connected to your network.", "category": "Essential Tweaks", "panel": "1", - "Order": "a009_", + "Order": "a011_", "service": [ { "Name": "HomeGroupListener", @@ -77,16 +77,110 @@ } ] }, - "WPFTweaksAdobe": { - "Content": "Disable Adobe Services", - "Description": "Disables many of the services that come with Adobe and run in the background.", + "WPFTweaksDebloatAdobe": { + "Content": "Debloat Adobe", + "Description": "Manages Adobe Services, Adobe Desktop Service, and Acrobat Updates", "category": "Essential Tweaks", "panel": "1", - "Order": "a009_", + "Order": "a009_", + "InvokeScript": [ + " + function CCStopper { + $path = \"C:\\Program Files (x86)\\Common Files\\Adobe\\Adobe Desktop Common\\ADS\\Adobe Desktop Service.exe\" + + # Test if the path exists before proceeding + if (Test-Path $path) { + Takeown /f $path + $acl = Get-Acl $path + $acl.SetOwner([System.Security.Principal.NTAccount]\"Administrators\") + $acl | Set-Acl $path + + Rename-Item -Path $path -NewName \"Adobe Desktop Service.exe.old\" -Force + } else { + Write-Host \"Adobe Desktop Service is not in the default location.\" + } + } + + + function AcrobatUpdates { + # Editing Acrobat Updates. The last folder before the key is dynamic, therefore using a script. + # Possible Values for the edited key: + # 0 = Do not download or install updates automatically + # 2 = Automatically download updates but let the user choose when to install them + # 3 = Automatically download and install updates (default value) + # 4 = Notify the user when an update is available but don't download or install it automatically + # = It notifies the user using Windows Notifications. It runs on startup without having to have a Service/Acrobat/Reader running, therefore 0 is the next best thing. + + $rootPath = \"HKLM:\\SOFTWARE\\WOW6432Node\\Adobe\\Adobe ARM\\Legacy\\Acrobat\" + + # Get all subkeys under the specified root path + $subKeys = Get-ChildItem -Path $rootPath | Where-Object { $_.PSChildName -like \"{*}\" } + + # Loop through each subkey + foreach ($subKey in $subKeys) { + # Get the full registry path + $fullPath = Join-Path -Path $rootPath -ChildPath $subKey.PSChildName + try { + Set-ItemProperty -Path $fullPath -Name Mode -Value 0 + Write-Host \"Acrobat Updates have been disabled.\" + } catch { + Write-Host \"Registry Key for changing Acrobat Updates does not exist in $fullPath\" + } + } + } + + CCStopper + AcrobatUpdates + " + ], + "UndoScript": [ + " + function RestoreCCService { + $originalPath = \"C:\\Program Files (x86)\\Common Files\\Adobe\\Adobe Desktop Common\\ADS\\Adobe Desktop Service.exe.old\" + $newPath = \"C:\\Program Files (x86)\\Common Files\\Adobe\\Adobe Desktop Common\\ADS\\Adobe Desktop Service.exe\" + + if (Test-Path -Path $originalPath) { + Rename-Item -Path $originalPath -NewName \"Adobe Desktop Service.exe\" -Force + Write-Host \"Adobe Desktop Service has been restored.\" + } else { + Write-Host \"Backup file does not exist. No changes were made.\" + } + } + + function AcrobatUpdates { + # Default Value: + # 3 = Automatically download and install updates + + $rootPath = \"HKLM:\\SOFTWARE\\WOW6432Node\\Adobe\\Adobe ARM\\Legacy\\Acrobat\" + + # Get all subkeys under the specified root path + $subKeys = Get-ChildItem -Path $rootPath | Where-Object { $_.PSChildName -like \"{*}\" } + + # Loop through each subkey + foreach ($subKey in $subKeys) { + # Get the full registry path + $fullPath = Join-Path -Path $rootPath -ChildPath $subKey.PSChildName + try { + Set-ItemProperty -Path $fullPath -Name Mode -Value 3 + } catch { + Write-Host \"Registry Key for changing Acrobat Updates does not exist in $fullPath\" + } + } + } + + RestoreCCService + AcrobatUpdates + " + ], "service": [ { "Name": "AGSService", - "StartupType": "Manual", + "StartupType": "Disabled", + "OriginalType": "Automatic" + }, + { + "Name": "AGMService", + "StartupType": "Disabled", "OriginalType": "Automatic" }, { @@ -101,7 +195,7 @@ }, { "Name": "Adobe Genuine Monitor Service", - "StartupType": "Manual", + "StartupType": "Disabled", "OriginalType": "Automatic" }, { @@ -131,6 +225,119 @@ } ] }, + "WPFTweaksBlockAdobeNet": { + "Content": "Block Adobe Networking", + "Description": "Reduce user interruptions by selectively blocking connections to Adobe's activation and telemetry servers. ", + "category": "Essential Tweaks", + "panel": "1", + "Order": "a010_", + "InvokeScript": [ + " + # Define the URL of the remote HOSTS file and the local paths + $remoteHostsUrl = \"https://raw.githubusercontent.com/Ruddernation-Designs/Adobe-URL-Block-List/master/hosts\" + $localHostsPath = \"C:\\Windows\\System32\\drivers\\etc\\hosts\" + $tempHostsPath = \"C:\\Windows\\System32\\drivers\\etc\\temp_hosts\" + + # Download the remote HOSTS file to a temporary location + try { + Invoke-WebRequest -Uri $remoteHostsUrl -OutFile $tempHostsPath + Write-Output \"Downloaded the remote HOSTS file to a temporary location.\" + } + catch { + Write-Error \"Failed to download the HOSTS file. Error: $_\" + } + + # Check if the AdobeNetBlock has already been started + try { + $localHostsContent = Get-Content $localHostsPath -ErrorAction Stop + + # Check if AdobeNetBlock markers exist + $blockStartExists = $localHostsContent -like \"*#AdobeNetBlock-start*\" + if ($blockStartExists) { + Write-Output \"AdobeNetBlock-start already exists. Skipping addition of new block.\" + } else { + # Load the new block from the downloaded file + $newBlockContent = Get-Content $tempHostsPath -ErrorAction Stop + $newBlockContent = $newBlockContent | Where-Object { $_ -notmatch \"^\\s*#\" -and $_ -ne \"\" } # Exclude empty lines and comments + $newBlockHeader = \"#AdobeNetBlock-start\" + $newBlockFooter = \"#AdobeNetBlock-end\" + + # Combine the contents, ensuring new block is properly formatted + $combinedContent = $localHostsContent + $newBlockHeader, $newBlockContent, $newBlockFooter | Out-String + + # Write the combined content back to the original HOSTS file + $combinedContent | Set-Content $localHostsPath -Encoding ASCII + Write-Output \"Successfully added the AdobeNetBlock.\" + } + } + catch { + Write-Error \"Error during processing: $_\" + } + + # Clean up temporary file + Remove-Item $tempHostsPath -ErrorAction Ignore + + # Flush the DNS resolver cache + try { + Invoke-Expression \"ipconfig /flushdns\" + Write-Output \"DNS cache flushed successfully.\" + } + catch { + Write-Error \"Failed to flush DNS cache. Error: $_\" + } + " + ], + "UndoScript": [ + " + # Define the local path of the HOSTS file + $localHostsPath = \"C:\\Windows\\System32\\drivers\\etc\\hosts\" + + # Load the content of the HOSTS file + try { + $hostsContent = Get-Content $localHostsPath -ErrorAction Stop + } + catch { + Write-Error \"Failed to load the HOSTS file. Error: $_\" + return + } + + # Initialize flags and buffer for new content + $recording = $true + $newContent = @() + + # Iterate over each line of the HOSTS file + foreach ($line in $hostsContent) { + if ($line -match \"#AdobeNetBlock-start\") { + $recording = $false + } + if ($recording) { + $newContent += $line + } + if ($line -match \"#AdobeNetBlock-end\") { + $recording = $true + } + } + + # Write the filtered content back to the HOSTS file + try { + $newContent | Set-Content $localHostsPath -Encoding ASCII + Write-Output \"Successfully removed the AdobeNetBlock section from the HOSTS file.\" + } + catch { + Write-Error \"Failed to write back to the HOSTS file. Error: $_\" + } + + # Flush the DNS resolver cache + try { + Invoke-Expression \"ipconfig /flushdns\" + Write-Output \"DNS cache flushed successfully.\" + } + catch { + Write-Error \"Failed to flush DNS cache. Error: $_\" + } + " + ] + }, "WPFTweaksLoc": { "Content": "Disable Location Tracking", "Description": "Disables Location Tracking...DUH!", @@ -2687,12 +2894,28 @@ "Order": "a064_", "Type": "Toggle" }, + "WPFToggleSnapWindow": { + "Content": "Snap Window", + "Description": "If enabled you can align windows by dragging them. | Relogin Required", + "category": "Customize Preferences", + "panel": "2", + "Order": "a065_", + "Type": "Toggle" + }, "WPFToggleSnapFlyout": { "Content": "Snap Assist Flyout", "Description": "If enabled then Snap preview is disabled when maximize button is hovered.", "category": "Customize Preferences", "panel": "2", - "Order": "a065_", + "Order": "a066_", + "Type": "Toggle" + }, + "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": "a067_", "Type": "Toggle" }, "WPFToggleMouseAcceleration": { @@ -2700,7 +2923,7 @@ "Description": "If Enabled then Cursor movement is affected by the speed of your physical mouse movements.", "category": "Customize Preferences", "panel": "2", - "Order": "a066_", + "Order": "a068_", "Type": "Toggle" }, "WPFToggleStickyKeys": { @@ -2708,7 +2931,7 @@ "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": "a067_", + "Order": "a069_", "Type": "Toggle" }, "WPFOOSUbutton": { diff --git a/functions/private/Get-TabXaml.ps1 b/functions/private/Get-TabXaml.ps1 index a420e344..c4bccb9e 100644 --- a/functions/private/Get-TabXaml.ps1 +++ b/functions/private/Get-TabXaml.ps1 @@ -91,8 +91,9 @@ function Get-TabXaml { } $appInfo = $organizedData[$panel][$category][$appName] if ("Toggle" -eq $appInfo.Type) { - $blockXml += "`n`n" + $blockXml += "`n" + $blockXml += "`n" + $blockXml += "`n" } elseif ("Combobox" -eq $appInfo.Type) { $blockXml += "`n + + + - - - @@ -12790,6 +12790,11 @@ $inputXML = ' + + + + + - - - @@ -641,6 +641,11 @@ + + + + + + + + + + - - - + + + + + + + + + + + + + + + + To="{ToggleButtonOnColor}" Duration="0:0:0.1" /> + + + To="18,2,2,2" Duration="0:0:0.1" /> @@ -451,15 +481,15 @@ + To="{MainBackgroundColor}" Duration="0:0:0.1" /> + To="2,2,2,1" Duration="0:0:0.1" /> + - From dfcf4cb8ebd29016efb43464d2d0a151718fdd4c Mon Sep 17 00:00:00 2001 From: ChrisTitusTech Date: Tue, 4 Jun 2024 01:54:08 +0000 Subject: [PATCH 083/106] Compile Winutil --- winutil.ps1 | 258 ++++++++++++++++++++++++++++++------------ xaml/inputTweaks.xaml | 90 ++++++++------- 2 files changed, 233 insertions(+), 115 deletions(-) diff --git a/winutil.ps1 b/winutil.ps1 index e0b9df25..c0fa47e0 100644 --- a/winutil.ps1 +++ b/winutil.ps1 @@ -346,9 +346,8 @@ function Get-TabXaml { } $appInfo = $organizedData[$panel][$category][$appName] if ("Toggle" -eq $appInfo.Type) { - $blockXml += "`n" - $blockXml += "`n" - $blockXml += "`n" + $blockXml += "`n`n" } elseif ("Combobox" -eq $appInfo.Type) { $blockXml += "`n