DEV Community

Cover image for How to create multiple profiles for Windows Terminal
Eli H. Schei
Eli H. Schei

Posted on • Originally published at elischei.com

How to create multiple profiles for Windows Terminal

If you are using windows terminal you know that you can use multiple tabs. But did you know that you can create multiple profiles to choose from when opening a new tab? In this blogpost I will show you how to create multiple profiles for Windows Terminal, and how to create and add different color shemes to them.

Create the profiles

To create the profiles is quite straightforward. Just go to settings by selecting the down-arrow next to your tabs and choosing “Settings” (or use the shortcut [Ctrl + ,]. This will open the settings.json file in your prefered editor.

Alt Text

Find the “Profiles” part of the json and add the profiles you would like. In the code-snippet below you can se the profiles I have added. Lets take a look at the different attributes in a profile.

guid: has to be unique between profiles
name: The name that shows up in the dropdown list when you are opening a new tab.
commandline: this command will run when you open a tab in this profile.
hidden: if this is true the profile will not show up in the dropdown.
colorScheme: name of color scheme you would like to use.
icon: filepath or url to icon you would like to use

 "profiles":
    {
        "defaults":
        {
            // Put settings here that you want to apply to all profiles.
        },
        "list":
        [
                {
                // Make changes here to the powershell.exe profile.
                "guid": "{61c54bbd-c2c6-5271-96e7-009a87ff44bf}",
                "name": "Windows PowerShell",
                "commandline": "powershell.exe",
                "hidden": false,
                "colorScheme" : "Elis-ps"
            },
            {
                // Make changes here to the cmd.exe profile.
                "guid": "{0caa0dad-35be-5f56-a8ff-afceeeaa6101}",
                "name": "Command Prompt",
                "commandline": "cmd.exe",
                "hidden": false,
                "colorScheme" : "Elis-cmd"
            },
            {
                //Azure Cloud Shell
                "guid": "{b453ae62-4e3d-5e58-b989-0a998ec441b8}",
                "hidden": false,
                "name": "Azure Cloud Shell",
                "source": "Windows.Terminal.Azure"
            },
            {
                "guid": "{b453ae62-4e3d-5e58-b989-0a998ec441b9}",
                "hidden": false,
                "name": "M365 CLI",
                "commandline": "cmd.exe m365",
                "icon": "https://blobs.officehome.msocdn.com/images/content/images/favicon_metro-bb8cb440e5.ico",
                "colorScheme" : "Elis-cmd"
            },
            {
                "guid" : "{b453ae62-4e3d-5e58-b989-0a998ec441a6}",
                "hidden": false,
                "name" : "Git Bash",
                "commandline" : "\"%PROGRAMFILES%\\git\\bin\\bash.exe\"",
                "icon" : "%PROGRAMFILES%\\git\\mingw64\\share\\git\\git-for-windows.ico",
                "colorScheme" : "GitBash"
            },
            {
                "guid": "{2c4de342-38b7-51cf-b940-2309a097f518}",
                "hidden": false,
                "name": "Ubuntu",
                "source": "Windows.Terminal.Wsl",
                "commandline": "wsl ~"
            }
       ]
}
Enter fullscreen mode Exit fullscreen mode

Create different color shemes for different profiles

Alt Text
You can also create different color shemes. I have created one for the command promt, one for powershell, and one for git-bash – since those are the profiles I use the most. I think the different color shemes makes it easier to remember which context I’m in at a glance.

In the codesnippet below you can see the different color schemes I use. To add them to one of your profile just give them a name and add a “”colorScheme” : “color-scheme-name” attribute pair to the profile.

"profiles":
    {
        "defaults":
        {
            // Put settings here that you want to apply to all profiles.
        },
        "list":
        [
                {
                // Make changes here to the powershell.exe profile.
                "guid": "{61c54bbd-c2c6-5271-96e7-009a87ff44bf}",
                "name": "Windows PowerShell",
                "commandline": "powershell.exe",
                "hidden": false,
                "colorScheme" : "Elis-ps"
            },
            {
                // Make changes here to the cmd.exe profile.
                "guid": "{0caa0dad-35be-5f56-a8ff-afceeeaa6101}",
                "name": "Command Prompt",
                "commandline": "cmd.exe",
                "hidden": false,
                "colorScheme" : "Elis-cmd"
            },
            {
                //Azure Cloud Shell
                "guid": "{b453ae62-4e3d-5e58-b989-0a998ec441b8}",
                "hidden": false,
                "name": "Azure Cloud Shell",
                "source": "Windows.Terminal.Azure"
            },
            {
                "guid": "{b453ae62-4e3d-5e58-b989-0a998ec441b9}",
                "hidden": false,
                "name": "M365 CLI",
                "commandline": "cmd.exe m365",
                "icon": "https://blobs.officehome.msocdn.com/images/content/images/favicon_metro-bb8cb440e5.ico",
                "colorScheme" : "Elis-cmd"
            },
            {
                "guid" : "{b453ae62-4e3d-5e58-b989-0a998ec441a6}",
                "hidden": false,
                "name" : "Git Bash",
                "commandline" : "\"%PROGRAMFILES%\\git\\bin\\bash.exe\"",
                "icon" : "%PROGRAMFILES%\\git\\mingw64\\share\\git\\git-for-windows.ico",
                "colorScheme" : "GitBash"
            },
            {
                "guid": "{2c4de342-38b7-51cf-b940-2309a097f518}",
                "hidden": false,
                "name": "Ubuntu",
                "source": "Windows.Terminal.Wsl",
                "commandline": "wsl ~"
            }
       ]
}
Enter fullscreen mode Exit fullscreen mode

Top comments (0)