diff --git a/config/applications.json b/config/applications.json index 7cd07eb2..d3f4fd18 100755 --- a/config/applications.json +++ b/config/applications.json @@ -18,9 +18,9 @@ "WPFInstalladobe": { "category": "Document", "choco": "adobereader", - "content": "Adobe Reader DC", - "description": "Adobe Reader DC is a free PDF viewer with essential features for viewing, printing, and annotating PDF documents.", - "link": "https://acrobat.adobe.com/", + "content": "Adobe Acrobat Reader", + "description": "Adobe Acrobat Reader is a free PDF viewer with essential features for viewing, printing, and annotating PDF documents.", + "link": "https://www.adobe.com/acrobat/pdf-reader.html", "winget": "Adobe.Acrobat.Reader.64-bit" }, "WPFInstalladvancedip": { @@ -258,8 +258,8 @@ "WPFInstallcopyq": { "category": "Multimedia Tools", "choco": "copyq", - "content": "Copyq (Clipboard Manager)", - "description": "Copyq is a clipboard manager with advanced features, allowing you to store, edit, and retrieve clipboard history.", + "content": "CopyQ (Clipboard Manager)", + "description": "CopyQ is a clipboard manager with advanced features, allowing you to store, edit, and retrieve clipboard history.", "link": "https://copyq.readthedocs.io/", "winget": "hluk.CopyQ" }, @@ -290,7 +290,7 @@ "WPFInstalldarktable": { "category": "Multimedia Tools", "choco": "darktable", - "content": "DarkTable", + "content": "darktable", "description": "Open-source photo editing tool, offering an intuitive interface, advanced editing capabilities, and a non-destructive workflow for seamless image enhancement.", "link": "https://www.darktable.org/install/", "winget": "darktable.darktable" @@ -308,7 +308,7 @@ "choco": "ddu", "content": "Display Driver Uninstaller", "description": "Display Driver Uninstaller (DDU) is a tool for completely uninstalling graphics drivers from NVIDIA, AMD, and Intel. It is useful for troubleshooting graphics driver-related issues.", - "link": "https://www.wagnardsoft.com/", + "link": "https://www.wagnardsoft.com/display-driver-uninstaller-DDU-", "winget": "ddu" }, "WPFInstalldeluge": { @@ -321,17 +321,17 @@ }, "WPFInstalldevtoys": { "category": "Utilities", - "choco": "devToys", - "content": "Devtoys", - "description": "Devtoys is a collection of development-related utilities and tools for Windows. It includes tools for file management, code formatting, and productivity enhancements for developers.", + "choco": "devtoys", + "content": "DevToys", + "description": "DevToys is a collection of development-related utilities and tools for Windows. It includes tools for file management, code formatting, and productivity enhancements for developers.", "link": "https://devtoys.app/", - "winget": "devtoys" + "winget": "9PGCV4V3BK4W" }, "WPFInstalldigikam": { "category": "Multimedia Tools", "choco": "digikam", - "content": "DigiKam", - "description": "DigiKam is an advanced open-source photo management software with features for organizing, editing, and sharing photos.", + "content": "digiKam", + "description": "digiKam is an advanced open-source photo management software with features for organizing, editing, and sharing photos.", "link": "https://www.digikam.org/", "winget": "KDE.digikam" }, @@ -387,7 +387,7 @@ "category": "Microsoft Tools", "choco": "dotnet-8.0-runtime", "content": ".NET Desktop Runtime 8", - "description": ".NET Desktop Runtime 8 is a runtime environment required for running applications developed with .NET 7.", + "description": ".NET Desktop Runtime 8 is a runtime environment required for running applications developed with .NET 8.", "link": "https://dotnet.microsoft.com/download/dotnet/8.0", "winget": "Microsoft.DotNet.DesktopRuntime.8" }, @@ -412,14 +412,14 @@ "choco": "ea-app", "content": "EA App", "description": "EA App is a platform for accessing and playing Electronic Arts games.", - "link": "https://www.ea.com/", + "link": "https://www.ea.com/ea-app", "winget": "ElectronicArts.EADesktop" }, "WPFInstalleartrumpet": { "category": "Multimedia Tools", "choco": "eartrumpet", - "content": "Eartrumpet (Audio)", - "description": "Eartrumpet is an audio control app for Windows, providing a simple and intuitive interface for managing sound settings.", + "content": "EarTrumpet (Audio)", + "description": "EarTrumpet is an audio control app for Windows, providing a simple and intuitive interface for managing sound settings.", "link": "https://eartrumpet.app/", "winget": "File-New-Project.EarTrumpet" }, @@ -506,7 +506,7 @@ "WPFInstallffmpeg": { "category": "Multimedia Tools", "choco": "ffmpeg-full", - "content": "Ffmpeg full", + "content": "FFmpeg (full)", "description": "FFmpeg is a powerful multimedia processing tool that enables users to convert, edit, and stream audio and video files with a vast range of codecs and formats.", "link": "https://ffmpeg.org/", "winget": "Gyan.FFmpeg" @@ -554,16 +554,16 @@ "WPFInstallflux": { "category": "Utilities", "choco": "flux", - "content": "f.lux Redshift", - "description": "f.lux Redshift adjusts the color temperature of your screen to reduce eye strain during nighttime use.", + "content": "f.lux", + "description": "f.lux adjusts the color temperature of your screen to reduce eye strain during nighttime use.", "link": "https://justgetflux.com/", "winget": "flux.flux" }, "WPFInstallfoobar": { "category": "Multimedia Tools", "choco": "foobar2000", - "content": "Foobar2000 (Music Player)", - "description": "Foobar2000 is a highly customizable and extensible music player for Windows, known for its modular design and advanced features.", + "content": "foobar2000 (Music Player)", + "description": "foobar2000 is a highly customizable and extensible music player for Windows, known for its modular design and advanced features.", "link": "https://www.foobar2000.org/", "winget": "PeterPawlowski.foobar2000" }, @@ -572,7 +572,7 @@ "choco": "na", "content": "Foxit PDF Editor", "description": "Foxit PDF Editor is a feature-rich PDF editor and viewer with a familiar ribbon-style interface.", - "link": "https://www.foxitsoftware.com/", + "link": "https://www.foxit.com/pdf-editor/", "winget": "Foxit.PhantomPDF" }, "WPFInstallfoxpdfreader": { @@ -580,7 +580,7 @@ "choco": "foxitreader", "content": "Foxit PDF Reader", "description": "Foxit PDF Reader is a free PDF viewer with a familiar ribbon-style interface.", - "link": "https://www.foxitsoftware.com/", + "link": "https://www.foxit.com/pdf-reader/", "winget": "Foxit.FoxitReader" }, "WPFInstallfreecad": { @@ -754,8 +754,8 @@ "WPFInstallhwinfo": { "category": "Utilities", "choco": "hwinfo", - "content": "HWInfo", - "description": "HWInfo provides comprehensive hardware information and diagnostics for Windows.", + "content": "HWiNFO", + "description": "HWiNFO provides comprehensive hardware information and diagnostics for Windows.", "link": "https://www.hwinfo.com/", "winget": "REALiX.HWiNFO" }, @@ -850,7 +850,7 @@ "WPFInstalljdownloader": { "category": "Utilities", "choco": "jdownloader", - "content": "J Download Manager", + "content": "JDownloader", "description": "JDownloader is a feature-rich download manager with support for various file hosting services.", "link": "http://jdownloader.org/", "winget": "AppWork.JDownloader" @@ -932,7 +932,7 @@ "choco": "krita", "content": "Krita (Image Editor)", "description": "Krita is a powerful open-source painting application. It is designed for concept artists, illustrators, matte and texture artists, and the VFX industry.", - "link": "https://krita.org/en/download/krita-desktop/", + "link": "https://krita.org/en/features/", "winget": "KDE.Krita" }, "WPFInstalllazygit": { @@ -994,8 +994,8 @@ "WPFInstallmalwarebytes": { "category": "Utilities", "choco": "malwarebytes", - "content": "MalwareBytes", - "description": "MalwareBytes is an anti-malware software that provides real-time protection against threats.", + "content": "Malwarebytes", + "description": "Malwarebytes is an anti-malware software that provides real-time protection against threats.", "link": "https://www.malwarebytes.com/", "winget": "Malwarebytes.Malwarebytes" }, @@ -1028,7 +1028,7 @@ "choco": "monitorian", "content": "Monitorian", "description": "Monitorian is a utility for adjusting monitor brightness and contrast on Windows.", - "link": "https://www.monitorian.com/", + "link": "https://github.com/emoacht/Monitorian", "winget": "emoacht.Monitorian" }, "WPFInstallmoonlight": { @@ -1164,7 +1164,7 @@ "choco": "nomacs", "content": "Nomacs (Image viewer)", "description": "Nomacs is a free, open-source image viewer that supports multiple platforms. It features basic image editing capabilities and supports a variety of image formats.", - "link": "https://github.com/nomacs/nomacs/releases/", + "link": "https://github.com/nomacs/nomacs", "winget": "nomacs.nomacs" }, "WPFInstallnotepadplus": { @@ -1322,8 +1322,8 @@ "WPFInstallPaintdotnet": { "category": "Multimedia Tools", "choco": "paint.net", - "content": "Paint.net", - "description": "Paint.net is a free image and photo editing software for Windows. It features an intuitive user interface and supports a wide range of powerful editing tools.", + "content": "Paint.NET", + "description": "Paint.NET is a free image and photo editing software for Windows. It features an intuitive user interface and supports a wide range of powerful editing tools.", "link": "https://www.getpaint.net/", "winget": "dotPDNLLC.paintdotnet" }, @@ -1354,8 +1354,8 @@ "WPFInstallpeazip": { "category": "Utilities", "choco": "peazip", - "content": "Peazip", - "description": "Peazip is a free, open-source file archiver utility that supports multiple archive formats and provides encryption features.", + "content": "PeaZip", + "description": "PeaZip is a free, open-source file archiver utility that supports multiple archive formats and provides encryption features.", "link": "https://peazip.github.io/", "winget": "Giorgiotani.Peazip" }, @@ -1426,7 +1426,7 @@ "WPFInstallpowertoys": { "category": "Microsoft Tools", "choco": "powertoys", - "content": "Powertoys", + "content": "PowerToys", "description": "PowerToys is a set of utilities for power users to enhance productivity, featuring tools like FancyZones, PowerRename, and more.", "link": "https://github.com/microsoft/PowerToys", "winget": "Microsoft.PowerToys" @@ -1458,8 +1458,8 @@ "WPFInstallprucaslicer": { "category": "Utilities", "choco": "prusaslicer", - "content": "Prusa Slicer", - "description": "Prusa Slicer is a powerful and easy-to-use slicing software for 3D printing with Prusa 3D printers.", + "content": "PrusaSlicer", + "description": "PrusaSlicer is a powerful and easy-to-use slicing software for 3D printing with Prusa 3D printers.", "link": "https://www.prusa3d.com/prusaslicer/", "winget": "Prusa3d.PrusaSlicer" }, @@ -1474,7 +1474,7 @@ "WPFInstallputty": { "category": "Pro Tools", "choco": "putty", - "content": "Putty", + "content": "PuTTY", "description": "PuTTY is a free and open-source terminal emulator, serial console, and network file transfer application. It supports various network protocols such as SSH, Telnet, and SCP.", "link": "https://www.chiark.greenend.org.uk/~sgtatham/putty/", "winget": "PuTTY.PuTTY" @@ -1514,8 +1514,8 @@ "WPFInstallrevo": { "category": "Utilities", "choco": "revo-uninstaller", - "content": "RevoUninstaller", - "description": "RevoUninstaller is an advanced uninstaller tool that helps you remove unwanted software and clean up your system.", + "content": "Revo Uninstaller", + "description": "Revo Uninstaller is an advanced uninstaller tool that helps you remove unwanted software and clean up your system.", "link": "https://www.revouninstaller.com/", "winget": "RevoUninstaller.RevoUninstaller" }, @@ -1538,7 +1538,7 @@ "WPFInstallrustdesk": { "category": "Pro Tools", "choco": "rustdesk.portable", - "content": "Rust Remote Desktop (FOSS)", + "content": "RustDesk", "description": "RustDesk is a free and open-source remote desktop application. It provides a secure way to connect to remote machines and access desktop environments.", "link": "https://rustdesk.com/", "winget": "RustDesk.RustDesk" @@ -1564,7 +1564,7 @@ "choco": "sandboxie", "content": "Sandboxie Plus", "description": "Sandboxie Plus is a sandbox-based isolation program that provides enhanced security by running applications in an isolated environment.", - "link": "https://www.sandboxie.com/", + "link": "https://github.com/sandboxie-plus/Sandboxie", "winget": "Sandboxie.Plus" }, "WPFInstallsdio": { @@ -1618,9 +1618,9 @@ "WPFInstallsimplewall": { "category": "Pro Tools", "choco": "simplewall", - "content": "SimpleWall", - "description": "SimpleWall is a free and open-source firewall application for Windows. It allows users to control and manage the inbound and outbound network traffic of applications.", - "link": "https://www.henrypp.org/product/simplewall", + "content": "simplewall", + "description": "simplewall is a free and open-source firewall application for Windows. It allows users to control and manage the inbound and outbound network traffic of applications.", + "link": "https://github.com/henrypp/simplewall", "winget": "Henry++.simplewall" }, "WPFInstallskype": { @@ -1668,7 +1668,7 @@ "choco": "steam-client", "content": "Steam", "description": "Steam is a digital distribution platform for purchasing and playing video games, offering multiplayer gaming, video streaming, and more.", - "link": "https://store.steampowered.com/", + "link": "https://store.steampowered.com/about/", "winget": "Valve.Steam" }, "WPFInstallstrawberry": { @@ -1716,7 +1716,7 @@ "choco": "sunshine", "content": "Sunshine/GameStream Server", "description": "Sunshine is a GameStream server that allows you to remotely play PC games on Android devices, offering low-latency streaming.", - "link": "https://github.com/LoLBoy25/Sunshine", + "link": "https://github.com/LizardByte/Sunshine", "winget": "LizardByte.Sunshine" }, "WPFInstallsuperf4": { @@ -1730,7 +1730,7 @@ "WPFInstallsynctrayzor": { "category": "Utilities", "choco": "synctrayzor", - "content": "Synctrayzor", + "content": "SyncTrayzor", "description": "Windows tray utility / filesystem watcher / launcher for Syncthing", "link": "https://github.com/canton7/SyncTrayzor/", "winget": "SyncTrayzor.SyncTrayzor" @@ -2098,7 +2098,7 @@ "WPFInstallwireshark": { "category": "Pro Tools", "choco": "wireshark", - "content": "WireShark", + "content": "Wireshark", "description": "Wireshark is a widely-used open-source network protocol analyzer. It allows users to capture and analyze network traffic in real-time, providing detailed insights into network activities.", "link": "https://www.wireshark.org/", "winget": "WiresharkFoundation.Wireshark" @@ -2154,8 +2154,8 @@ "WPFInstallxpipe": { "category": "Pro Tools", "choco": "xpipe", - "content": "X-Pipe", - "description": "X-Pipe is an open-source tool for orchestrating containerized applications. It simplifies the deployment and management of containerized services in a distributed environment.", + "content": "XPipe", + "description": "XPipe is an open-source tool for orchestrating containerized applications. It simplifies the deployment and management of containerized services in a distributed environment.", "link": "https://xpipe.io/", "winget": "xpipe-io.xpipe" }, diff --git a/config/themes.json b/config/themes.json index 1055827f..fb23ca95 100644 --- a/config/themes.json +++ b/config/themes.json @@ -1,5 +1,5 @@ { - "Classic": { + "Classic": { "ComboBoxBackgroundColor": "#FFFFFF", "LabelboxForegroundColor": "#000000", "MainForegroundColor": "#000000", @@ -60,5 +60,35 @@ "BorderColor": "#FFAC1C", "BorderOpacity": "0.8", "ShadowPulse": "0:0:3" + }, + "Dark": { + "ComboBoxBackgroundColor": "#000000", + "LabelboxForegroundColor": "#FFEE58", + "MainForegroundColor": "#9CCC65", + "MainBackgroundColor": "#000000", + "LabelBackgroundColor": "#000000", + "LinkForegroundColor": "#add8e6", + "LinkHoverForegroundColor": "#FFFFFF", + "ComboBoxForegroundColor": "#FFEE58", + "ButtonInstallBackgroundColor": "#222222", + "ButtonTweaksBackgroundColor": "#333333", + "ButtonConfigBackgroundColor": "#444444", + "ButtonUpdatesBackgroundColor": "#555555", + "ButtonInstallForegroundColor": "#FFFFFF", + "ButtonTweaksForegroundColor": "#FFFFFF", + "ButtonConfigForegroundColor": "#FFFFFF", + "ButtonUpdatesForegroundColor": "#FFFFFF", + "ButtonBackgroundColor": "#000019", + "ButtonBackgroundPressedColor": "#9CCC65", + "ButtonBackgroundMouseoverColor": "#FF5733", + "ButtonBackgroundSelectedColor": "#FF5733", + "ButtonForegroundColor": "#9CCC65", + "ButtonBorderThickness": "1", + "ButtonMargin": "1", + "ButtonCornerRadius": "2", + "ToggleButtonHeight": "25", + "BorderColor": "#FFAC1C", + "BorderOpacity": "0.2", + "ShadowPulse": "Forever" } -} +} \ No newline at end of file diff --git a/config/tweaks.json b/config/tweaks.json index 9f9bfb9f..dcf08885 100644 --- a/config/tweaks.json +++ b/config/tweaks.json @@ -2306,6 +2306,7 @@ Write-Host \"Removing OneDrive leftovers\" Remove-Item -Recurse -Force -ErrorAction SilentlyContinue \"$env:localappdata\\Microsoft\\OneDrive\" + Remove-Item -Recurse -Force -ErrorAction SilentlyContinue \"$env:localappdata\\OneDrive\" Remove-Item -Recurse -Force -ErrorAction SilentlyContinue \"$env:programdata\\Microsoft OneDrive\" Remove-Item -Recurse -Force -ErrorAction SilentlyContinue \"$env:systemdrive\\OneDriveTemp\" # check if directory is empty before removing: diff --git a/functions/private/Install-WinUtilProgramWinget.ps1 b/functions/private/Install-WinUtilProgramWinget.ps1 index 1d535aa8..24d3b266 100644 --- a/functions/private/Install-WinUtilProgramWinget.ps1 +++ b/functions/private/Install-WinUtilProgramWinget.ps1 @@ -33,12 +33,12 @@ Function Install-WinUtilProgramWinget { Start-Process -FilePath winget -ArgumentList "install -e --accept-source-agreements --accept-package-agreements --scope=machine --silent $Program" -NoNewWindow -Wait } if($manage -eq "Uninstalling"){ - Start-Process -FilePath winget -ArgumentList "uninstall -e --purge --force --silent $Program" -NoNewWindow -Wait - } + Start-Process -FilePath winget -ArgumentList "uninstall -e --accept-source-agreements --purge --force --silent $Program" -NoNewWindow -Wait + } $X++ } Write-Progress -Activity "$manage Applications" -Status "Finished" -Completed -} \ No newline at end of file +} diff --git a/functions/private/Invoke-MicroWin-Helper.ps1 b/functions/private/Invoke-MicroWin-Helper.ps1 index 1fdb58ea..38544a9f 100644 --- a/functions/private/Invoke-MicroWin-Helper.ps1 +++ b/functions/private/Invoke-MicroWin-Helper.ps1 @@ -18,28 +18,23 @@ function Test-CompatibleImage() { <# .SYNOPSIS - Checks the version of a Windows image and determines whether or not it is compatible depending on the Major property + Checks the version of a Windows image and determines whether or not it is compatible with a specific feature depending on a desired version - .PARAMETER imgVersion - The version of the Windows image + .PARAMETER Name + imgVersion - The version of the Windows image + desiredVersion - The version to compare the image version with #> param ( - [Parameter(Mandatory = $true)] [string] $imgVersion + [Parameter(Mandatory = $true, Position=0)] [string] $imgVersion, + [Parameter(Mandatory = $true, Position=1)] [Version] $desiredVersion ) try { $version = [Version]$imgVersion - if ($version.Major -ge 10) - { - return $True - } - else - { - return $False - } + return $version -ge $desiredVersion } catch { return $False } @@ -247,7 +242,7 @@ function Remove-FileOrDirectory([string] $pathToDelete, [string] $mask = "", [sw foreach($itemToDelete in $itemsToDelete) { - $status = "Deleteing $($itemToDelete)" + $status = "Deleting $($itemToDelete)" Write-Progress -Activity "Removing Items" -Status $status -PercentComplete ($counter++/$itemsToDelete.Count*100) if (Test-Path -Path "$($itemToDelete)" -PathType Container) @@ -321,7 +316,7 @@ function New-Unattend { - + <#REPLACEME#> @@ -362,6 +357,26 @@ function New-Unattend { '@ + $specPass = @' + + + 0 + + + false + + +'@ + if ((Test-CompatibleImage $imgVersion $([System.Version]::new(10,0,22000,1))) -eq $false) + { + # Replace the placeholder text with an empty string to make it valid for Windows 10 Setup + $unattend = $unattend.Replace("<#REPLACEME#>", "").Trim() + } + else + { + # Replace the placeholder text with the Specialize pass + $unattend = $unattend.Replace("<#REPLACEME#>", $specPass).Trim() + } $unattend | Out-File -FilePath "$env:temp\unattend.xml" -Force } @@ -622,6 +637,13 @@ function New-FirstRun { $shortcut.Arguments = "-NoProfile -ExecutionPolicy Bypass -Command `"$command`"" # Save the shortcut $shortcut.Save() + + # Make the shortcut have 'Run as administrator' property on + $bytes = [System.IO.File]::ReadAllBytes($shortcutPath) + # Set byte value at position 0x15 in hex, or 21 in decimal, from the value 0x00 to 0x20 in hex + $bytes[0x15] = $bytes[0x15] -bor 0x20 + [System.IO.File]::WriteAllBytes($shortcutPath, $bytes) + Write-Host "Shortcut created at: $shortcutPath" # # Done create WinUtil shortcut on the desktop @@ -631,4 +653,4 @@ function New-FirstRun { '@ $firstRun | Out-File -FilePath "$env:temp\FirstStartup.ps1" -Force -} \ No newline at end of file +} diff --git a/functions/private/Invoke-WinUtilGPU.ps1 b/functions/private/Invoke-WinUtilGPU.ps1 new file mode 100644 index 00000000..23493922 --- /dev/null +++ b/functions/private/Invoke-WinUtilGPU.ps1 @@ -0,0 +1,29 @@ +function Invoke-GPUCheck { + $gpuInfo = Get-WmiObject Win32_VideoController + + foreach ($gpu in $gpuInfo) { + $gpuName = $gpu.Name + if ($gpuName -like "*NVIDIA*") { + return $true # NVIDIA GPU found + } + } + + foreach ($gpu in $gpuInfo) { + $gpuName = $gpu.Name + if ($gpuName -like "*AMD Radeon RX*") { + return $true # AMD GPU Found + } + } + foreach ($gpu in $gpuInfo) { + $gpuName = $gpu.Name + if ($gpuName -like "*UHD*") { + return $false # Intel Intergrated GPU Found + } + } + foreach ($gpu in $gpuInfo) { + $gpuName = $gpu.Name + if ($gpuName -like "*AMD Radeon(TM)*") { + return $false # AMD Intergrated GPU Found + } + } +} \ No newline at end of file diff --git a/functions/private/Test-WinUtilPackageManager.ps1 b/functions/private/Test-WinUtilPackageManager.ps1 index 0bd4c89c..acd9224b 100644 --- a/functions/private/Test-WinUtilPackageManager.ps1 +++ b/functions/private/Test-WinUtilPackageManager.ps1 @@ -20,11 +20,17 @@ function Test-WinUtilPackageManager { # Install Winget if not detected $wingetExists = Get-Command -Name winget -ErrorAction SilentlyContinue if ($wingetExists) { - $wingetVersion = [System.Version]::Parse((winget --version).Trim('v')) + $wingetversionfull = (winget --version) + $wingetversiontrim = $wingetversionfull.Trim('v') + if ($wingetversiontrim.EndsWith("-preview")) { + $wingetversiontrim = $wingetversiontrim.Trim('-preview') + $wingetpreview = $true + } + $wingetVersion = [System.Version]::Parse($wingetversiontrim) $minimumWingetVersion = [System.Version]::new(1,2,10691) # Win 11 23H2 comes with bad winget v1.2.10691 $wingetOutdated = $wingetVersion -le $minimumWingetVersion - Write-Host "Winget v$wingetVersion" + Write-Host "Winget $wingetVersionfull" } if (!$wingetExists -or $wingetOutdated) { @@ -37,17 +43,21 @@ function Test-WinUtilPackageManager { if ($winget) { if ($wingetExists -and !$wingetOutdated) { - Write-Host "- Winget up-to-date" + if (!$wingetpreview) { + Write-Host "- Winget up-to-date" + } else { + Write-Host "- Winget preview version detected. Unexptected problems may occur" -ForegroundColor Yellow + } return $true } } - if($choco){ - if ((Get-Command -Name choco -ErrorAction Ignore) -and ($chocoVersion = (Get-Item "$env:ChocolateyInstall\choco.exe" -ErrorAction Ignore).VersionInfo.ProductVersion)){ + if ($choco) { + if ((Get-Command -Name choco -ErrorAction Ignore) -and ($chocoVersion = (Get-Item "$env:ChocolateyInstall\choco.exe" -ErrorAction Ignore).VersionInfo.ProductVersion)) { Write-Host "Chocolatey v$chocoVersion" return $true } } return $false -} \ No newline at end of file +} diff --git a/functions/public/Invoke-WPFGetIso.ps1 b/functions/public/Invoke-WPFGetIso.ps1 index 6a2fa50c..95f866c2 100644 --- a/functions/public/Invoke-WPFGetIso.ps1 +++ b/functions/public/Invoke-WPFGetIso.ps1 @@ -160,13 +160,18 @@ function Invoke-WPFGetIso { $wimFile = "$mountDir\sources\install.wim" Write-Host "Getting image information $wimFile" - if (-not (Test-Path -Path $wimFile -PathType Leaf)) + if ((-not (Test-Path -Path $wimFile -PathType Leaf)) -and (-not (Test-Path -Path $wimFile.Replace(".wim", ".esd").Trim() -PathType Leaf))) { - $msg = "Install.wim file doesn't exist in the image, this could happen if you use unofficial Windows images, or a Media creation tool, which creates a final image that can not be modified. Please don't use shady images from the internet, use only official images. Here are instructions how to download ISO images if the Microsoft website is not showing the link to download and ISO. https://www.techrepublic.com/article/how-to-download-a-windows-10-iso-file-without-using-the-media-creation-tool/" + $msg = "Neither install.wim nor install.esd exist in the image, this could happen if you use unofficial Windows images. Please don't use shady images from the internet, use only official images. Here are instructions how to download ISO images if the Microsoft website is not showing the link to download and ISO. https://www.techrepublic.com/article/how-to-download-a-windows-10-iso-file-without-using-the-media-creation-tool/" Write-Host $msg [System.Windows.MessageBox]::Show($msg, "Winutil", [System.Windows.MessageBoxButton]::OK, [System.Windows.MessageBoxImage]::Error) throw } + elseif ((-not (Test-Path -Path $wimFile -PathType Leaf)) -and (Test-Path -Path $wimFile.Replace(".wim", ".esd").Trim() -PathType Leaf)) + { + Write-Host "Install.esd found on the image. It needs to be converted to a WIM file in order to begin processing" + $wimFile = $wimFile.Replace(".wim", ".esd").Trim() + } $sync.MicrowinWindowsFlavors.Items.Clear() Get-WindowsImage -ImagePath $wimFile | ForEach-Object { $imageIdx = $_.ImageIndex diff --git a/functions/public/Invoke-WPFInstall.ps1 b/functions/public/Invoke-WPFInstall.ps1 index 29ebe7b4..54d0ed1d 100644 --- a/functions/public/Invoke-WPFInstall.ps1 +++ b/functions/public/Invoke-WPFInstall.ps1 @@ -2,12 +2,12 @@ function Invoke-WPFInstall { <# .SYNOPSIS - Installs the selected programs using winget + Installs the selected programs using winget, if one or more of the selected programs are already installed on the system, winget will try and perform an upgrade if there's a newer version to install. #> if($sync.ProcessRunning){ - $msg = "[Invoke-WPFInstall] Install process is currently running." + $msg = "[Invoke-WPFInstall] An Install process is currently running." [System.Windows.MessageBox]::Show($msg, "Winutil", [System.Windows.MessageBoxButton]::OK, [System.Windows.MessageBoxImage]::Warning) return } @@ -15,7 +15,7 @@ function Invoke-WPFInstall { $WingetInstall = (Get-WinUtilCheckBoxes)["Install"] if ($wingetinstall.Count -eq 0) { - $WarningMsg = "Please select the program(s) to install" + $WarningMsg = "Please select the program(s) to install or upgrade" [System.Windows.MessageBox]::Show($WarningMsg, $AppTitle, [System.Windows.MessageBoxButton]::OK, [System.Windows.MessageBoxImage]::Warning) return } @@ -41,4 +41,4 @@ function Invoke-WPFInstall { Start-Sleep -Seconds 5 $sync.ProcessRunning = $False } -} \ No newline at end of file +} diff --git a/functions/public/Invoke-WPFMicrowin.ps1 b/functions/public/Invoke-WPFMicrowin.ps1 index 8106ab9c..8aa4d79a 100644 --- a/functions/public/Invoke-WPFMicrowin.ps1 +++ b/functions/public/Invoke-WPFMicrowin.ps1 @@ -57,10 +57,30 @@ public class PowerManagement { $mountDir = $sync.MicrowinMountDir.Text $scratchDir = $sync.MicrowinScratchDir.Text + # Detect if the Windows image is an ESD file and convert it to WIM + if (-not (Test-Path -Path $mountDir\sources\install.wim -PathType Leaf) -and (Test-Path -Path $mountDir\sources\install.esd -PathType Leaf)) + { + Write-Host "Exporting Windows image to a WIM file, keeping the index we want to work on. This can take several minutes, depending on the performance of your computer..." + Export-WindowsImage -SourceImagePath $mountDir\sources\install.esd -SourceIndex $index -DestinationImagePath $mountDir\sources\install.wim -CompressionType "Max" + if ($?) + { + Remove-Item -Path $mountDir\sources\install.esd -Force + # Since we've already exported the image index we wanted, switch to the first one + $index = 1 + } + else + { + $msg = "The export process has failed and MicroWin processing cannot continue" + Write-Host "Failed to export the image" + [System.Windows.MessageBox]::Show($msg, "Winutil", [System.Windows.MessageBoxButton]::OK, [System.Windows.MessageBoxImage]::Error) + return + } + } + $imgVersion = (Get-WindowsImage -ImagePath $mountDir\sources\install.wim -Index $index).Version # Detect image version to avoid performing MicroWin processing on Windows 8 and earlier - if ((Test-CompatibleImage $imgVersion) -eq $false) + if ((Test-CompatibleImage $imgVersion $([System.Version]::new(10,0,10240,0))) -eq $false) { $msg = "This image is not compatible with MicroWin processing. Make sure it isn't a Windows 8 or earlier image." $dlg_msg = $msg + "`n`nIf you want more information, the version of the image selected is $($imgVersion)`n`nIf an image has been incorrectly marked as incompatible, report an issue to the developers." diff --git a/scripts/main.ps1 b/scripts/main.ps1 index adaab233..4e776ad1 100644 --- a/scripts/main.ps1 +++ b/scripts/main.ps1 @@ -53,7 +53,12 @@ $sync.runspace.Open() $inputXML = $inputXML -replace 'mc:Ignorable="d"', '' -replace "x:N", 'N' -replace '^ param ( - [Parameter(Mandatory = $true)] [string] $imgVersion + [Parameter(Mandatory = $true, Position=0)] [string] $imgVersion, + [Parameter(Mandatory = $true, Position=1)] [Version] $desiredVersion ) try { $version = [Version]$imgVersion - if ($version.Major -ge 10) - { - return $True - } - else - { - return $False - } + return $version -ge $desiredVersion } catch { return $False } @@ -980,7 +975,7 @@ function Remove-FileOrDirectory([string] $pathToDelete, [string] $mask = "", [sw foreach($itemToDelete in $itemsToDelete) { - $status = "Deleteing $($itemToDelete)" + $status = "Deleting $($itemToDelete)" Write-Progress -Activity "Removing Items" -Status $status -PercentComplete ($counter++/$itemsToDelete.Count*100) if (Test-Path -Path "$($itemToDelete)" -PathType Container) @@ -1054,7 +1049,7 @@ function New-Unattend { - + <#REPLACEME#> @@ -1095,6 +1090,26 @@ function New-Unattend { '@ + $specPass = @' + + + 0 + + + false + + +'@ + if ((Test-CompatibleImage $imgVersion $([System.Version]::new(10,0,22000,1))) -eq $false) + { + # Replace the placeholder text with an empty string to make it valid for Windows 10 Setup + $unattend = $unattend.Replace("<#REPLACEME#>", "").Trim() + } + else + { + # Replace the placeholder text with the Specialize pass + $unattend = $unattend.Replace("<#REPLACEME#>", $specPass).Trim() + } $unattend | Out-File -FilePath "$env:temp\unattend.xml" -Force } @@ -1355,6 +1370,13 @@ function New-FirstRun { $shortcut.Arguments = "-NoProfile -ExecutionPolicy Bypass -Command `"$command`"" # Save the shortcut $shortcut.Save() + + # Make the shortcut have 'Run as administrator' property on + $bytes = [System.IO.File]::ReadAllBytes($shortcutPath) + # Set byte value at position 0x15 in hex, or 21 in decimal, from the value 0x00 to 0x20 in hex + $bytes[0x15] = $bytes[0x15] -bor 0x20 + [System.IO.File]::WriteAllBytes($shortcutPath, $bytes) + Write-Host "Shortcut created at: $shortcutPath" # # Done create WinUtil shortcut on the desktop @@ -1587,6 +1609,35 @@ function Invoke-WinUtilFeatureInstall { } } } +function Invoke-GPUCheck { + $gpuInfo = Get-WmiObject Win32_VideoController + + foreach ($gpu in $gpuInfo) { + $gpuName = $gpu.Name + if ($gpuName -like "*NVIDIA*") { + return $true # NVIDIA GPU found + } + } + + foreach ($gpu in $gpuInfo) { + $gpuName = $gpu.Name + if ($gpuName -like "*AMD Radeon RX*") { + return $true # AMD GPU Found + } + } + foreach ($gpu in $gpuInfo) { + $gpuName = $gpu.Name + if ($gpuName -like "*UHD*") { + return $false # Intel Intergrated GPU Found + } + } + foreach ($gpu in $gpuInfo) { + $gpuName = $gpu.Name + if ($gpuName -like "*AMD Radeon(TM)*") { + return $false # AMD Intergrated GPU Found + } + } +} Function Invoke-WinUtilMouseAcceleration { <# @@ -2409,11 +2460,17 @@ function Test-WinUtilPackageManager { # Install Winget if not detected $wingetExists = Get-Command -Name winget -ErrorAction SilentlyContinue if ($wingetExists) { - $wingetVersion = [System.Version]::Parse((winget --version).Trim('v')) + $wingetversionfull = (winget --version) + $wingetversiontrim = $wingetversionfull.Trim('v') + if ($wingetversiontrim.EndsWith("-preview")) { + $wingetversiontrim = $wingetversiontrim.Trim('-preview') + $wingetpreview = $true + } + $wingetVersion = [System.Version]::Parse($wingetversiontrim) $minimumWingetVersion = [System.Version]::new(1,2,10691) # Win 11 23H2 comes with bad winget v1.2.10691 $wingetOutdated = $wingetVersion -le $minimumWingetVersion - Write-Host "Winget v$wingetVersion" + Write-Host "Winget $wingetVersionfull" } if (!$wingetExists -or $wingetOutdated) { @@ -2426,13 +2483,17 @@ function Test-WinUtilPackageManager { if ($winget) { if ($wingetExists -and !$wingetOutdated) { - Write-Host "- Winget up-to-date" + if (!$wingetpreview) { + Write-Host "- Winget up-to-date" + } else { + Write-Host "- Winget preview version detected. Unexptected problems may occur" -ForegroundColor Yellow + } return $true } } - if($choco){ - if ((Get-Command -Name choco -ErrorAction Ignore) -and ($chocoVersion = (Get-Item "$env:ChocolateyInstall\choco.exe" -ErrorAction Ignore).VersionInfo.ProductVersion)){ + if ($choco) { + if ((Get-Command -Name choco -ErrorAction Ignore) -and ($chocoVersion = (Get-Item "$env:ChocolateyInstall\choco.exe" -ErrorAction Ignore).VersionInfo.ProductVersion)) { Write-Host "Chocolatey v$chocoVersion" return $true } @@ -3193,13 +3254,18 @@ function Invoke-WPFGetIso { $wimFile = "$mountDir\sources\install.wim" Write-Host "Getting image information $wimFile" - if (-not (Test-Path -Path $wimFile -PathType Leaf)) + if ((-not (Test-Path -Path $wimFile -PathType Leaf)) -and (-not (Test-Path -Path $wimFile.Replace(".wim", ".esd").Trim() -PathType Leaf))) { - $msg = "Install.wim file doesn't exist in the image, this could happen if you use unofficial Windows images, or a Media creation tool, which creates a final image that can not be modified. Please don't use shady images from the internet, use only official images. Here are instructions how to download ISO images if the Microsoft website is not showing the link to download and ISO. https://www.techrepublic.com/article/how-to-download-a-windows-10-iso-file-without-using-the-media-creation-tool/" + $msg = "Neither install.wim nor install.esd exist in the image, this could happen if you use unofficial Windows images. Please don't use shady images from the internet, use only official images. Here are instructions how to download ISO images if the Microsoft website is not showing the link to download and ISO. https://www.techrepublic.com/article/how-to-download-a-windows-10-iso-file-without-using-the-media-creation-tool/" Write-Host $msg [System.Windows.MessageBox]::Show($msg, "Winutil", [System.Windows.MessageBoxButton]::OK, [System.Windows.MessageBoxImage]::Error) throw } + elseif ((-not (Test-Path -Path $wimFile -PathType Leaf)) -and (Test-Path -Path $wimFile.Replace(".wim", ".esd").Trim() -PathType Leaf)) + { + Write-Host "Install.esd found on the image. It needs to be converted to a WIM file in order to begin processing" + $wimFile = $wimFile.Replace(".wim", ".esd").Trim() + } $sync.MicrowinWindowsFlavors.Items.Clear() Get-WindowsImage -ImagePath $wimFile | ForEach-Object { $imageIdx = $_.ImageIndex @@ -3301,12 +3367,12 @@ function Invoke-WPFInstall { <# .SYNOPSIS - Installs the selected programs using winget + Installs the selected programs using winget, if one or more of the selected programs are already installed on the system, winget will try and perform an upgrade if there's a newer version to install. #> if($sync.ProcessRunning){ - $msg = "[Invoke-WPFInstall] Install process is currently running." + $msg = "[Invoke-WPFInstall] An Install process is currently running." [System.Windows.MessageBox]::Show($msg, "Winutil", [System.Windows.MessageBoxButton]::OK, [System.Windows.MessageBoxImage]::Warning) return } @@ -3314,7 +3380,7 @@ function Invoke-WPFInstall { $WingetInstall = (Get-WinUtilCheckBoxes)["Install"] if ($wingetinstall.Count -eq 0) { - $WarningMsg = "Please select the program(s) to install" + $WarningMsg = "Please select the program(s) to install or upgrade" [System.Windows.MessageBox]::Show($WarningMsg, $AppTitle, [System.Windows.MessageBoxButton]::OK, [System.Windows.MessageBoxImage]::Warning) return } @@ -3427,10 +3493,30 @@ public class PowerManagement { $mountDir = $sync.MicrowinMountDir.Text $scratchDir = $sync.MicrowinScratchDir.Text + # Detect if the Windows image is an ESD file and convert it to WIM + if (-not (Test-Path -Path $mountDir\sources\install.wim -PathType Leaf) -and (Test-Path -Path $mountDir\sources\install.esd -PathType Leaf)) + { + Write-Host "Exporting Windows image to a WIM file, keeping the index we want to work on. This can take several minutes, depending on the performance of your computer..." + Export-WindowsImage -SourceImagePath $mountDir\sources\install.esd -SourceIndex $index -DestinationImagePath $mountDir\sources\install.wim -CompressionType "Max" + if ($?) + { + Remove-Item -Path $mountDir\sources\install.esd -Force + # Since we've already exported the image index we wanted, switch to the first one + $index = 1 + } + else + { + $msg = "The export process has failed and MicroWin processing cannot continue" + Write-Host "Failed to export the image" + [System.Windows.MessageBox]::Show($msg, "Winutil", [System.Windows.MessageBoxButton]::OK, [System.Windows.MessageBoxImage]::Error) + return + } + } + $imgVersion = (Get-WindowsImage -ImagePath $mountDir\sources\install.wim -Index $index).Version # Detect image version to avoid performing MicroWin processing on Windows 8 and earlier - if ((Test-CompatibleImage $imgVersion) -eq $false) + if ((Test-CompatibleImage $imgVersion $([System.Version]::new(10,0,10240,0))) -eq $false) { $msg = "This image is not compatible with MicroWin processing. Make sure it isn't a Windows 8 or earlier image." $dlg_msg = $msg + "`n`nIf you want more information, the version of the image selected is $($imgVersion)`n`nIf an image has been incorrectly marked as incompatible, report an issue to the developers." @@ -4615,9 +4701,9 @@ $sync.configs.applications = '{ "WPFInstalladobe": { "category": "Document", "choco": "adobereader", - "content": "Adobe Reader DC", - "description": "Adobe Reader DC is a free PDF viewer with essential features for viewing, printing, and annotating PDF documents.", - "link": "https://acrobat.adobe.com/", + "content": "Adobe Acrobat Reader", + "description": "Adobe Acrobat Reader is a free PDF viewer with essential features for viewing, printing, and annotating PDF documents.", + "link": "https://www.adobe.com/acrobat/pdf-reader.html", "winget": "Adobe.Acrobat.Reader.64-bit" }, "WPFInstalladvancedip": { @@ -4855,8 +4941,8 @@ $sync.configs.applications = '{ "WPFInstallcopyq": { "category": "Multimedia Tools", "choco": "copyq", - "content": "Copyq (Clipboard Manager)", - "description": "Copyq is a clipboard manager with advanced features, allowing you to store, edit, and retrieve clipboard history.", + "content": "CopyQ (Clipboard Manager)", + "description": "CopyQ is a clipboard manager with advanced features, allowing you to store, edit, and retrieve clipboard history.", "link": "https://copyq.readthedocs.io/", "winget": "hluk.CopyQ" }, @@ -4887,7 +4973,7 @@ $sync.configs.applications = '{ "WPFInstalldarktable": { "category": "Multimedia Tools", "choco": "darktable", - "content": "DarkTable", + "content": "darktable", "description": "Open-source photo editing tool, offering an intuitive interface, advanced editing capabilities, and a non-destructive workflow for seamless image enhancement.", "link": "https://www.darktable.org/install/", "winget": "darktable.darktable" @@ -4905,7 +4991,7 @@ $sync.configs.applications = '{ "choco": "ddu", "content": "Display Driver Uninstaller", "description": "Display Driver Uninstaller (DDU) is a tool for completely uninstalling graphics drivers from NVIDIA, AMD, and Intel. It is useful for troubleshooting graphics driver-related issues.", - "link": "https://www.wagnardsoft.com/", + "link": "https://www.wagnardsoft.com/display-driver-uninstaller-DDU-", "winget": "ddu" }, "WPFInstalldeluge": { @@ -4918,17 +5004,17 @@ $sync.configs.applications = '{ }, "WPFInstalldevtoys": { "category": "Utilities", - "choco": "devToys", - "content": "Devtoys", - "description": "Devtoys is a collection of development-related utilities and tools for Windows. It includes tools for file management, code formatting, and productivity enhancements for developers.", + "choco": "devtoys", + "content": "DevToys", + "description": "DevToys is a collection of development-related utilities and tools for Windows. It includes tools for file management, code formatting, and productivity enhancements for developers.", "link": "https://devtoys.app/", - "winget": "devtoys" + "winget": "9PGCV4V3BK4W" }, "WPFInstalldigikam": { "category": "Multimedia Tools", "choco": "digikam", - "content": "DigiKam", - "description": "DigiKam is an advanced open-source photo management software with features for organizing, editing, and sharing photos.", + "content": "digiKam", + "description": "digiKam is an advanced open-source photo management software with features for organizing, editing, and sharing photos.", "link": "https://www.digikam.org/", "winget": "KDE.digikam" }, @@ -4984,7 +5070,7 @@ $sync.configs.applications = '{ "category": "Microsoft Tools", "choco": "dotnet-8.0-runtime", "content": ".NET Desktop Runtime 8", - "description": ".NET Desktop Runtime 8 is a runtime environment required for running applications developed with .NET 7.", + "description": ".NET Desktop Runtime 8 is a runtime environment required for running applications developed with .NET 8.", "link": "https://dotnet.microsoft.com/download/dotnet/8.0", "winget": "Microsoft.DotNet.DesktopRuntime.8" }, @@ -5009,14 +5095,14 @@ $sync.configs.applications = '{ "choco": "ea-app", "content": "EA App", "description": "EA App is a platform for accessing and playing Electronic Arts games.", - "link": "https://www.ea.com/", + "link": "https://www.ea.com/ea-app", "winget": "ElectronicArts.EADesktop" }, "WPFInstalleartrumpet": { "category": "Multimedia Tools", "choco": "eartrumpet", - "content": "Eartrumpet (Audio)", - "description": "Eartrumpet is an audio control app for Windows, providing a simple and intuitive interface for managing sound settings.", + "content": "EarTrumpet (Audio)", + "description": "EarTrumpet is an audio control app for Windows, providing a simple and intuitive interface for managing sound settings.", "link": "https://eartrumpet.app/", "winget": "File-New-Project.EarTrumpet" }, @@ -5103,7 +5189,7 @@ $sync.configs.applications = '{ "WPFInstallffmpeg": { "category": "Multimedia Tools", "choco": "ffmpeg-full", - "content": "Ffmpeg full", + "content": "FFmpeg (full)", "description": "FFmpeg is a powerful multimedia processing tool that enables users to convert, edit, and stream audio and video files with a vast range of codecs and formats.", "link": "https://ffmpeg.org/", "winget": "Gyan.FFmpeg" @@ -5151,16 +5237,16 @@ $sync.configs.applications = '{ "WPFInstallflux": { "category": "Utilities", "choco": "flux", - "content": "f.lux Redshift", - "description": "f.lux Redshift adjusts the color temperature of your screen to reduce eye strain during nighttime use.", + "content": "f.lux", + "description": "f.lux adjusts the color temperature of your screen to reduce eye strain during nighttime use.", "link": "https://justgetflux.com/", "winget": "flux.flux" }, "WPFInstallfoobar": { "category": "Multimedia Tools", "choco": "foobar2000", - "content": "Foobar2000 (Music Player)", - "description": "Foobar2000 is a highly customizable and extensible music player for Windows, known for its modular design and advanced features.", + "content": "foobar2000 (Music Player)", + "description": "foobar2000 is a highly customizable and extensible music player for Windows, known for its modular design and advanced features.", "link": "https://www.foobar2000.org/", "winget": "PeterPawlowski.foobar2000" }, @@ -5169,7 +5255,7 @@ $sync.configs.applications = '{ "choco": "na", "content": "Foxit PDF Editor", "description": "Foxit PDF Editor is a feature-rich PDF editor and viewer with a familiar ribbon-style interface.", - "link": "https://www.foxitsoftware.com/", + "link": "https://www.foxit.com/pdf-editor/", "winget": "Foxit.PhantomPDF" }, "WPFInstallfoxpdfreader": { @@ -5177,7 +5263,7 @@ $sync.configs.applications = '{ "choco": "foxitreader", "content": "Foxit PDF Reader", "description": "Foxit PDF Reader is a free PDF viewer with a familiar ribbon-style interface.", - "link": "https://www.foxitsoftware.com/", + "link": "https://www.foxit.com/pdf-reader/", "winget": "Foxit.FoxitReader" }, "WPFInstallfreecad": { @@ -5351,8 +5437,8 @@ $sync.configs.applications = '{ "WPFInstallhwinfo": { "category": "Utilities", "choco": "hwinfo", - "content": "HWInfo", - "description": "HWInfo provides comprehensive hardware information and diagnostics for Windows.", + "content": "HWiNFO", + "description": "HWiNFO provides comprehensive hardware information and diagnostics for Windows.", "link": "https://www.hwinfo.com/", "winget": "REALiX.HWiNFO" }, @@ -5447,7 +5533,7 @@ $sync.configs.applications = '{ "WPFInstalljdownloader": { "category": "Utilities", "choco": "jdownloader", - "content": "J Download Manager", + "content": "JDownloader", "description": "JDownloader is a feature-rich download manager with support for various file hosting services.", "link": "http://jdownloader.org/", "winget": "AppWork.JDownloader" @@ -5529,7 +5615,7 @@ $sync.configs.applications = '{ "choco": "krita", "content": "Krita (Image Editor)", "description": "Krita is a powerful open-source painting application. It is designed for concept artists, illustrators, matte and texture artists, and the VFX industry.", - "link": "https://krita.org/en/download/krita-desktop/", + "link": "https://krita.org/en/features/", "winget": "KDE.Krita" }, "WPFInstalllazygit": { @@ -5591,8 +5677,8 @@ $sync.configs.applications = '{ "WPFInstallmalwarebytes": { "category": "Utilities", "choco": "malwarebytes", - "content": "MalwareBytes", - "description": "MalwareBytes is an anti-malware software that provides real-time protection against threats.", + "content": "Malwarebytes", + "description": "Malwarebytes is an anti-malware software that provides real-time protection against threats.", "link": "https://www.malwarebytes.com/", "winget": "Malwarebytes.Malwarebytes" }, @@ -5625,7 +5711,7 @@ $sync.configs.applications = '{ "choco": "monitorian", "content": "Monitorian", "description": "Monitorian is a utility for adjusting monitor brightness and contrast on Windows.", - "link": "https://www.monitorian.com/", + "link": "https://github.com/emoacht/Monitorian", "winget": "emoacht.Monitorian" }, "WPFInstallmoonlight": { @@ -5761,7 +5847,7 @@ $sync.configs.applications = '{ "choco": "nomacs", "content": "Nomacs (Image viewer)", "description": "Nomacs is a free, open-source image viewer that supports multiple platforms. It features basic image editing capabilities and supports a variety of image formats.", - "link": "https://github.com/nomacs/nomacs/releases/", + "link": "https://github.com/nomacs/nomacs", "winget": "nomacs.nomacs" }, "WPFInstallnotepadplus": { @@ -5919,8 +6005,8 @@ $sync.configs.applications = '{ "WPFInstallPaintdotnet": { "category": "Multimedia Tools", "choco": "paint.net", - "content": "Paint.net", - "description": "Paint.net is a free image and photo editing software for Windows. It features an intuitive user interface and supports a wide range of powerful editing tools.", + "content": "Paint.NET", + "description": "Paint.NET is a free image and photo editing software for Windows. It features an intuitive user interface and supports a wide range of powerful editing tools.", "link": "https://www.getpaint.net/", "winget": "dotPDNLLC.paintdotnet" }, @@ -5951,8 +6037,8 @@ $sync.configs.applications = '{ "WPFInstallpeazip": { "category": "Utilities", "choco": "peazip", - "content": "Peazip", - "description": "Peazip is a free, open-source file archiver utility that supports multiple archive formats and provides encryption features.", + "content": "PeaZip", + "description": "PeaZip is a free, open-source file archiver utility that supports multiple archive formats and provides encryption features.", "link": "https://peazip.github.io/", "winget": "Giorgiotani.Peazip" }, @@ -6023,7 +6109,7 @@ $sync.configs.applications = '{ "WPFInstallpowertoys": { "category": "Microsoft Tools", "choco": "powertoys", - "content": "Powertoys", + "content": "PowerToys", "description": "PowerToys is a set of utilities for power users to enhance productivity, featuring tools like FancyZones, PowerRename, and more.", "link": "https://github.com/microsoft/PowerToys", "winget": "Microsoft.PowerToys" @@ -6055,8 +6141,8 @@ $sync.configs.applications = '{ "WPFInstallprucaslicer": { "category": "Utilities", "choco": "prusaslicer", - "content": "Prusa Slicer", - "description": "Prusa Slicer is a powerful and easy-to-use slicing software for 3D printing with Prusa 3D printers.", + "content": "PrusaSlicer", + "description": "PrusaSlicer is a powerful and easy-to-use slicing software for 3D printing with Prusa 3D printers.", "link": "https://www.prusa3d.com/prusaslicer/", "winget": "Prusa3d.PrusaSlicer" }, @@ -6071,7 +6157,7 @@ $sync.configs.applications = '{ "WPFInstallputty": { "category": "Pro Tools", "choco": "putty", - "content": "Putty", + "content": "PuTTY", "description": "PuTTY is a free and open-source terminal emulator, serial console, and network file transfer application. It supports various network protocols such as SSH, Telnet, and SCP.", "link": "https://www.chiark.greenend.org.uk/~sgtatham/putty/", "winget": "PuTTY.PuTTY" @@ -6111,8 +6197,8 @@ $sync.configs.applications = '{ "WPFInstallrevo": { "category": "Utilities", "choco": "revo-uninstaller", - "content": "RevoUninstaller", - "description": "RevoUninstaller is an advanced uninstaller tool that helps you remove unwanted software and clean up your system.", + "content": "Revo Uninstaller", + "description": "Revo Uninstaller is an advanced uninstaller tool that helps you remove unwanted software and clean up your system.", "link": "https://www.revouninstaller.com/", "winget": "RevoUninstaller.RevoUninstaller" }, @@ -6135,7 +6221,7 @@ $sync.configs.applications = '{ "WPFInstallrustdesk": { "category": "Pro Tools", "choco": "rustdesk.portable", - "content": "Rust Remote Desktop (FOSS)", + "content": "RustDesk", "description": "RustDesk is a free and open-source remote desktop application. It provides a secure way to connect to remote machines and access desktop environments.", "link": "https://rustdesk.com/", "winget": "RustDesk.RustDesk" @@ -6161,7 +6247,7 @@ $sync.configs.applications = '{ "choco": "sandboxie", "content": "Sandboxie Plus", "description": "Sandboxie Plus is a sandbox-based isolation program that provides enhanced security by running applications in an isolated environment.", - "link": "https://www.sandboxie.com/", + "link": "https://github.com/sandboxie-plus/Sandboxie", "winget": "Sandboxie.Plus" }, "WPFInstallsdio": { @@ -6215,9 +6301,9 @@ $sync.configs.applications = '{ "WPFInstallsimplewall": { "category": "Pro Tools", "choco": "simplewall", - "content": "SimpleWall", - "description": "SimpleWall is a free and open-source firewall application for Windows. It allows users to control and manage the inbound and outbound network traffic of applications.", - "link": "https://www.henrypp.org/product/simplewall", + "content": "simplewall", + "description": "simplewall is a free and open-source firewall application for Windows. It allows users to control and manage the inbound and outbound network traffic of applications.", + "link": "https://github.com/henrypp/simplewall", "winget": "Henry++.simplewall" }, "WPFInstallskype": { @@ -6265,7 +6351,7 @@ $sync.configs.applications = '{ "choco": "steam-client", "content": "Steam", "description": "Steam is a digital distribution platform for purchasing and playing video games, offering multiplayer gaming, video streaming, and more.", - "link": "https://store.steampowered.com/", + "link": "https://store.steampowered.com/about/", "winget": "Valve.Steam" }, "WPFInstallstrawberry": { @@ -6313,7 +6399,7 @@ $sync.configs.applications = '{ "choco": "sunshine", "content": "Sunshine/GameStream Server", "description": "Sunshine is a GameStream server that allows you to remotely play PC games on Android devices, offering low-latency streaming.", - "link": "https://github.com/LoLBoy25/Sunshine", + "link": "https://github.com/LizardByte/Sunshine", "winget": "LizardByte.Sunshine" }, "WPFInstallsuperf4": { @@ -6327,7 +6413,7 @@ $sync.configs.applications = '{ "WPFInstallsynctrayzor": { "category": "Utilities", "choco": "synctrayzor", - "content": "Synctrayzor", + "content": "SyncTrayzor", "description": "Windows tray utility / filesystem watcher / launcher for Syncthing", "link": "https://github.com/canton7/SyncTrayzor/", "winget": "SyncTrayzor.SyncTrayzor" @@ -6695,7 +6781,7 @@ $sync.configs.applications = '{ "WPFInstallwireshark": { "category": "Pro Tools", "choco": "wireshark", - "content": "WireShark", + "content": "Wireshark", "description": "Wireshark is a widely-used open-source network protocol analyzer. It allows users to capture and analyze network traffic in real-time, providing detailed insights into network activities.", "link": "https://www.wireshark.org/", "winget": "WiresharkFoundation.Wireshark" @@ -6751,8 +6837,8 @@ $sync.configs.applications = '{ "WPFInstallxpipe": { "category": "Pro Tools", "choco": "xpipe", - "content": "X-Pipe", - "description": "X-Pipe is an open-source tool for orchestrating containerized applications. It simplifies the deployment and management of containerized services in a distributed environment.", + "content": "XPipe", + "description": "XPipe is an open-source tool for orchestrating containerized applications. It simplifies the deployment and management of containerized services in a distributed environment.", "link": "https://xpipe.io/", "winget": "xpipe-io.xpipe" }, @@ -7206,7 +7292,7 @@ $sync.configs.preset = '{ ] }' | convertfrom-json $sync.configs.themes = '{ - "Classic": { + "Classic": { "ComboBoxBackgroundColor": "#FFFFFF", "LabelboxForegroundColor": "#000000", "MainForegroundColor": "#000000", @@ -7267,6 +7353,36 @@ $sync.configs.themes = '{ "BorderColor": "#FFAC1C", "BorderOpacity": "0.8", "ShadowPulse": "0:0:3" + }, + "Dark": { + "ComboBoxBackgroundColor": "#000000", + "LabelboxForegroundColor": "#FFEE58", + "MainForegroundColor": "#9CCC65", + "MainBackgroundColor": "#000000", + "LabelBackgroundColor": "#000000", + "LinkForegroundColor": "#add8e6", + "LinkHoverForegroundColor": "#FFFFFF", + "ComboBoxForegroundColor": "#FFEE58", + "ButtonInstallBackgroundColor": "#222222", + "ButtonTweaksBackgroundColor": "#333333", + "ButtonConfigBackgroundColor": "#444444", + "ButtonUpdatesBackgroundColor": "#555555", + "ButtonInstallForegroundColor": "#FFFFFF", + "ButtonTweaksForegroundColor": "#FFFFFF", + "ButtonConfigForegroundColor": "#FFFFFF", + "ButtonUpdatesForegroundColor": "#FFFFFF", + "ButtonBackgroundColor": "#000019", + "ButtonBackgroundPressedColor": "#9CCC65", + "ButtonBackgroundMouseoverColor": "#FF5733", + "ButtonBackgroundSelectedColor": "#FF5733", + "ButtonForegroundColor": "#9CCC65", + "ButtonBorderThickness": "1", + "ButtonMargin": "1", + "ButtonCornerRadius": "2", + "ToggleButtonHeight": "25", + "BorderColor": "#FFAC1C", + "BorderOpacity": "0.2", + "ShadowPulse": "Forever" } }' | convertfrom-json $sync.configs.tweaks = '{ @@ -9577,6 +9693,7 @@ $sync.configs.tweaks = '{ Write-Host \"Removing OneDrive leftovers\" Remove-Item -Recurse -Force -ErrorAction SilentlyContinue \"$env:localappdata\\Microsoft\\OneDrive\" + Remove-Item -Recurse -Force -ErrorAction SilentlyContinue \"$env:localappdata\\OneDrive\" Remove-Item -Recurse -Force -ErrorAction SilentlyContinue \"$env:programdata\\Microsoft OneDrive\" Remove-Item -Recurse -Force -ErrorAction SilentlyContinue \"$env:systemdrive\\OneDriveTemp\" # check if directory is empty before removing: @@ -10617,7 +10734,7 @@ $inputXML = ' -