From 5cd75c0ed6ee9663f0cd98b96cdb6e2956c35107 Mon Sep 17 00:00:00 2001 From: Chris Titus Date: Thu, 21 Mar 2024 16:23:24 -0700 Subject: [PATCH] Test 2024 02 07 refactor noapps (#1717) * pull workflow github actions (#1716) * Update close-old-issues.yaml * Compile Winutil * Update close-old-issues.yaml * Update close-old-issues.yaml * Update close-old-issues.yaml * Compile Winutil --------- Co-authored-by: ChrisTitusTech * Improve unattended answer file creation for MicroWin and add automatic conversion of ESD files (#1595) * Update applications.json Fake app add made by linux fanboy * Compile Winutil * Update files - Add detections for whether the image to be processed by MicroWin is Windows 10 or later - Add procedure to clear the indexes ComboBox (WinForms term) every time an ISO is specified * Update screen-install.png (#1464) * Compile Winutil * applications.jsonAdded Foxit Reader app and updated Foxit Editor to show the difference. * applications.json Added Foxit Reader app and updated Foxit Editor to show the difference. * Compile Winutil * Fix Broken Link and add syncthingtray (#1508) * Compile Winutil * Remove Nano-Removed bugged Nano package for now * Remove Nano -Removed bugged Nano package for now * Compile Winutil * tweaks and fetures tabs clean up automation from inputXML.xaml * tweaks and fetures tabs clean up automation from inputXML.xaml * fixed some commas in tweaks.json file * recompile * Update tweaks.json * Compile Winutil * Choosing Alternate Scartch Path and Busy Messages * Choosing Alternate Scartch Path and Busy Messages * Change Selected index to be pro * Compile Winutil * Improve detection for Professional editions * Update files Updated the Test-CompatibleImage function to compare against a desired version, which is useful for determining if the Specialize pass needs to be added to the unattended answer file * Automatic conversion of ESD files Automatically convert the install.esd file from installation media into a WIM file that can be mounted, then delete the ESD file --------- Co-authored-by: Chris Titus Co-authored-by: ChrisTitusTech Co-authored-by: Samq64 <81489795+Samq64@users.noreply.github.com> Co-authored-by: Chris Titus Co-authored-by: LoopTJ <34551682+LoopTJ@users.noreply.github.com> Co-authored-by: Roc Wang Co-authored-by: Jes Herring <123990927+jesjess243@users.noreply.github.com> Co-authored-by: ogfrm <96927197+ogfrm@users.noreply.github.com> Co-authored-by: LeeDowA <157072913+LeeDowA@users.noreply.github.com> * Compile Winutil * Change the Theme Configuration for low spec. (#1643) * Update close-old-issues.yaml * Compile Winutil * Update close-old-issues.yaml * Update close-old-issues.yaml * Update close-old-issues.yaml * Added New Dark Themes for Low Spec PC and added GPU Detection * Compile Winutil --------- Co-authored-by: Chris Titus Co-authored-by: ChrisTitusTech Co-authored-by: Chris Titus * Compile Winutil * Fix OneDrive Remove Tweak not cleaning-up 'OneDrive' Folder under the 'localappdata' Environment Folder (#1654) Besides the 'OneDrive' Folder found in 'Microsoft' Folder in 'localappdata', there's Yet Another Cache Folder that OneDrive uses, which's found under the 'localappdata' Environment Folder, read the commit patches for exact details. * Compile Winutil * MicroWin - Make the New Shortcut have 'Run as administrator' property on (#1659) The added lines of PowerShell Code was taken from public function 'Invoke-WPFShortcut.ps1' under the 'functions/public' Folder. * Compile Winutil * Fixing an issue related to winget install & Improving winget uninstall command (#1662) * Add the argument '--accept-source-agreements' to the Uninstall command of Winget Added '--accept-source-agreements' to insure that the Package Uninstall process is completely unattended. * Improve the Wording of the 'WPFInstall' function and 'inputXML.xaml' file * Compile Winutil * Handle preview versions of winget (#1682) * Update close-old-issues.yaml * Compile Winutil * Update close-old-issues.yaml * Update close-old-issues.yaml * Update close-old-issues.yaml * Added compatibility with preview versions of Winget * Update winutil.ps1 * Update Test-WinUtilPackageManager.ps1 * Document Formatting --------- Co-authored-by: Chris Titus Co-authored-by: ChrisTitusTech Co-authored-by: Chris Titus * Compile Winutil * fix typo in applications (#1683) * Compile Winutil * fix DevToys winget id (#1685) (#1689) * Compile Winutil * fix DevToys winget id (#1685) DevToys doesn't have a proper winget id unlike other programs * Compile Winutil * fix case * Compile Winutil * Compile Winutil --------- Co-authored-by: K-Saikrishnan Co-authored-by: Chris Titus Co-authored-by: ChrisTitusTech * Fixed and improved software URLs and updated names based on creator formatting (#1704) Co-authored-by: Tyler Robb * Compile Winutil --------- Co-authored-by: ChrisTitusTech Co-authored-by: CodingWonders <101426328+CodingWonders@users.noreply.github.com> Co-authored-by: Samq64 <81489795+Samq64@users.noreply.github.com> Co-authored-by: LoopTJ <34551682+LoopTJ@users.noreply.github.com> Co-authored-by: Roc Wang Co-authored-by: Jes Herring <123990927+jesjess243@users.noreply.github.com> Co-authored-by: ogfrm <96927197+ogfrm@users.noreply.github.com> Co-authored-by: LeeDowA <157072913+LeeDowA@users.noreply.github.com> Co-authored-by: Justawildwolf <62820836+blusewill@users.noreply.github.com> Co-authored-by: Mr.k Co-authored-by: Martin Wiethan <47688561+Marterich@users.noreply.github.com> Co-authored-by: glorp <152878702+choccyy-milk@users.noreply.github.com> Co-authored-by: Saikrishnan K <53394202+K-Saikrishnan@users.noreply.github.com> Co-authored-by: K-Saikrishnan Co-authored-by: Tyler Robb <6801620+tylerrobb@users.noreply.github.com> Co-authored-by: Tyler Robb --- config/applications.json | 106 +++--- config/themes.json | 34 +- config/tweaks.json | 1 + .../private/Install-WinUtilProgramWinget.ps1 | 6 +- functions/private/Invoke-MicroWin-Helper.ps1 | 52 ++- functions/private/Invoke-WinUtilGPU.ps1 | 29 ++ .../private/Test-WinUtilPackageManager.ps1 | 22 +- functions/public/Invoke-WPFGetIso.ps1 | 9 +- functions/public/Invoke-WPFInstall.ps1 | 8 +- functions/public/Invoke-WPFMicrowin.ps1 | 22 +- scripts/main.ps1 | 9 +- winutil.ps1 | 356 ++++++++++++------ xaml/inputApp.xaml | 68 ++-- xaml/inputXML.xaml | 2 +- 14 files changed, 484 insertions(+), 240 deletions(-) create mode 100644 functions/private/Invoke-WinUtilGPU.ps1 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 = ' -