diff --git a/winutil.ps1 b/winutil.ps1
index c0fa47e0..bc456670 100644
--- a/winutil.ps1
+++ b/winutil.ps1
@@ -4675,6 +4675,52 @@ function Invoke-WPFToggle {
"WPFToggleTaskbarWidgets" {Invoke-WinUtilTaskbarWidgets $(Get-WinUtilToggleStatus WPFToggleTaskbarWidgets)}
}
}
+function Invoke-WPFTweakPS7{
+ <#
+ .SYNOPSIS
+ This will edit the config file of the Windows Terminal Replacing the Powershell 5 to Powershell 7 and install Powershell 7 if necessary
+ .PARAMETER action
+ PS7: Configures Powershell 7 to be the default Terminal
+ PS5: Configures Powershell 5 to be the default Terminal
+ #>
+ param (
+ [ValidateSet("PS7", "PS5")]
+ [string]$action
+ )
+
+ switch ($action) {
+ "PS7"{
+ if (Test-Path -Path "$env:ProgramFiles\PowerShell\7") {
+ Write-Host "Powershell 7 is already installed."
+ } else {
+ Write-Host "Installing Powershell 7..."
+ Install-WinUtilProgramWinget -ProgramsToInstall @(@{"winget"="Microsoft.PowerShell"})
+ }
+ $targetTerminalName = "PowerShell"
+ }
+ "PS5"{
+ $targetTerminalName = "Windows PowerShell"
+ }
+ }
+
+ $settingsPath = "$env:LOCALAPPDATA\Packages\Microsoft.WindowsTerminal_8wekyb3d8bbwe\LocalState\settings.json"
+ if (Test-Path -Path $settingsPath) {
+ Write-Host "Settings file found."
+ $settingsContent = Get-Content -Path $settingsPath | ConvertFrom-Json
+ $ps7Profile = $settingsContent.profiles.list | Where-Object { $_.name -eq $targetTerminalName }
+ if ($ps7Profile) {
+ $settingsContent.defaultProfile = $ps7Profile.guid
+ $updatedSettings = $settingsContent | ConvertTo-Json -Depth 100
+ Set-Content -Path $settingsPath -Value $updatedSettings
+ Write-Host "Default profile updated to $targetTerminalName using the name attribute."
+ } else {
+ Write-Host "No PowerShell 7 profile found in Windows Terminal settings using the name attribute."
+ }
+ } else {
+ Write-Host "Settings file not found at $settingsPath"
+ }
+}
+
function Invoke-WPFtweaksbutton {
<#
@@ -10732,6 +10778,19 @@ $sync.configs.tweaks = '{
"
]
},
+ "WPFTweaksPowershell7": {
+ "Content": "Replace Default Powershell 5 to Powershell 7",
+ "Description": "This will edit the config file of the Windows Terminal Replacing the Powershell 5 to Powershell 7 and install Powershell 7 if necessary",
+ "category": "Essential Tweaks",
+ "panel": "1",
+ "Order": "a007_",
+ "InvokeScript": [
+ "Invoke-WPFTweakPS7 -action \"PS7\""
+ ],
+ "UndoScript": [
+ "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",
@@ -13791,6 +13850,7 @@ $inputXML = '
+
diff --git a/xaml/inputTweaks.xaml b/xaml/inputTweaks.xaml
index a1142d00..a739e5f1 100644
--- a/xaml/inputTweaks.xaml
+++ b/xaml/inputTweaks.xaml
@@ -16,6 +16,7 @@
+