forked from ChrisTitusTech/winutil
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Able to set the Default Terminal to Powershell 7 in Windows Terminal
* Run winget in open powershell window if possible and handle update * add return code reference * Seperated Logic for PS7 Profile change * Add tweak * Revert changes to last commit in Christitus Repo * Merge pull request #1 from Marterich/PS7profile Split Logic in different Script, Re-Add files with to reflect Chris's Repo
- Loading branch information
Showing
2 changed files
with
60 additions
and
1 deletion.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,46 @@ | ||
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" | ||
} | ||
} | ||
|