diff --git a/.github/workflows/compile.yaml b/.github/workflows/compile.yaml index e740f325..d835423b 100644 --- a/.github/workflows/compile.yaml +++ b/.github/workflows/compile.yaml @@ -1,10 +1,11 @@ name: Compile on: - push: - branches: + push: + branches: - main - test* + workflow_dispatch: # Manual trigger added jobs: build-runspace: diff --git a/.github/workflows/release.yaml b/.github/workflows/release.yaml index 186ca4d1..fc3e679b 100644 --- a/.github/workflows/release.yaml +++ b/.github/workflows/release.yaml @@ -5,6 +5,7 @@ on: workflows: ["Compile"] #Ensure Compile winget.ps1 is done types: - completed + workflow_dispatch: # Manual trigger added jobs: build-runspace: diff --git a/Compile.ps1 b/Compile.ps1 index ef74005c..9c06d9c9 100644 --- a/Compile.ps1 +++ b/Compile.ps1 @@ -1,5 +1,6 @@ param ( - [switch]$Debug + [switch]$Debug, + [switch]$Run ) $OFS = "`r`n" $scriptname = "winutil.ps1" @@ -95,13 +96,6 @@ Get-ChildItem .\config | Where-Object {$psitem.extension -eq ".json"} | ForEach- $sync.configs.$($psitem.BaseName) = $json | convertfrom-json $script_content.Add($(Write-output "`$sync.configs.$($psitem.BaseName) = '$json' `| convertfrom-json" )) } -Update-Progress "Adding: Config *.cfg" 45 -Get-ChildItem .\config | Where-Object {$PSItem.Extension -eq ".cfg"} | ForEach-Object { - $script_content.Add($(Write-output "`$sync.configs.$($psitem.BaseName) = '$(Get-Content $PSItem.FullName)'")) -} -Get-ChildItem .\config | Where-Object {$PSItem.Extension -eq ".cfg"} | ForEach-Object { - $script_content.Add($(Write-output "`$sync.configs.$($psitem.BaseName) = '$(Get-Content $PSItem.FullName)'")) -} $xaml = (Get-Content .\xaml\inputXML.xaml).replace("'","''") @@ -138,4 +132,14 @@ else { } Set-Content -Path $scriptname -Value ($script_content -join "`r`n") -Encoding ascii -Update-Progress "Finished" 100 +Write-Progress -Activity "Compiling" -Completed + +if ($run){ + try { + Start-Process -FilePath "pwsh" -ArgumentList ".\$scriptname" + } + catch { + Start-Process -FilePath "powershell" -ArgumentList ".\$scriptname" + } + +} diff --git a/config/applications.json b/config/applications.json index 006c6696..364636cf 100644 --- a/config/applications.json +++ b/config/applications.json @@ -407,7 +407,7 @@ "link": "https://discord.com/", "winget": "Discord.Discord" }, - "ditto": { + "ditto": { "category": "Utilities", "choco": "ditto", "content": "Ditto", @@ -591,7 +591,7 @@ "link": "https://file-converter.io/", "winget": "AdrienAllard.FileConverter" }, - "files": { + "files": { "category": "Utilities", "choco": "files", "content": "Files", @@ -975,14 +975,6 @@ "link": "https://www.oracle.com/java/", "winget": "EclipseAdoptium.Temurin.18.JRE" }, - "java20": { - "category": "Development", - "choco": "na", - "content": "Azul Zulu JDK 20", - "description": "Azul Zulu JDK 20 is a distribution of the OpenJDK with long-term support, performance enhancements, and security updates.", - "link": "https://www.azul.com/downloads/zulu-community/", - "winget": "Azul.Zulu.20.JDK" - }, "java21": { "category": "Development", "choco": "na", @@ -1303,14 +1295,6 @@ "link": "https://sourceforge.net/projects/equalizerapo", "winget": "na" }, - "FreeFileSync": { - "category": "Utilities", - "choco": "freefilesync", - "content": "FreeFileSync", - "description": "Synchronize Files and Folders", - "link": "https://freefilesync.org", - "winget": "na" - }, "CompactGUI": { "category": "Utilities", "choco": "compactgui", @@ -1663,6 +1647,14 @@ "link": "https://www.plex.tv/your-media/", "winget": "Plex.PlexMediaServer" }, + "plexdesktop": { + "category": "Multimedia Tools", + "choco": "plex", + "content": "Plex Desktop", + "description": "Plex Desktop for Windows is the front end for Plex Media Server.", + "link": "https://www.plex.tv", + "winget": "Plex.Plex" + }, "Portmaster": { "category": "Pro Tools", "choco": "portmaster", @@ -1831,6 +1823,14 @@ "link": "https://www.revouninstaller.com/", "winget": "RevoUninstaller.RevoUninstaller" }, + "WPFInstallWiseProgramUninstaller": { + "category": "Utilities", + "choco": "na", + "content": "Wise Program Uninstaller (WiseCleaner)", + "description": "Wise Program Uninstaller is the perfect solution for uninstalling Windows programs, allowing you to uninstall applications quickly and completely using its simple and user-friendly interface.", + "link": "https://www.wisecleaner.com/wise-program-uninstaller.html", + "winget": "WiseCleaner.WiseProgramUninstaller" + }, "revolt": { "category": "Communications", "choco": "na", @@ -1871,7 +1871,7 @@ "link": "https://www.rust-lang.org/", "winget": "Rustlang.Rust.MSVC" }, - "sagethumbs": { + "sagethumbs": { "category": "Utilities", "choco": "sagethumbs", "content": "SageThumbs", @@ -1999,7 +1999,7 @@ "link": "http://www.uderzo.it/main_products/space_sniffer/", "winget": "UderzoSoftware.SpaceSniffer" }, - "spotube": { + "spotube": { "category": "Multimedia Tools", "choco": "spotube", "content": "Spotube", @@ -2503,6 +2503,14 @@ "link": "https://toys.wisecleaner.com/", "winget": "WiseCleaner.WiseToys" }, + "WPFInstallTeraCopy": { + "category": "Utilities", + "choco": "TeraCopy", + "content": "TeraCopy", + "description": "Copy your files faster and more securely", + "link": "https://codesector.com/teracopy", + "winget": "CodeSector.TeraCopy" + }, "wizfile": { "category": "Utilities", "choco": "na", @@ -2727,6 +2735,14 @@ "link": "https://github.com/AutoDarkMode/Windows-Auto-Night-Mode", "winget": "Armin2208.WindowsAutoNightMode" }, + "WPFInstallAmbieWhiteNoise": { + "category": "Utilities", + "choco": "na", + "content": "Ambie White Noise", + "description": "Ambie is the ultimate app to help you focus, study, or relax. We use white noise and nature sounds combined with an innovative focus timer to keep you concentrated on doing your best work.", + "link": "https://ambieapp.com/", + "winget": "9P07XNM5CHP0" + }, "magicwormhole": { "category": "Utilities", "choco": "magic-wormhole", @@ -2735,6 +2751,14 @@ "link": "https://github.com/magic-wormhole/magic-wormhole", "winget": "magic-wormhole.magic-wormhole" }, + "WPFInstallcroc": { + "category": "Utilities", + "choco": "croc", + "content": "croc", + "description": "Easily and securely send things from one computer to another.", + "link": "https://github.com/schollz/croc", + "winget": "schollz.croc" + }, "qgis": { "category": "Multimedia Tools", "choco": "qgis", @@ -2786,11 +2810,19 @@ "ForceAutoHDR": { "category": "Utilities", "choco": "na", - "content": "GUI That Forces Auto HDR In Unsupported Games", + "content": "ForceAutoHDR", "description": "ForceAutoHDR simplifies the process of adding games to the AutoHDR list in the Windows Registry", "link": "https://github.com/7gxycn08/ForceAutoHDR", "winget": "ForceAutoHDR.7gxycn08" }, + "WPFInstallJoyToKey": { + "category": "Utilities", + "choco": "joytokey", + "content": "JoyToKey", + "description": "enables PC game controllers to emulate the keyboard and mouse input", + "link": "https://joytokey.net/en/", + "winget": "JTKsoftware.JoyToKey" + }, "nditools": { "category": "Multimedia Tools", "choco": "na", @@ -2798,5 +2830,13 @@ "description":"NDI, or Network Device Interface, is a video connectivity standard that enables multimedia systems to identify and communicate with one another over IP and to encode, transmit, and receive high-quality, low latency, frame-accurate video and audio, and exchange metadata in real-time.", "link": "https://ndi.video/", "winget": "NDI.NDITools" + }, + "WPFInstallkicad": { + "category": "Pro Tools", + "choco": "na", + "content": "Kicad", + "description":"Kicad is an open-source EDA tool. It's a good starting point for those who want to do electrical design and is even used by professionals in the industry.", + "link": "https://www.kicad.org/", + "winget": "KiCad.KiCad" } } diff --git a/config/ooshutup10_factory.cfg b/config/ooshutup10_factory.cfg deleted file mode 100644 index 1ae2ecab..00000000 --- a/config/ooshutup10_factory.cfg +++ /dev/null @@ -1,227 +0,0 @@ -############################################################################ -# This file was created with O&O ShutUp10++ V1.9.1436 -# and can be imported onto another computer. -# -# Download the application at https://www.oo-software.com/shutup10 -# You can then import the file from within the program. -# -# Alternatively you can import it automatically over a command line. -# Simply use the following parameter: -# OOSU10.exe -# -# Selecting the Option /quiet ends the app right after the import and the -# user does not get any feedback about the import. -# -# We are always happy to answer any questions you may have! -# © 2015-2023 O&O Software GmbH, Berlin. All rights reserved. -# https://www.oo-software.com/ -############################################################################ - -P001 - -P002 - -P003 - -P004 - -P005 - -P006 - -P008 - -P026 - -P027 - -P028 - -P064 - -P065 - -P066 - -P067 - -P070 - -P069 - -P009 - -P010 - -P015 - -P068 - -P016 - -A001 - -A002 - -A003 - -A004 - -A006 - -A005 - -P007 - -P036 - -P025 - -P033 - -P023 - -P056 - -P057 - -P012 - -P034 - -P013 - -P035 - -P062 - -P063 - -P081 - -P047 - -P019 - -P048 - -P049 - -P020 - -P037 - -P011 - -P038 - -P050 - -P051 - -P018 - -P039 - -P021 - -P040 - -P022 - -P041 - -P014 - -P042 - -P052 - -P053 - -P054 - -P055 - -P029 - -P043 - -P030 - -P044 - -P031 - -P045 - -P032 - -P046 - -P058 - -P059 - -P060 - -P061 - -P071 - -P072 - -P073 - -P074 - -P075 - -P076 - -P077 - -P078 - -P079 - -P080 - -P024 - -S001 - -S002 - -S003 - -S008 - -E101 - -E201 - -E115 - -E215 - -E118 - -E218 - -E107 - -E207 - -E111 - -E211 - -E112 - -E212 - -E109 - -E209 - -E121 - -E221 - -E103 - -E203 - -E123 - -E223 - -E124 - -E224 - -E128 - -E228 - -E119 - -E219 - -E120 - -E220 - -E122 - -E222 - -E125 - -E225 - -E126 - -E226 - -E106 - -E206 - -E127 - -E227 - -E001 - -E002 - -E003 - -E008 - -E007 - -E010 - -E011 + -E012 + -E009 - -E004 - -E005 - -E013 - -E014 - -E006 - -Y001 - -Y002 - -Y003 - -Y004 - -Y005 - -Y006 - -Y007 - -C012 - -C002 - -C013 - -C007 - -C008 - -C009 - -C010 - -C011 - -C014 - -C015 - -C101 - -C201 - -C102 - -L001 - -L003 - -L004 - -L005 - -U001 - -U004 - -U005 - -U006 - -U007 - -W001 - -W011 - -W004 - -W005 - -W010 - -W009 - -P017 - -W006 - -W008 - -M006 - -M011 - -M010 - -O003 - -O001 - -S012 - -S013 - -S014 - -K001 - -K002 - -K005 - -M003 - -M015 - -M016 - -M017 - -M018 - -M019 - -M020 - -M021 - -M022 - -M001 - -M004 - -M005 - -M024 - -M012 - -M013 - -M014 - -N001 - diff --git a/config/ooshutup10_recommended.cfg b/config/ooshutup10_recommended.cfg deleted file mode 100644 index 53284193..00000000 --- a/config/ooshutup10_recommended.cfg +++ /dev/null @@ -1,231 +0,0 @@ -############################################################################ -# This file was created with O&O ShutUp10++ V1.9.1438 -# and can be imported onto another computer. -# -# Download the application at https://www.oo-software.com/shutup10 -# You can then import the file from within the program. -# -# Alternatively you can import it automatically over a command line. -# Simply use the following parameter: -# OOSU10.exe -# -# Selecting the Option /quiet ends the app right after the import and the -# user does not get any feedback about the import. -# -# We are always happy to answer any questions you may have! -# © 2015-2024 O&O Software GmbH, Berlin. All rights reserved. -# https://www.oo-software.com/ -############################################################################ - -P001 + -P002 + -P003 + -P004 + -P005 + -P006 + -P008 + -P026 + -P027 + -P028 + -P064 + -P065 + -P066 + -P067 + -P070 + -P069 + -P009 - -P010 + -P015 + -P068 - -P016 - -A001 + -A002 + -A003 + -A004 + -A006 + -A005 + -P007 + -P036 + -P025 + -P033 + -P023 + -P056 + -P057 - -P012 - -P034 - -P013 - -P035 - -P062 - -P063 - -P081 - -P047 - -P019 - -P048 - -P049 - -P020 - -P037 - -P011 - -P038 - -P050 - -P051 - -P018 - -P039 - -P021 - -P040 - -P022 - -P041 - -P014 - -P042 - -P052 - -P053 - -P054 - -P055 - -P029 - -P043 - -P030 - -P044 - -P031 - -P045 - -P032 - -P046 - -P058 - -P059 - -P060 - -P061 - -P071 - -P072 - -P073 - -P074 - -P075 - -P076 - -P077 - -P078 - -P079 - -P080 - -P024 + -S001 + -S002 + -S003 + -S008 - -E101 + -E201 + -E115 + -E215 + -E118 + -E218 + -E107 + -E207 + -E111 + -E211 + -E112 + -E212 + -E109 + -E209 + -E121 + -E221 + -E103 + -E203 + -E123 + -E223 + -E124 + -E224 + -E128 + -E228 + -E119 - -E219 - -E120 - -E220 - -E122 - -E222 - -E125 - -E225 - -E126 - -E226 - -E106 - -E206 - -E127 - -E227 - -E001 + -E002 + -E003 + -E008 + -E007 + -E010 + -E011 + -E012 + -E009 - -E004 - -E005 - -E013 - -E014 - -E006 - -Y001 + -Y002 + -Y003 + -Y004 + -Y005 + -Y006 + -Y007 + -C012 + -C002 + -C013 + -C007 + -C008 + -C009 + -C010 + -C011 + -C014 + -C015 + -C101 + -C201 + -C102 + -C103 + -C203 + -L001 + -L003 + -L004 - -L005 - -U001 + -U004 + -U005 + -U006 + -U007 + -W001 + -W011 + -W004 - -W005 - -W010 - -W009 - -P017 + -W006 - -W008 - -M006 + -M011 - -M010 + -O003 - -O001 - -S012 - -S013 - -S014 - -K001 + -K002 + -K005 + -M003 + -M015 + -M016 + -M017 - -M018 + -M019 - -M020 + -M021 + -M022 + -M001 + -M004 + -M005 + -M024 + -M026 + -M027 + -M012 - -M013 - -M014 - -N001 - \ No newline at end of file diff --git a/config/preset.json b/config/preset.json index cabe8037..d0640ce4 100644 --- a/config/preset.json +++ b/config/preset.json @@ -5,7 +5,6 @@ "WPFTweaksHiber", "WPFTweaksHome", "WPFTweaksLoc", - "WPFTweaksOO", "WPFTweaksServices", "WPFTweaksStorage", "WPFTweaksTele", @@ -18,7 +17,6 @@ ], "Minimal": [ "WPFTweaksHome", - "WPFTweaksOO", "WPFTweaksServices", "WPFTweaksTele" ] diff --git a/config/tweaks.json b/config/tweaks.json index 4af9dc79..d6375031 100644 --- a/config/tweaks.json +++ b/config/tweaks.json @@ -1223,11 +1223,6 @@ "StartupType": "Automatic", "OriginalType": "Automatic" }, - { - "Name": "WwanSvc", - "StartupType": "Manual", - "OriginalType": "Manual" - }, { "Name": "XblAuthManager", "StartupType": "Manual", @@ -2313,20 +2308,6 @@ "Invoke-WPFTweakPS7 -action \"PS5\"" ] }, - "WPFTweaksOO": { - "Content": "Run OO Shutup", - "Description": "Runs OO Shutup and applies the recommended Tweaks. https://www.oo-software.com/en/shutup10", - "category": "Essential Tweaks", - "panel": "1", - "Order": "a009_", - "ToolTip": "Runs OO Shutup and applies the recommended Tweaks https://www.oo-software.com/en/shutup10", - "InvokeScript": [ - "Invoke-WPFOOSU -action \"recommended\"" - ], - "UndoScript": [ - "Invoke-WPFOOSU -action \"undo\"" - ] - }, "WPFTweaksStorage": { "Content": "Disable Storage Sense", "Description": "Storage Sense deletes temp files automatically.", @@ -2342,17 +2323,15 @@ }, "WPFTweaksRemoveEdge": { "Content": "Remove Microsoft Edge - NOT RECOMMENDED", - "Description": "Removes MS Edge when it gets reinstalled by updates.", + "Description": "Removes MS Edge when it gets reinstalled by updates. Credit: AveYo", "category": "z__Advanced Tweaks - CAUTION", "panel": "1", "Order": "a029_", "InvokeScript": [ " #:: Standalone script by AveYo Source: https://raw.githubusercontent.com/AveYo/fox/main/Edge_Removal.bat - - curl.exe -s \"https://raw.githubusercontent.com/ChrisTitusTech/winutil/main/edgeremoval.bat\" -o $ENV:temp\\edgeremoval.bat + Invoke-WebRequest -Uri \"https://raw.githubusercontent.com/ChrisTitusTech/winutil/main/edgeremoval.bat\" -OutFile \"$ENV:TEMP\\edgeremoval.bat\" Start-Process $ENV:temp\\edgeremoval.bat - " ], "UndoScript": [ @@ -2408,12 +2387,12 @@ "WPFTweaksDisableLMS1": { "Content": "Disable Intel MM (vPro LMS)", "Description": "Intel LMS service is always listening on all ports and could be a huge security risk. There is no need to run LMS on home machines and even in the Enterprise there are better solutions.", - "category": "Essential Tweaks", + "category": "z__Advanced Tweaks - CAUTION", "panel": "1", - "Order": "a0015_", + "Order": "a026_", "InvokeScript": [ " - Write-Host \"Kill OneDrive process\" + Write-Host \"Kill LMS\" $serviceName = \"LMS\" Write-Host \"Stopping and disabling service: $serviceName\" Stop-Service -Name $serviceName -Force -ErrorAction SilentlyContinue; @@ -2457,8 +2436,7 @@ ], "UndoScript": [ " - Write-Host \"Install Microsoft Edge\" - taskkill.exe /F /IM \"OneDrive.exe\" + Write-Host \"LMS vPro needs to be redownloaded from intel.com\" " ] @@ -3085,7 +3063,7 @@ "Type": "Toggle" }, "WPFOOSUbutton": { - "Content": "Customize OO Shutup Tweaks", + "Content": "Run OO Shutup 10", "category": "z__Advanced Tweaks - CAUTION", "panel": "1", "Order": "a039_", diff --git a/functions/private/Get-LocalizedYesNo.ps1 b/functions/private/Get-LocalizedYesNo.ps1 index db7c046e..723c0562 100644 --- a/functions/private/Get-LocalizedYesNo.ps1 +++ b/functions/private/Get-LocalizedYesNo.ps1 @@ -27,60 +27,6 @@ function Get-LocalizedYesNo { $regexPattern = '([a-zA-Z])' $charactersArray = [regex]::Matches($line, $regexPattern) | ForEach-Object { $_.Groups[1].Value } - Write-Debug "According to takeown.exe local Yes is $charactersArray[0]" - # Return the array of characters - return $charactersArray - } - - -function Get-LocalizedYesNoTakeown { - <# - .SYNOPSIS - This function runs takeown.exe and captures its output to extract yes no in a localized Windows - - .DESCRIPTION - The function retrieves lines from the output of takeown.exe until there are at least 2 characters - captured in a specific format, such as "Yes=, No=". - - .EXAMPLE - $yesNoArray = Get-LocalizedYesNo - Write-Host "Yes=$($yesNoArray[0]), No=$($yesNoArray[1])" - #> - - # Run takeown.exe and capture its output - $takeownOutput = & takeown.exe /? | Out-String - - # Parse the output and retrieve lines until there are at least 2 characters in the array - $found = $false - $charactersArray = @() - foreach ($line in $takeownOutput -split "`r`n") - { - # skip everything before /D flag help - if ($found) - { - # now that /D is found start looking for a single character in double quotes - # in help text there is another string in double quotes but it is not a single character - $regexPattern = '"([a-zA-Z])"' - - $charactersArray = [regex]::Matches($line, $regexPattern) | ForEach-Object { $_.Groups[1].Value } - - # if ($charactersArray.Count -gt 0) { - # Write-Output "Extracted symbols: $($matches -join ', ')" - # } else { - # Write-Output "No matches found." - # } - - if ($charactersArray.Count -ge 2) - { - break - } - } - elseif ($line -match "/D ") - { - $found = $true - } - } - Write-Debug "According to takeown.exe local Yes is $charactersArray[0]" # Return the array of characters return $charactersArray diff --git a/functions/private/Invoke-MicroWin-Helper.ps1 b/functions/private/Invoke-MicroWin-Helper.ps1 index f34adb35..2f8011a2 100644 --- a/functions/private/Invoke-MicroWin-Helper.ps1 +++ b/functions/private/Invoke-MicroWin-Helper.ps1 @@ -1,19 +1,3 @@ -function Invoke-MicroWin-Helper { -<# - - .SYNOPSIS - checking unit tests - - .PARAMETER Name - no parameters - - .EXAMPLE - placeholder - -#> - -} - function Test-CompatibleImage() { <# diff --git a/functions/private/Show-CustomDialog.ps1 b/functions/private/Show-CustomDialog.ps1 index e102c43e..505c7a8d 100644 --- a/functions/private/Show-CustomDialog.ps1 +++ b/functions/private/Show-CustomDialog.ps1 @@ -178,17 +178,67 @@ $cttLogoPath = @" $winutilTextBlock.Foreground = $foregroundColor $winutilTextBlock.Margin = New-Object Windows.Thickness(10, 5, 10, 5) # Add margins around the text block $stackPanel.Children.Add($winutilTextBlock) - # Add TextBlock for information with text wrapping and margins $messageTextBlock = New-Object Windows.Controls.TextBlock - $messageTextBlock.Text = $Message $messageTextBlock.TextWrapping = [Windows.TextWrapping]::Wrap # Enable text wrapping $messageTextBlock.HorizontalAlignment = [Windows.HorizontalAlignment]::Left $messageTextBlock.VerticalAlignment = [Windows.VerticalAlignment]::Top $messageTextBlock.Margin = New-Object Windows.Thickness(10) # Add margins around the text block + + # Define the Regex to find hyperlinks formatted as HTML tags + $regex = [regex]::new('([^<]+)') + $lastPos = 0 + + # Iterate through each match and add regular text and hyperlinks + foreach ($match in $regex.Matches($Message)) { + # Add the text before the hyperlink, if any + $textBefore = $Message.Substring($lastPos, $match.Index - $lastPos) + if ($textBefore.Length -gt 0) { + $messageTextBlock.Inlines.Add((New-Object Windows.Documents.Run($textBefore))) + } + + # Create and add the hyperlink + $hyperlink = New-Object Windows.Documents.Hyperlink + $hyperlink.NavigateUri = New-Object System.Uri($match.Groups[1].Value) + $hyperlink.Inlines.Add($match.Groups[2].Value) + $hyperlink.TextDecorations = [Windows.TextDecorations]::None # Remove underline + $hyperlink.Foreground = $foregroundColor + $hyperlink.Add_Click({ + param($sender, $args) + Start-Process $sender.NavigateUri.AbsoluteUri + }) + $hyperlink.Add_MouseEnter({ + param($sender, $args) + $sender.Foreground = [Windows.Media.Brushes]::LightGray + }) + $hyperlink.Add_MouseLeave({ + param($sender, $args) + $sender.Foreground = $foregroundColor + }) + + $messageTextBlock.Inlines.Add($hyperlink) + + # Update the last position + $lastPos = $match.Index + $match.Length + } + + # Add any remaining text after the last hyperlink + if ($lastPos -lt $Message.Length) { + $textAfter = $Message.Substring($lastPos) + $messageTextBlock.Inlines.Add((New-Object Windows.Documents.Run($textAfter))) + } + + # If no matches, add the entire message as a run + if ($regex.Matches($Message).Count -eq 0) { + $messageTextBlock.Inlines.Add((New-Object Windows.Documents.Run($Message))) + } + + + # Add the TextBlock to the Grid $grid.Children.Add($messageTextBlock) [Windows.Controls.Grid]::SetRow($messageTextBlock, 1) # Set the row to the second row (0-based index) + # Add OK button $okButton = New-Object Windows.Controls.Button $okButton.Content = "OK" diff --git a/functions/public/Invoke-WPFButton.ps1 b/functions/public/Invoke-WPFButton.ps1 index 75ac3917..5ca1dc78 100644 --- a/functions/public/Invoke-WPFButton.ps1 +++ b/functions/public/Invoke-WPFButton.ps1 @@ -26,7 +26,7 @@ function Invoke-WPFButton { "WPFclear" {Invoke-WPFPresets -preset $null -imported $true} "WPFclearWinget" {Invoke-WPFPresets -preset $null -imported $true -CheckBox "WPFInstall"} "WPFtweaksbutton" {Invoke-WPFtweaksbutton} - "WPFOOSUbutton" {Invoke-WPFOOSU -action "customize"} + "WPFOOSUbutton" {Invoke-WPFOOSU} "WPFAddUltPerf" {Invoke-WPFUltimatePerformance -State "Enabled"} "WPFRemoveUltPerf" {Invoke-WPFUltimatePerformance -State "Disabled"} "WPFundoall" {Invoke-WPFundoall} diff --git a/functions/public/Invoke-WPFOOSU.ps1 b/functions/public/Invoke-WPFOOSU.ps1 index 97f64e89..c47b04bf 100644 --- a/functions/public/Invoke-WPFOOSU.ps1 +++ b/functions/public/Invoke-WPFOOSU.ps1 @@ -1,43 +1,20 @@ function Invoke-WPFOOSU { <# .SYNOPSIS - Downloads and runs OO Shutup 10 with or without config files - .PARAMETER action - Specifies how OOSU should be started - customize: Opens the OOSU GUI - recommended: Loads and applies the recommended OOSU policies silently - undo: Resets all policies to factory silently + Downloads and runs OO Shutup 10 #> - - param ( - [ValidateSet("customize", "recommended", "undo")] - [string]$action - ) - - $OOSU_filepath = "$ENV:temp\OOSU10.exe" - - $Initial_ProgressPreference = $ProgressPreference - $ProgressPreference = "SilentlyContinue" # Disables the Progress Bar to drasticly speed up Invoke-WebRequest - Invoke-WebRequest -Uri "https://dl5.oo-software.com/files/ooshutup10/OOSU10.exe" -OutFile $OOSU_filepath - - switch ($action) - { - "customize"{ - Write-Host "Starting OO Shutup 10 ..." - Start-Process $OOSU_filepath - } - "recommended"{ - $oosu_config = "$ENV:temp\ooshutup10_recommended.cfg" - $sync.configs.ooshutup10_recommended | Out-File -FilePath $oosu_config -Force - Write-Host "Applying recommended OO Shutup 10 Policies" - Start-Process $OOSU_filepath -ArgumentList "$oosu_config /quiet" -Wait - } - "undo"{ - $oosu_config = "$ENV:temp\ooshutup10_factory.cfg" - $sync.configs.ooshutup10_factory | Out-File -FilePath $oosu_config -Force - Write-Host "Resetting all OO Shutup 10 Policies" - Start-Process $OOSU_filepath -ArgumentList "$oosu_config /quiet" -Wait - } + try { + $OOSU_filepath = "$ENV:temp\OOSU10.exe" + $Initial_ProgressPreference = $ProgressPreference + $ProgressPreference = "SilentlyContinue" # Disables the Progress Bar to drasticly speed up Invoke-WebRequest + Invoke-WebRequest -Uri "https://dl5.oo-software.com/files/ooshutup10/OOSU10.exe" -OutFile $OOSU_filepath + Write-Host "Starting OO Shutup 10 ..." + Start-Process $OOSU_filepath } - $ProgressPreference = $Initial_ProgressPreference -} + catch { + Write-Host "Error Downloading and Running OO Shutup 10" -ForegroundColor Red + } + finally { + $ProgressPreference = $Initial_ProgressPreference + } +} \ No newline at end of file diff --git a/logs/test b/logs/test deleted file mode 100644 index e69de29b..00000000 diff --git a/scripts/main.ps1 b/scripts/main.ps1 index 23978ab7..572ecee4 100644 --- a/scripts/main.ps1 +++ b/scripts/main.ps1 @@ -133,9 +133,17 @@ $sync.keys | ForEach-Object { # Load computer information in the background Invoke-WPFRunspace -ScriptBlock { - $sync.ConfigLoaded = $False - $sync.ComputerInfo = Get-ComputerInfo - $sync.ConfigLoaded = $True + try{ + $oldProgressPreference = $ProgressPreference + $ProgressPreference = "SilentlyContinue" + $sync.ConfigLoaded = $False + $sync.ComputerInfo = Get-ComputerInfo + $sync.ConfigLoaded = $True + } + finally{ + $ProgressPreference = "Continue" + } + } | Out-Null #=========================================================================== @@ -145,9 +153,6 @@ Invoke-WPFRunspace -ScriptBlock { # Print the logo Invoke-WPFFormVariables -# Install Winget if not already present -Install-WinUtilWinget - # Set the titlebar $sync["Form"].title = $sync["Form"].title + " " + $sync.version # Set the commands that will run when the form is closed @@ -467,14 +472,13 @@ $sync["AboutMenuItem"].Add_Click({ # Handle Export menu item click Write-Debug "About clicked" $sync["SettingsPopup"].IsOpen = $false - # Example usage $authorInfo = @" -Author : @christitustech -Runspace : @DeveloperDurp -GUI : @KonTy -MicroWin : @KonTy -GitHub : https://github.com/ChrisTitusTech/winutil -Version : $($sync.version) +Author : @christitustech +Runspace : @DeveloperDurp +GUI : @KonTy +MicroWin : @KonTy +GitHub : ChrisTitusTech/winutil +Version : $($sync.version) "@ Show-CustomDialog -Message $authorInfo -Width 400 }) diff --git a/winutil.ps1 b/winutil.ps1 index 3c80f14d..682c746b 100644 --- a/winutil.ps1 +++ b/winutil.ps1 @@ -8,7 +8,7 @@ Author : Chris Titus @christitustech Runspace Author: @DeveloperDurp GitHub : https://github.com/ChrisTitusTech - Version : 24.06.18 + Version : 24.06.25 #> param ( [switch]$Debug, @@ -45,7 +45,7 @@ Add-Type -AssemblyName System.Windows.Forms # Variable to sync between runspaces $sync = [Hashtable]::Synchronized(@{}) $sync.PSScriptRoot = $PSScriptRoot -$sync.version = "24.06.18" +$sync.version = "24.06.25" $sync.configs = @{} $sync.ProcessRunning = $false @@ -170,60 +170,6 @@ function Get-LocalizedYesNo { # Return the array of characters return $charactersArray } - - -function Get-LocalizedYesNoTakeown { - <# - .SYNOPSIS - This function runs takeown.exe and captures its output to extract yes no in a localized Windows - - .DESCRIPTION - The function retrieves lines from the output of takeown.exe until there are at least 2 characters - captured in a specific format, such as "Yes=, No=". - - .EXAMPLE - $yesNoArray = Get-LocalizedYesNo - Write-Host "Yes=$($yesNoArray[0]), No=$($yesNoArray[1])" - #> - - # Run takeown.exe and capture its output - $takeownOutput = & takeown.exe /? | Out-String - - # Parse the output and retrieve lines until there are at least 2 characters in the array - $found = $false - $charactersArray = @() - foreach ($line in $takeownOutput -split "`r`n") - { - # skip everything before /D flag help - if ($found) - { - # now that /D is found start looking for a single character in double quotes - # in help text there is another string in double quotes but it is not a single character - $regexPattern = '"([a-zA-Z])"' - - $charactersArray = [regex]::Matches($line, $regexPattern) | ForEach-Object { $_.Groups[1].Value } - - # if ($charactersArray.Count -gt 0) { - # Write-Output "Extracted symbols: $($matches -join ', ')" - # } else { - # Write-Output "No matches found." - # } - - if ($charactersArray.Count -ge 2) - { - break - } - } - elseif ($line -match "/D ") - { - $found = $true - } - } - - Write-Debug "According to takeown.exe local Yes is $charactersArray[0]" - # Return the array of characters - return $charactersArray - } function Get-Oscdimg { <# @@ -1011,22 +957,6 @@ function Install-WinUtilWinget { } } } -function Invoke-MicroWin-Helper { -<# - - .SYNOPSIS - checking unit tests - - .PARAMETER Name - no parameters - - .EXAMPLE - placeholder - -#> - -} - function Test-CompatibleImage() { <# @@ -2810,17 +2740,67 @@ $cttLogoPath = @" $winutilTextBlock.Foreground = $foregroundColor $winutilTextBlock.Margin = New-Object Windows.Thickness(10, 5, 10, 5) # Add margins around the text block $stackPanel.Children.Add($winutilTextBlock) - # Add TextBlock for information with text wrapping and margins $messageTextBlock = New-Object Windows.Controls.TextBlock - $messageTextBlock.Text = $Message $messageTextBlock.TextWrapping = [Windows.TextWrapping]::Wrap # Enable text wrapping $messageTextBlock.HorizontalAlignment = [Windows.HorizontalAlignment]::Left $messageTextBlock.VerticalAlignment = [Windows.VerticalAlignment]::Top $messageTextBlock.Margin = New-Object Windows.Thickness(10) # Add margins around the text block + + # Define the Regex to find hyperlinks formatted as HTML tags + $regex = [regex]::new('([^<]+)') + $lastPos = 0 + + # Iterate through each match and add regular text and hyperlinks + foreach ($match in $regex.Matches($Message)) { + # Add the text before the hyperlink, if any + $textBefore = $Message.Substring($lastPos, $match.Index - $lastPos) + if ($textBefore.Length -gt 0) { + $messageTextBlock.Inlines.Add((New-Object Windows.Documents.Run($textBefore))) + } + + # Create and add the hyperlink + $hyperlink = New-Object Windows.Documents.Hyperlink + $hyperlink.NavigateUri = New-Object System.Uri($match.Groups[1].Value) + $hyperlink.Inlines.Add($match.Groups[2].Value) + $hyperlink.TextDecorations = [Windows.TextDecorations]::None # Remove underline + $hyperlink.Foreground = $foregroundColor + $hyperlink.Add_Click({ + param($sender, $args) + Start-Process $sender.NavigateUri.AbsoluteUri + }) + $hyperlink.Add_MouseEnter({ + param($sender, $args) + $sender.Foreground = [Windows.Media.Brushes]::LightGray + }) + $hyperlink.Add_MouseLeave({ + param($sender, $args) + $sender.Foreground = $foregroundColor + }) + + $messageTextBlock.Inlines.Add($hyperlink) + + # Update the last position + $lastPos = $match.Index + $match.Length + } + + # Add any remaining text after the last hyperlink + if ($lastPos -lt $Message.Length) { + $textAfter = $Message.Substring($lastPos) + $messageTextBlock.Inlines.Add((New-Object Windows.Documents.Run($textAfter))) + } + + # If no matches, add the entire message as a run + if ($regex.Matches($Message).Count -eq 0) { + $messageTextBlock.Inlines.Add((New-Object Windows.Documents.Run($Message))) + } + + + # Add the TextBlock to the Grid $grid.Children.Add($messageTextBlock) [Windows.Controls.Grid]::SetRow($messageTextBlock, 1) # Set the row to the second row (0-based index) + # Add OK button $okButton = New-Object Windows.Controls.Button $okButton.Content = "OK" @@ -3026,7 +3006,7 @@ function Invoke-WPFButton { "WPFclear" {Invoke-WPFPresets -preset $null -imported $true} "WPFclearWinget" {Invoke-WPFPresets -preset $null -imported $true -CheckBox "WPFInstall"} "WPFtweaksbutton" {Invoke-WPFtweaksbutton} - "WPFOOSUbutton" {Invoke-WPFOOSU -action "customize"} + "WPFOOSUbutton" {Invoke-WPFOOSU} "WPFAddUltPerf" {Invoke-WPFUltimatePerformance -State "Enabled"} "WPFRemoveUltPerf" {Invoke-WPFUltimatePerformance -State "Disabled"} "WPFundoall" {Invoke-WPFundoall} @@ -4414,45 +4394,22 @@ public class PowerManagement { function Invoke-WPFOOSU { <# .SYNOPSIS - Downloads and runs OO Shutup 10 with or without config files - .PARAMETER action - Specifies how OOSU should be started - customize: Opens the OOSU GUI - recommended: Loads and applies the recommended OOSU policies silently - undo: Resets all policies to factory silently + Downloads and runs OO Shutup 10 #> - - param ( - [ValidateSet("customize", "recommended", "undo")] - [string]$action - ) - - $OOSU_filepath = "$ENV:temp\OOSU10.exe" - - $Initial_ProgressPreference = $ProgressPreference - $ProgressPreference = "SilentlyContinue" # Disables the Progress Bar to drasticly speed up Invoke-WebRequest - Invoke-WebRequest -Uri "https://dl5.oo-software.com/files/ooshutup10/OOSU10.exe" -OutFile $OOSU_filepath - - switch ($action) - { - "customize"{ - Write-Host "Starting OO Shutup 10 ..." - Start-Process $OOSU_filepath - } - "recommended"{ - $oosu_config = "$ENV:temp\ooshutup10_recommended.cfg" - $sync.configs.ooshutup10_recommended | Out-File -FilePath $oosu_config -Force - Write-Host "Applying recommended OO Shutup 10 Policies" - Start-Process $OOSU_filepath -ArgumentList "$oosu_config /quiet" -Wait - } - "undo"{ - $oosu_config = "$ENV:temp\ooshutup10_factory.cfg" - $sync.configs.ooshutup10_factory | Out-File -FilePath $oosu_config -Force - Write-Host "Resetting all OO Shutup 10 Policies" - Start-Process $OOSU_filepath -ArgumentList "$oosu_config /quiet" -Wait - } + try { + $OOSU_filepath = "$ENV:temp\OOSU10.exe" + $Initial_ProgressPreference = $ProgressPreference + $ProgressPreference = "SilentlyContinue" # Disables the Progress Bar to drasticly speed up Invoke-WebRequest + Invoke-WebRequest -Uri "https://dl5.oo-software.com/files/ooshutup10/OOSU10.exe" -OutFile $OOSU_filepath + Write-Host "Starting OO Shutup 10 ..." + Start-Process $OOSU_filepath } - $ProgressPreference = $Initial_ProgressPreference + catch { + Write-Host "Error Downloading and Running OO Shutup 10" -ForegroundColor Red + } + finally { + $ProgressPreference = $Initial_ProgressPreference + } } function Invoke-WPFPanelAutologin { <# @@ -6315,14 +6272,6 @@ $sync.configs.applications = '{ "link": "https://www.oracle.com/java/", "winget": "EclipseAdoptium.Temurin.18.JRE" }, - "WPFInstalljava20": { - "category": "Development", - "choco": "na", - "content": "Azul Zulu JDK 20", - "description": "Azul Zulu JDK 20 is a distribution of the OpenJDK with long-term support, performance enhancements, and security updates.", - "link": "https://www.azul.com/downloads/zulu-community/", - "winget": "Azul.Zulu.20.JDK" - }, "WPFInstalljava21": { "category": "Development", "choco": "na", @@ -6643,14 +6592,6 @@ $sync.configs.applications = '{ "link": "https://sourceforge.net/projects/equalizerapo", "winget": "na" }, - "WPFInstallFreeFileSync": { - "category": "Utilities", - "choco": "freefilesync", - "content": "FreeFileSync", - "description": "Synchronize Files and Folders", - "link": "https://freefilesync.org", - "winget": "na" - }, "WPFInstallCompactGUI": { "category": "Utilities", "choco": "compactgui", @@ -7003,6 +6944,14 @@ $sync.configs.applications = '{ "link": "https://www.plex.tv/your-media/", "winget": "Plex.PlexMediaServer" }, + "WPFInstallplexdesktop": { + "category": "Multimedia Tools", + "choco": "plex", + "content": "Plex Desktop", + "description": "Plex Desktop for Windows is the front end for Plex Media Server.", + "link": "https://www.plex.tv", + "winget": "Plex.Plex" + }, "WPFInstallPortmaster": { "category": "Pro Tools", "choco": "portmaster", @@ -7171,6 +7120,14 @@ $sync.configs.applications = '{ "link": "https://www.revouninstaller.com/", "winget": "RevoUninstaller.RevoUninstaller" }, + "WPFInstallWiseProgramUninstaller": { + "category": "Utilities", + "choco": "na", + "content": "Wise Program Uninstaller (WiseCleaner)", + "description": "Wise Program Uninstaller is the perfect solution for uninstalling Windows programs, allowing you to uninstall applications quickly and completely using its simple and user-friendly interface.", + "link": "https://www.wisecleaner.com/wise-program-uninstaller.html", + "winget": "WiseCleaner.WiseProgramUninstaller" + }, "WPFInstallrevolt": { "category": "Communications", "choco": "na", @@ -7843,6 +7800,14 @@ $sync.configs.applications = '{ "link": "https://toys.wisecleaner.com/", "winget": "WiseCleaner.WiseToys" }, + "WPFInstallTeraCopy": { + "category": "Utilities", + "choco": "TeraCopy", + "content": "TeraCopy", + "description": "Copy your files faster and more securely", + "link": "https://codesector.com/teracopy", + "winget": "CodeSector.TeraCopy" + }, "WPFInstallwizfile": { "category": "Utilities", "choco": "na", @@ -8067,6 +8032,14 @@ $sync.configs.applications = '{ "link": "https://github.com/AutoDarkMode/Windows-Auto-Night-Mode", "winget": "Armin2208.WindowsAutoNightMode" }, + "WPFInstallAmbieWhiteNoise": { + "category": "Utilities", + "choco": "na", + "content": "Ambie White Noise", + "description": "Ambie is the ultimate app to help you focus, study, or relax. We use white noise and nature sounds combined with an innovative focus timer to keep you concentrated on doing your best work.", + "link": "https://ambieapp.com/", + "winget": "9P07XNM5CHP0" + }, "WPFInstallmagicwormhole": { "category": "Utilities", "choco": "magic-wormhole", @@ -8075,6 +8048,14 @@ $sync.configs.applications = '{ "link": "https://github.com/magic-wormhole/magic-wormhole", "winget": "magic-wormhole.magic-wormhole" }, + "WPFInstallcroc": { + "category": "Utilities", + "choco": "croc", + "content": "croc", + "description": "Easily and securely send things from one computer to another.", + "link": "https://github.com/schollz/croc", + "winget": "schollz.croc" + }, "WPFInstallqgis": { "category": "Multimedia Tools", "choco": "qgis", @@ -8126,11 +8107,19 @@ $sync.configs.applications = '{ "WPFInstallForceAutoHDR": { "category": "Utilities", "choco": "na", - "content": "GUI That Forces Auto HDR In Unsupported Games", + "content": "ForceAutoHDR", "description": "ForceAutoHDR simplifies the process of adding games to the AutoHDR list in the Windows Registry", "link": "https://github.com/7gxycn08/ForceAutoHDR", "winget": "ForceAutoHDR.7gxycn08" }, + "WPFInstallJoyToKey": { + "category": "Utilities", + "choco": "joytokey", + "content": "JoyToKey", + "description": "enables PC game controllers to emulate the keyboard and mouse input", + "link": "https://joytokey.net/en/", + "winget": "JTKsoftware.JoyToKey" + }, "WPFInstallnditools": { "category": "Multimedia Tools", "choco": "na", @@ -8138,6 +8127,14 @@ $sync.configs.applications = '{ "description": "NDI, or Network Device Interface, is a video connectivity standard that enables multimedia systems to identify and communicate with one another over IP and to encode, transmit, and receive high-quality, low latency, frame-accurate video and audio, and exchange metadata in real-time.", "link": "https://ndi.video/", "winget": "NDI.NDITools" + }, + "WPFInstallkicad": { + "category": "Pro Tools", + "choco": "na", + "content": "Kicad", + "description": "Kicad is an open-source EDA tool. It's a good starting point for those who want to do electrical design and is even used by professionals in the industry.", + "link": "https://www.kicad.org/", + "winget": "KiCad.KiCad" } }' | convertfrom-json $sync.configs.dns = '{ @@ -8439,7 +8436,6 @@ $sync.configs.preset = '{ "WPFTweaksHiber", "WPFTweaksHome", "WPFTweaksLoc", - "WPFTweaksOO", "WPFTweaksServices", "WPFTweaksStorage", "WPFTweaksTele", @@ -8452,7 +8448,6 @@ $sync.configs.preset = '{ ], "Minimal": [ "WPFTweaksHome", - "WPFTweaksOO", "WPFTweaksServices", "WPFTweaksTele" ] @@ -9779,11 +9774,6 @@ $sync.configs.tweaks = '{ "StartupType": "Automatic", "OriginalType": "Automatic" }, - { - "Name": "WwanSvc", - "StartupType": "Manual", - "OriginalType": "Manual" - }, { "Name": "XblAuthManager", "StartupType": "Manual", @@ -10869,20 +10859,6 @@ $sync.configs.tweaks = '{ "Invoke-WPFTweakPS7 -action \"PS5\"" ] }, - "WPFTweaksOO": { - "Content": "Run OO Shutup", - "Description": "Runs OO Shutup and applies the recommended Tweaks. https://www.oo-software.com/en/shutup10", - "category": "Essential Tweaks", - "panel": "1", - "Order": "a009_", - "ToolTip": "Runs OO Shutup and applies the recommended Tweaks https://www.oo-software.com/en/shutup10", - "InvokeScript": [ - "Invoke-WPFOOSU -action \"recommended\"" - ], - "UndoScript": [ - "Invoke-WPFOOSU -action \"undo\"" - ] - }, "WPFTweaksStorage": { "Content": "Disable Storage Sense", "Description": "Storage Sense deletes temp files automatically.", @@ -10898,17 +10874,15 @@ $sync.configs.tweaks = '{ }, "WPFTweaksRemoveEdge": { "Content": "Remove Microsoft Edge - NOT RECOMMENDED", - "Description": "Removes MS Edge when it gets reinstalled by updates.", + "Description": "Removes MS Edge when it gets reinstalled by updates. Credit: AveYo", "category": "z__Advanced Tweaks - CAUTION", "panel": "1", "Order": "a029_", "InvokeScript": [ " #:: Standalone script by AveYo Source: https://raw.githubusercontent.com/AveYo/fox/main/Edge_Removal.bat - - curl.exe -s \"https://raw.githubusercontent.com/ChrisTitusTech/winutil/main/edgeremoval.bat\" -o $ENV:temp\\edgeremoval.bat + Invoke-WebRequest -Uri \"https://raw.githubusercontent.com/ChrisTitusTech/winutil/main/edgeremoval.bat\" -OutFile \"$ENV:TEMP\\edgeremoval.bat\" Start-Process $ENV:temp\\edgeremoval.bat - " ], "UndoScript": [ @@ -10963,12 +10937,12 @@ $sync.configs.tweaks = '{ "WPFTweaksDisableLMS1": { "Content": "Disable Intel MM (vPro LMS)", "Description": "Intel LMS service is always listening on all ports and could be a huge security risk. There is no need to run LMS on home machines and even in the Enterprise there are better solutions.", - "category": "Essential Tweaks", + "category": "z__Advanced Tweaks - CAUTION", "panel": "1", - "Order": "a0015_", + "Order": "a026_", "InvokeScript": [ " - Write-Host \"Kill OneDrive process\" + Write-Host \"Kill LMS\" $serviceName = \"LMS\" Write-Host \"Stopping and disabling service: $serviceName\" Stop-Service -Name $serviceName -Force -ErrorAction SilentlyContinue; @@ -11012,8 +10986,7 @@ $sync.configs.tweaks = '{ ], "UndoScript": [ " - Write-Host \"Install Microsoft Edge\" - taskkill.exe /F /IM \"OneDrive.exe\" + Write-Host \"LMS vPro needs to be redownloaded from intel.com\" " ] @@ -11640,7 +11613,7 @@ $sync.configs.tweaks = '{ "Type": "Toggle" }, "WPFOOSUbutton": { - "Content": "Customize OO Shutup Tweaks", + "Content": "Run OO Shutup 10", "category": "z__Advanced Tweaks - CAUTION", "panel": "1", "Order": "a039_", @@ -11698,922 +11671,6 @@ $sync.configs.tweaks = '{ "Type": "300" } }' | convertfrom-json -$sync.configs.ooshutup10_factory = '############################################################################ -# This file was created with O&O ShutUp10++ V1.9.1436 -# and can be imported onto another computer. -# -# Download the application at https://www.oo-software.com/shutup10 -# You can then import the file from within the program. -# -# Alternatively you can import it automatically over a command line. -# Simply use the following parameter: -# OOSU10.exe -# -# Selecting the Option /quiet ends the app right after the import and the -# user does not get any feedback about the import. -# -# We are always happy to answer any questions you may have! -# ? 2015-2023 O&O Software GmbH, Berlin. All rights reserved. -# https://www.oo-software.com/ -############################################################################ - -P001 - -P002 - -P003 - -P004 - -P005 - -P006 - -P008 - -P026 - -P027 - -P028 - -P064 - -P065 - -P066 - -P067 - -P070 - -P069 - -P009 - -P010 - -P015 - -P068 - -P016 - -A001 - -A002 - -A003 - -A004 - -A006 - -A005 - -P007 - -P036 - -P025 - -P033 - -P023 - -P056 - -P057 - -P012 - -P034 - -P013 - -P035 - -P062 - -P063 - -P081 - -P047 - -P019 - -P048 - -P049 - -P020 - -P037 - -P011 - -P038 - -P050 - -P051 - -P018 - -P039 - -P021 - -P040 - -P022 - -P041 - -P014 - -P042 - -P052 - -P053 - -P054 - -P055 - -P029 - -P043 - -P030 - -P044 - -P031 - -P045 - -P032 - -P046 - -P058 - -P059 - -P060 - -P061 - -P071 - -P072 - -P073 - -P074 - -P075 - -P076 - -P077 - -P078 - -P079 - -P080 - -P024 - -S001 - -S002 - -S003 - -S008 - -E101 - -E201 - -E115 - -E215 - -E118 - -E218 - -E107 - -E207 - -E111 - -E211 - -E112 - -E212 - -E109 - -E209 - -E121 - -E221 - -E103 - -E203 - -E123 - -E223 - -E124 - -E224 - -E128 - -E228 - -E119 - -E219 - -E120 - -E220 - -E122 - -E222 - -E125 - -E225 - -E126 - -E226 - -E106 - -E206 - -E127 - -E227 - -E001 - -E002 - -E003 - -E008 - -E007 - -E010 - -E011 + -E012 + -E009 - -E004 - -E005 - -E013 - -E014 - -E006 - -Y001 - -Y002 - -Y003 - -Y004 - -Y005 - -Y006 - -Y007 - -C012 - -C002 - -C013 - -C007 - -C008 - -C009 - -C010 - -C011 - -C014 - -C015 - -C101 - -C201 - -C102 - -L001 - -L003 - -L004 - -L005 - -U001 - -U004 - -U005 - -U006 - -U007 - -W001 - -W011 - -W004 - -W005 - -W010 - -W009 - -P017 - -W006 - -W008 - -M006 - -M011 - -M010 - -O003 - -O001 - -S012 - -S013 - -S014 - -K001 - -K002 - -K005 - -M003 - -M015 - -M016 - -M017 - -M018 - -M019 - -M020 - -M021 - -M022 - -M001 - -M004 - -M005 - -M024 - -M012 - -M013 - -M014 - -N001 -' -$sync.configs.ooshutup10_recommended = '############################################################################ -# This file was created with O&O ShutUp10++ V1.9.1438 -# and can be imported onto another computer. -# -# Download the application at https://www.oo-software.com/shutup10 -# You can then import the file from within the program. -# -# Alternatively you can import it automatically over a command line. -# Simply use the following parameter: -# OOSU10.exe -# -# Selecting the Option /quiet ends the app right after the import and the -# user does not get any feedback about the import. -# -# We are always happy to answer any questions you may have! -# ? 2015-2024 O&O Software GmbH, Berlin. All rights reserved. -# https://www.oo-software.com/ -############################################################################ - -P001 + -P002 + -P003 + -P004 + -P005 + -P006 + -P008 + -P026 + -P027 + -P028 + -P064 + -P065 + -P066 + -P067 + -P070 + -P069 + -P009 - -P010 + -P015 + -P068 - -P016 - -A001 + -A002 + -A003 + -A004 + -A006 + -A005 + -P007 + -P036 + -P025 + -P033 + -P023 + -P056 + -P057 - -P012 - -P034 - -P013 - -P035 - -P062 - -P063 - -P081 - -P047 - -P019 - -P048 - -P049 - -P020 - -P037 - -P011 - -P038 - -P050 - -P051 - -P018 - -P039 - -P021 - -P040 - -P022 - -P041 - -P014 - -P042 - -P052 - -P053 - -P054 - -P055 - -P029 - -P043 - -P030 - -P044 - -P031 - -P045 - -P032 - -P046 - -P058 - -P059 - -P060 - -P061 - -P071 - -P072 - -P073 - -P074 - -P075 - -P076 - -P077 - -P078 - -P079 - -P080 - -P024 + -S001 + -S002 + -S003 + -S008 - -E101 + -E201 + -E115 + -E215 + -E118 + -E218 + -E107 + -E207 + -E111 + -E211 + -E112 + -E212 + -E109 + -E209 + -E121 + -E221 + -E103 + -E203 + -E123 + -E223 + -E124 + -E224 + -E128 + -E228 + -E119 - -E219 - -E120 - -E220 - -E122 - -E222 - -E125 - -E225 - -E126 - -E226 - -E106 - -E206 - -E127 - -E227 - -E001 + -E002 + -E003 + -E008 + -E007 + -E010 + -E011 + -E012 + -E009 - -E004 - -E005 - -E013 - -E014 - -E006 - -Y001 + -Y002 + -Y003 + -Y004 + -Y005 + -Y006 + -Y007 + -C012 + -C002 + -C013 + -C007 + -C008 + -C009 + -C010 + -C011 + -C014 + -C015 + -C101 + -C201 + -C102 + -C103 + -C203 + -L001 + -L003 + -L004 - -L005 - -U001 + -U004 + -U005 + -U006 + -U007 + -W001 + -W011 + -W004 - -W005 - -W010 - -W009 - -P017 + -W006 - -W008 - -M006 + -M011 - -M010 + -O003 - -O001 - -S012 - -S013 - -S014 - -K001 + -K002 + -K005 + -M003 + -M015 + -M016 + -M017 - -M018 + -M019 - -M020 + -M021 + -M022 + -M001 + -M004 + -M005 + -M024 + -M026 + -M027 + -M012 - -M013 - -M014 - -N001 -' -$sync.configs.ooshutup10_factory = '############################################################################ -# This file was created with O&O ShutUp10++ V1.9.1436 -# and can be imported onto another computer. -# -# Download the application at https://www.oo-software.com/shutup10 -# You can then import the file from within the program. -# -# Alternatively you can import it automatically over a command line. -# Simply use the following parameter: -# OOSU10.exe -# -# Selecting the Option /quiet ends the app right after the import and the -# user does not get any feedback about the import. -# -# We are always happy to answer any questions you may have! -# ? 2015-2023 O&O Software GmbH, Berlin. All rights reserved. -# https://www.oo-software.com/ -############################################################################ - -P001 - -P002 - -P003 - -P004 - -P005 - -P006 - -P008 - -P026 - -P027 - -P028 - -P064 - -P065 - -P066 - -P067 - -P070 - -P069 - -P009 - -P010 - -P015 - -P068 - -P016 - -A001 - -A002 - -A003 - -A004 - -A006 - -A005 - -P007 - -P036 - -P025 - -P033 - -P023 - -P056 - -P057 - -P012 - -P034 - -P013 - -P035 - -P062 - -P063 - -P081 - -P047 - -P019 - -P048 - -P049 - -P020 - -P037 - -P011 - -P038 - -P050 - -P051 - -P018 - -P039 - -P021 - -P040 - -P022 - -P041 - -P014 - -P042 - -P052 - -P053 - -P054 - -P055 - -P029 - -P043 - -P030 - -P044 - -P031 - -P045 - -P032 - -P046 - -P058 - -P059 - -P060 - -P061 - -P071 - -P072 - -P073 - -P074 - -P075 - -P076 - -P077 - -P078 - -P079 - -P080 - -P024 - -S001 - -S002 - -S003 - -S008 - -E101 - -E201 - -E115 - -E215 - -E118 - -E218 - -E107 - -E207 - -E111 - -E211 - -E112 - -E212 - -E109 - -E209 - -E121 - -E221 - -E103 - -E203 - -E123 - -E223 - -E124 - -E224 - -E128 - -E228 - -E119 - -E219 - -E120 - -E220 - -E122 - -E222 - -E125 - -E225 - -E126 - -E226 - -E106 - -E206 - -E127 - -E227 - -E001 - -E002 - -E003 - -E008 - -E007 - -E010 - -E011 + -E012 + -E009 - -E004 - -E005 - -E013 - -E014 - -E006 - -Y001 - -Y002 - -Y003 - -Y004 - -Y005 - -Y006 - -Y007 - -C012 - -C002 - -C013 - -C007 - -C008 - -C009 - -C010 - -C011 - -C014 - -C015 - -C101 - -C201 - -C102 - -L001 - -L003 - -L004 - -L005 - -U001 - -U004 - -U005 - -U006 - -U007 - -W001 - -W011 - -W004 - -W005 - -W010 - -W009 - -P017 - -W006 - -W008 - -M006 - -M011 - -M010 - -O003 - -O001 - -S012 - -S013 - -S014 - -K001 - -K002 - -K005 - -M003 - -M015 - -M016 - -M017 - -M018 - -M019 - -M020 - -M021 - -M022 - -M001 - -M004 - -M005 - -M024 - -M012 - -M013 - -M014 - -N001 -' -$sync.configs.ooshutup10_recommended = '############################################################################ -# This file was created with O&O ShutUp10++ V1.9.1438 -# and can be imported onto another computer. -# -# Download the application at https://www.oo-software.com/shutup10 -# You can then import the file from within the program. -# -# Alternatively you can import it automatically over a command line. -# Simply use the following parameter: -# OOSU10.exe -# -# Selecting the Option /quiet ends the app right after the import and the -# user does not get any feedback about the import. -# -# We are always happy to answer any questions you may have! -# ? 2015-2024 O&O Software GmbH, Berlin. All rights reserved. -# https://www.oo-software.com/ -############################################################################ - -P001 + -P002 + -P003 + -P004 + -P005 + -P006 + -P008 + -P026 + -P027 + -P028 + -P064 + -P065 + -P066 + -P067 + -P070 + -P069 + -P009 - -P010 + -P015 + -P068 - -P016 - -A001 + -A002 + -A003 + -A004 + -A006 + -A005 + -P007 + -P036 + -P025 + -P033 + -P023 + -P056 + -P057 - -P012 - -P034 - -P013 - -P035 - -P062 - -P063 - -P081 - -P047 - -P019 - -P048 - -P049 - -P020 - -P037 - -P011 - -P038 - -P050 - -P051 - -P018 - -P039 - -P021 - -P040 - -P022 - -P041 - -P014 - -P042 - -P052 - -P053 - -P054 - -P055 - -P029 - -P043 - -P030 - -P044 - -P031 - -P045 - -P032 - -P046 - -P058 - -P059 - -P060 - -P061 - -P071 - -P072 - -P073 - -P074 - -P075 - -P076 - -P077 - -P078 - -P079 - -P080 - -P024 + -S001 + -S002 + -S003 + -S008 - -E101 + -E201 + -E115 + -E215 + -E118 + -E218 + -E107 + -E207 + -E111 + -E211 + -E112 + -E212 + -E109 + -E209 + -E121 + -E221 + -E103 + -E203 + -E123 + -E223 + -E124 + -E224 + -E128 + -E228 + -E119 - -E219 - -E120 - -E220 - -E122 - -E222 - -E125 - -E225 - -E126 - -E226 - -E106 - -E206 - -E127 - -E227 - -E001 + -E002 + -E003 + -E008 + -E007 + -E010 + -E011 + -E012 + -E009 - -E004 - -E005 - -E013 - -E014 - -E006 - -Y001 + -Y002 + -Y003 + -Y004 + -Y005 + -Y006 + -Y007 + -C012 + -C002 + -C013 + -C007 + -C008 + -C009 + -C010 + -C011 + -C014 + -C015 + -C101 + -C201 + -C102 + -C103 + -C203 + -L001 + -L003 + -L004 - -L005 - -U001 + -U004 + -U005 + -U006 + -U007 + -W001 + -W011 + -W004 - -W005 - -W010 - -W009 - -P017 + -W006 - -W008 - -M006 + -M011 - -M010 + -O003 - -O001 - -S012 - -S013 - -S014 - -K001 + -K002 + -K005 + -M003 + -M015 + -M016 + -M017 - -M018 + -M019 - -M020 + -M021 + -M022 + -M001 + -M004 + -M005 + -M024 + -M026 + -M027 + -M012 - -M013 - -M014 - -N001 -' $inputXML = ' - + - + @@ -13515,9 +12584,6 @@ $inputXML = ' - - - @@ -13544,17 +12610,17 @@ $inputXML = ' - - - - - + + + + + @@ -13756,11 +12822,6 @@ $inputXML = ' - - - - - @@ -13770,6 +12831,11 @@ $inputXML = ' + + + + + @@ -13943,6 +13009,9 @@ $inputXML = ' + + + @@ -13978,11 +13047,6 @@ $inputXML = ' - - - - - + + + @@ -13997,6 +13066,9 @@ $inputXML = ' + + + @@ -14046,6 +13118,9 @@ $inputXML = ' + + + @@ -14094,6 +13169,9 @@ $inputXML = ' + + + @@ -14148,10 +13226,7 @@ $inputXML = ' - - - - + @@ -14184,6 +13259,9 @@ $inputXML = ' + + + @@ -14192,15 +13270,15 @@ $inputXML = ' + + + - - - @@ -14339,6 +13417,9 @@ $inputXML = ' + + + @@ -14387,6 +13468,9 @@ $inputXML = ' + + + @@ -14417,6 +13501,8 @@ $inputXML = ' + + @@ -14435,7 +13521,6 @@ $inputXML = '