The Ultimate Guide to Install and Customize Windows Terminal (2019)

Ajit Kumar Sahoo
6 min readOct 30, 2019
The new look of Windows Terminal (2019)

Back in the days when Windows XP users were in the rise and trending all over the world, the actual developers preferred to operate their desktops completely using the keyboard. And Command Line Interface (CLI) was their favorite tool to achieve this grueling feet.

Developers were really excellent in knowing all the names of CLI’s commands, their parameters and of course the syntax. Till now, we have been used to typing “cmd” in the search box of Windows Taskbar.

But from now on, maybe you need to search for something else in that search box because Microsoft has proudly announced the launch of a preview build of its new and feature rich “Windows Terminal” on June 21, 2019.

It is available in Microsoft Store to download but you must fulfill the following requirements in the picture below…

I assume that by now, you have opened “Windows Terminal” and the first thing you will see “Windows Powershell”. In this post, I will only be concentrating on customizing “cmd” part of “Windows Terminal”. And the below said procedures will also work for “Windows Powershell” too…

Now, click the button in the title bar of “Windows Terminal”. And click on the Settings . If you have installed Microsoft’s Visual Studio Code, then it will open up the “profiles.json” file; otherwise it will open up simply in the “Notepad”.

Now minimize the previous window of Notepad or VS Code and click Settings but this time while holding the ‘Alt’ button on your keyboard. This will open up the “defaults.json” file. You can clearly see that, I have opened both the .json files and “defaults.json” file is now active in VS Code…

We will use “profiles.json” to customize “cmd and will use “defaults.json” as a reference.

Now in “defaults.json” file, scroll-down a little bit and you will see “profiles”…

The “profiles” section in the “defaults.json” file

Under “profiles” scroll a bit and you will see something called “name” whose value is “cmd”. For the time being, we will focus on this portion of the “defaults.json” file…

cmd” section under “profiles”

You can see that everything is arranged like a “key:value” pair inside the white box above… And take this as an example case…

Let’s know the working of each command in that “key:value” pair…

  • guid” : It is a unique identifier for each profile and it is advisable to have different values of “guid” for different profiles. The values are written in the form of a registry format: "{00000000-0000-0000-0000-000000000000}" . In our example above, it is named as:- “{0caa0dad-35be-5f56-a8ff-afceeeaa6101}
  • name” : It is same to the name of an option embedded inside the drop-down menu() in the title bar of “Windows Terminal”. In our example above, it is named as:- “cmd”
  • commandline” : It is the name of the executable to be used under a specific profile. In our example above, it is specified as:- “cmd.exe”
  • hidden” : It is used to hide a particular profile in the list of all profiles. In our example above, it is set to:- false
  • startingDirectory” : It is the starting directory when the “cmd” starts. In our example above, it is specified by:- “%USERPROFILE%”
  • closeOnExit” : It will close the window when you type exit inside the “cmd” if it is set to true. And in our example above, it is set to:- true
  • colorScheme” : It customizes the color scheme of the terminal. I will talk about schemes at last… In our example above, it is set as:- “Campbell”
  • cursorColor” : It sets the color of your blinking cursor and remember to specify the value in hex color code. In our example above, it is set to:- “#FFFFFF”
  • cursorShape” : It Sets the cursor shape for the profile. Available values are: "vintage" ( ▃ ), "bar" ( ┃ ), "underscore" ( ▁ ), "filledBox" ( █ ), "emptyBox" ( ▯ )… In our example above, it is set to:- “bar”
  • fontFace” : It accepts the name of a font face to be used under a specific profile. In our example above, it is set as:- “Consolas”
  • fontSize” : It sets the font size. In our example above, it is set as:- “12”
  • historySize” : It is the size of the number of lines above the current line of commands. In our example above, it is set to:- 9001
  • icon” : It is the name of the file location of an image to be used as an icon under that specific profile. In our example above, it is specified as:- “ms-appx:///ProfileIcons/{0caa0dad-35be-5f56-a8ff-afceeeaa6101}.png”
  • padding” : It is the spacing of the entire code from the window internally. It is in the format of “left, right, top, bottom’. In our example above, it is set as:- “8, 8, 8, 8”
  • snapOnInput” : When set to true, the window will scroll to the command input line when typing. And when set to false, the window will not scroll and you have to do it manually every time. In our example above, it is set to:- true
  • useAcrylic” : It changes to acrylic background if set to true and you can see a transparent blur effect. In our example above, it is set to:- false.

You can look into other available codes at https://github.com/microsoft/terminal/blob/master/doc/cascadia/SettingsSchema.md#profilesjson-documentation

If you scroll a little bit again, then you will see something called “schemes” that are used to set the colors of each specific thing like background, foreground, cursor color, etc. You can set the name of each color scheme by inputting your desired name under “name”. Also you can insert the code of background and foreground color inside the “cmd” profile in the “profiles” section.

If you scroll further, you will see key bindings list. Most useful ones are:-

  • Ctrl + Scroll Wheel:- Increase/Decrease the font size
  • Ctrl + Shift + Scroll Wheel:- Increase/Decrease the opacity of acrylic background. You can use this key binding to set a particular value of transparent blur of “Windows Terminal”. You can set a specific value if you like in the “cmd” profile by typing the code as “acrylicOpacity” and set it between 0 to 1 (say for example, 0.75) for perfect blur effect.

Now, that we have learned about each and every section of “defaults.json” file. Its time to switch back to ‘profiles.json” file and copy the important stuffs from “defaults.json” file as required. I have edited the “profiles.json” as follows…

As a reference from the “defaults.json” file, I have edited the “cmd” profile in the “profiles.json” file

And when you save that “profiles.json” file with these new settings, the “Windows Terminal” will look like this:-

Customized “Windows Terminal

I hope you liked this post…

Sayonara !!!

Ajit Kumar Sahoo.

--

--

Ajit Kumar Sahoo

Self-taught Android Developer specializing in UI/UX Design, API Integration, and Performance Optimization using Kotlin as the language of choice.