90

When opening the new Windows Terminal, it opens up PowerShell. Also by default new tabs are PowerShell.

You have to manually switch to your desired shell. enter image description here

Is there a way in the settings JSON file to change this to cmd or something else?

windows version : 1903

5
  • What version of Windows 10 are you running. Edit your question instead of submitting a comment
    – Ramhound
    Commented Jul 5, 2019 at 14:08
  • Did you install the new Windows Terminal UWP application from the Windows Store?
    – Ramhound
    Commented Jul 5, 2019 at 18:03
  • yes, the preview version
    – Bob Kimani
    Commented Jul 5, 2019 at 18:07
  • The tags on this question may need tweaking. The terminal tag is too generic and it's not a direct powershell question.
    – Parsa
    Commented Sep 13, 2019 at 16:04
  • Nowadays, this answer is best. (I might even consider changing the accepted answer.)
    – TTT
    Commented 12 hours ago

4 Answers 4

126

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.

4
  • Note that the curly braces must be included: {CMD-GUID-GOES-HERE}
    – hughes
    Commented Feb 14, 2020 at 0:36
  • 3
    Note also that in mine, (Version 0.9.443.0), there's no "globals" section, it starts thusly: (after I changed mine to use PS7/Core) // To view the default settings, hold "alt" while clicking on the "Settings" button. // For documentation on these settings, see: https://aka.ms/terminal-documentation { "$schema": "https://aka.ms/terminal-profiles-schema", "defaultProfile": "{574e775e-4f2a-5b96-ac1e-a2962a402336}", "profiles": [ { // Make changes...
    – Orangutech
    Commented Mar 8, 2020 at 0:13
  • I just replaced the defaultProfile (line 11) with the GUID mentioned in the Ubuntu array. Worked fine for me
    – Mark
    Commented Aug 9, 2020 at 16:34
  • This doesn't appear to work with the "Open in Windows Terminal" command in File Explorer
    – NetMage
    Commented Feb 18, 2021 at 21:50
15

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:

windows-terminal-settings

  • 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

1
  • That json is not longer valid. globals is not allowed
    – Aaron
    Commented May 5, 2020 at 22:17
7

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}",

...
2

This setting is now available in the UI. Open Windows Terminal settings using the drop-down in the title bar and click Settings. In the Startup section you can change the default terminal. You can select the classic Command Line, Powershell and also Git Bash or WSL distro shells if any are installed.

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .