How to create multiple profiles for Windows Terminal
Tags: windowsterminal, cli, colorscheme
Published: 2021-04-13 10:26:36

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](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/pkmp9ozmm3zn9638v1pq.jpg)

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 ~"
            }
       ]
}
```
***

#Create different color shemes for different profiles
![Alt Text](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/eszeof1q9grkgc6nmxa3.jpg)
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 ~"
            }
       ]
}
```