Is there a way to change the default shell in Windows Terminal?
Open Windows Terminal JSON settings. Next, in profiles
array find the object for the shell you're searching and copy the guid
value from it. The last step is to paste this value into the defaultProfile
attribute.
{
"$schema": "https://aka.ms/terminal-profiles-schema",
"defaultProfile": "{0caa0dad-35be-5f56-a8ff-afceeeaa6101}"
....
It may change your default shell.
The procedure requires some knowledge about JSON file format. Here is a brief
outline. Every member is represented as "name":"value"
pair. Arrays use
square brackets and Objects use curly brackets. Read this Wikipedia: JSON
for more details.
Procedure:
- Open Windows Terminal. Click on the down arrow symbol ˅ from menu bar. This will open a drop down menu from which select Settings option. Alternatively use Ctrl + , to open Settings directly. Here is a sample screenshot:
- After selecting the Settings, Notepad (or the default text editor) will open
profiles.json
file. Here is a sample, see first JSON object i.e."globals"
.
"globals" :
{
"alwaysShowTabs" : true,
"copyOnSelect" : false,
"defaultProfile" : "{12345678-1234-1234-1234-1234567890AB}",
"initialCols" : 120,
"initialRows" : 30,
We are interested in defaultProfile
name. The value with 128-bit format
{12345678-1234-1234-1234-1234567890AB}
is called UUID. Assume its like
a nickname for default shell :)
Now in that file, find
"name" : "cmd"
pair (or"commandline" : "cmd.exe"
pair) for Command Prompt. There will be a"guid"
pair adjacent of it. Copy the value, i.e. the 128-bit nickname. And paste it to globals > defaultProfile.Restart Windows Terminal.
If you have installed Windows Terminal without Windows Store, the actual path
of the profiles.json
is "%LocalAppData%\Microsoft\Windows Terminal\profiles.json"
.
You can directly open the path in any text editor.
Further Readings
- microsoft/terminal: Profiles.json Documentation
- microsoft/terminal: Editing Windows Terminal JSON Settings
Edit settings and change the defaultProfile value to the GUID value of the profile you want to be the default. For example:
{
"$schema": "https://aka.ms/terminal-profiles-schema",
"defaultProfile": "{d3f31bee-5823-5ed8-8e04-f31ed54f2cd9}",
...