Ultimate Guide to Windows Terminal Power Toolkit

Windows Terminal is a command line for the 21st century. See how to customize it, add backgrounds, profiles, colour schemes, and shortcuts.

By Tim TrottSoftware Engineering • July 18, 2020
1,644 words, estimated reading time 6 minutes.
Ultimate Guide to Windows Terminal Power Toolkit

Windows Terminal is a powerful command-line terminal for developers. It provides a unified environment to access multiple shells, command-line tools, and Azure Cloud Shell sessions in one place. Its customisable features, including support for tabs, panes, and themes, enhance productivity and streamline workflow, making it an invaluable tool for developers.

Windows Terminal is a modern, fast, efficient, powerful, and productive terminal application for users of command-line tools and shells like PowerShell, Command Prompt, GIT-Bash and WSL. Get Windows Terminal.

Windows Terminal's main features include multiple tabs, panes, Unicode and UTF-8 character support, and a GPU-accelerated text rendering engine. A GPU-accelerated text rendering engine is a technology that uses the power of your computer's graphics processing unit (GPU) to render text on your screen more quickly and efficiently, resulting in a smoother and more responsive terminal experience.

How to Get Windows Terminal

Windows Terminal was initially made available by Microsoft as an optional download. Still, since the release of version 22H2, it has become the standard command-line interface for Windows 11. If you're still on Windows 10, download Windows Terminal from the Microsoft Store.

Windows Terminal running PowerShell
Windows Terminal running PowerShell

Windows Terminal Settings

Windows Terminal, while still in its early development stage, is a stable and reliable tool. Its settings configuration page, although not yet GUI'd, is a JSON file that you can easily edit in VS Code, ensuring a smooth and confident customization process.

Click the down arrow in the tabs bar and select settings. This will open up the settings.json file in your default editor.

The settings.json file is, as the name suggests, a JSON-formatted configuration file that contains all the settings for your Windows Terminal. It's where you can customise your terminal's behaviour, appearance, and other aspects. JSON is an easy-to-use format for such use, but there are a few rules to be aware of.

  1. Do not use backslash (\) in file paths. These should be replaced with a forward slash (/).
  2. Always close file paths in double quotes.
  3. All lines must end in a comma except for the last line in a section or block.

Two main sections are important: profiles and schemes. In the context of Windows Terminal, a profile is a set of settings that define how a specific console window, such as PowerShell or Command Prompt, behaves. Profiles have a default section that allows you to enter any setting values that are shared between all profiles. Profiles also have a list of profiles - one for each type of console window - PowerShell and Command Prompt are added as a basic starting point. The schemes section allows you to define a colour pallet to be assigned to a profile or profile.

With Windows Terminal, you can customise your command-line environment to your liking. Let's have a look at some of the most common settings and start the journey of making your Windows Terminal truly yours.

Windows Terminal Acrylic Look

Acrylic Look is a unique feature of Windows Terminal that allows you to add a semi-transparent window effect with blur, similar to the Windows Aero effect from Windows 7. This can give your terminal a modern and sleek look.

Windows Terminal Acrylic
Windows Terminal Acrylic

Windows Terminal Acrylic Look allows applications or the desktop background to shine through the console window. To get this effect, open the settings.json file and add these two lines to either the defaults or the profile that you wish to have this effect. In this example, I added it to the defaults. You can change the strength of the effect by altering the acrylicOpacity value. 1 = no acrylic effect and 0 = full on.

javascript
"defaults": {
  // Put settings here that you want to apply to all profiles.
  "useAcrylic": true,
  "acrylicOpacity": 0.5,
},

Windows Terminal Wallpapers

Instead of the Acrylic effect, you can add a wallpaper to the Windows Terminal, like in the first screenshot. You can use any image you want, but I found it best to use dark/muted colours to aid the visibility of the text.

As before, you can add these values into settings.json in the default or a profile. I've added the defaults to this example.

javascript
"defaults": {
  // Put settings here that you want to apply to all profiles.
  "backgroundImage": "C:\\Users\\ttrott\\Documents\\Windows Terminal\\vbanner.jpg"
},

This will apply the image to the background of the terminal windows. By default, it will stretch to fit the size of the window. You can change that with these settings if you want something different.

javascript
"defaults": {
  // Put settings here that you want to apply to all profiles.
  "backgroundImage": "C:\\Users\\ttrott\\Documents\\Windows Terminal\\vbanner.jpg",
  "backgroundImageStretchMode": "none",
  "backgroundImageAlignment": "bottomRight"
},
  • backgroundImageStretchMode accepts values of "none", "fill", "uniform" and "uniformToFill" with uniformToFill being the default.
  • backgroundImageAlignment accepts values of "center", "left", "top", "right", "bottom", "topLeft", "topRight", "bottomLeft" and "bottomRight" with center being the default.

You can use these combinations to have a full wallpaper or a logo/watermark in the corner.

Windows Terminal Colour Schemes

The next cool thing that you can configure is colours! In Windows Terminal, a colour scheme is a set of predefined colours that you can apply to your terminal. There are several built-in preset schemes, or you can create your scheme from scratch. Colour schemes are defined in the schemes section of the 'setting.json' and linked to the default or the profile.

javascript
"defaults": {
  // Put settings here that you want to apply to all profiles.
  "colorScheme": "Campbell"
},

The default colour scheme looks like this:

javascript
"schemes": [
{
    "name" : "Campbell",
    "cursorColor": "#FFFFFF",
    "selectionBackground": "#FFFFFF",
    "background" : "#0C0C0C",
    "foreground" : "#CCCCCC",
    "black" : "#0C0C0C",
    "blue" : "#0037DA",
    "cyan" : "#3A96DD",
    "green" : "#13A10E",
    "purple" : "#881798",
    "red" : "#C50F1F",
    "white" : "#CCCCCC",
    "yellow" : "#C19C00",
    "brightBlack" : "#767676",
    "brightBlue" : "#3B78FF",
    "brightCyan" : "#61D6D6",
    "brightGreen" : "#16C60C",
    "brightPurple" : "#B4009E",
    "brightRed" : "#E74856",
    "brightWhite" : "#F2F2F2",
    "brightYellow" : "#F9F1A5"
}
]

Aside from the name, every setting accepts a colour as a string in hex format: "#rgb" or "#rrggbb". The cursorColor and selectionBackground settings are optional.

The default colour scheme

Windows Terminal Campbell Color Scheme
Windows Terminal Campbell Color Scheme

For more schemes, see the Custom Terminal Gallery section of the Microsoft Documentation.

Windows Terminal Profiles

Windows Terminal is not just limited to PowerShell, Command Prompt, and Azure Cloud Console. It's a gateway to any terminal application you have installed or even run PowerShell scripts, npm watch, Linux bash shells, Git, and more. There are endless combinations, allowing you to tailor your command-line experience to your needs.

Creating a new terminal type is as easy as creating a new profile in the list section. When creating a new profile, use a new random guid. Here are a few examples:

javascript
"list": [
  {
    // Make changes here to the powershell.exe profile.
    "guid": "{61c54bbd-c2c6-5271-96e7-009a87ff44bf}",
    "name": "Windows PowerShell",
    "commandline": "powershell.exe",
    "hidden": false,
    "backgroundImage": "C:\\Users\\ttrott\\Documents\\Windows Terminal\\windowslight.jpg",
    "colorScheme": "shades-of-purple"
  },
  {
    "guid": "{61ffd275-e15d-4a7d-9f42-ff241ec4e1e3}",
    "name": "Run HUGO",
    "commandline": "C:\\Dev\\Hugo\\website\\..\\hugo server -D",
    "startingDirectory": "C:\\Dev\\Hugo\\website",
    "hidden": false,
    "backgroundImage": "C:\\Users\\ttrott\\Documents\\Windows Terminal\\hugo.png",
    "icon": "C:\\Users\\ttrott\\Documents\\Windows Terminal\\hugo.ico",
    "backgroundImageStretchMode": "none",
    "backgroundImageAlignment": "bottomRight"
  },
  {
    // Make changes here to the cmd.exe profile.
    "guid": "{0caa0dad-35be-5f56-a8ff-afceeeaa6101}",
    "name": "Command Prompt",
    "commandline": "cmd.exe",
    "hidden": false,
    "colorScheme": "Retro",
    "cursorColor": "#FFFFFF",
    "cursorShape": "filledBox",
    "fontSize": 16,
    "padding": "5, 5, 5, 5",
    "fontFace": "PxPlus IBM VGA8",
    "experimental.retroTerminalEffect": true
  },
  {
    "guid": "{3b433b11-c393-47ed-9421-bafebb058f6c}",
    "name": "Git-Bash",
    "tabTitle": "Git-Bash",
    "commandline": "C:\\Program Files\\Git\\bin\\bash.exe",
    "icon": "C:\\Program Files\\Git\\mingw64\\share\\git\\git-for-windows.ico",
    "cursorShape": "filledBox",
    "cursorColor": "#FFFF00",
    "colorScheme": "Slate",
    "startingDirectory": "C:\\Dev\\"
  },
  {
    "guid": "{b453ae62-4e3d-5e58-b989-0a998ec441b8}",
    "hidden": true,
    "name": "Azure Cloud Shell",
    "source": "Windows.Terminal.Azure"
  }
]

You must change folders/paths according to your system, which should get you started.

Windows Terminal Shortcuts

By far, the easiest way to launch Windows Terminal is to pin it to the taskbar. That way, you can easily launch it regardless of what apps are open, and you don't have to go looking for it. If you right-click the Windows Terminal icon, a context menu will show all the profiles you have configured so you can launch the specific terminal script right away.

You can also run wt from the command line to launch the Windows Terminal, as wt.exe gets added to the Windows PATH when the Windows Terminal is installed.

You can even launch Windows Terminal with a custom keyboard shortcut. This involves a bit of configuration.

  1. Open Windows Explorer and type shell:AppsFolder into the address bar and hit enter.
  2. Locate the Windows Terminal icon, right-click, and create a shortcut. Save to desktop.
  3. On the desktop, locate the new Windows Terminal Shortcut, right-click properties
  4. On the shortcut tab, enter a shortcut combination
Launch Windows Terminal via a custom keyboard shortcutPermalink
Launch Windows Terminal via a custom keyboard shortcutPermalink

Windows Terminal Powerline (Git Awesomeness)

Powerline provides a customised command prompt experience providing Git status colour-coding and prompts. There are quite a few steps to get this working, but if you work with Git regularly, setting up is highly worth the effort.

It would help if you had Git for Windows installed. You also need to download and install a Powerline font.

Next, we must install Posh-Git, Oh-My-Posh and PSReadLine on a PowerShell prompt.

powershell
Install-Module posh-git -Scope CurrentUser
Install-Module oh-my-posh -Scope CurrentUser
Install-Module -Name PSReadLine -Scope CurrentUser -Force -SkipPublisherCheck

Now edit your PowerShell profile and add these lines at the top:

powershell
Import-Module posh-git
Import-Module oh-my-posh
Set-Theme Paradox

Now, each new instance starts by importing Posh-Git and Oh-My-Posh and setting the Paradox theme from Oh-My-Posh, which comes with several built-in themes.

We must alter the PowerShell profile in Windows Terminal Settings to use the new font.

javascript
{
  // Make changes here to the powershell.exe profile.
  "guid": "{61c54bbd-c2c6-5271-96e7-009a87ff44bf}",
  "name": "Windows PowerShell",
  "commandline": "powershell.exe",
  "hidden": false,
  "backgroundImage": "C:\\Users\\ttrott\\Documents\\Windows Terminal\\windowslight.jpg",
  "colorScheme": "shades-of-purple",
  "fontFace": "Cascadia Code PL"
},

If you also use the integrated terminal in Visual Studio Code, you should add "terminal.integrated.fontFamily": "Cascadia Code PL" to your Visual Studio Code settings to ensure Powerline also works there.

Windows Terminal Powerline Powershell
Windows Terminal Powerline Powershell

Related ArticlesThese articles may also be of interest to you

CommentsShare your thoughts in the comments below

My website and its content are free to use without the clutter of adverts, popups, marketing messages or anything else like that. If you enjoyed reading this article, or it helped you in some way, all I ask in return is you leave a comment below or share this page with your friends. Thank you.

This post has 2 comments. Why not join the discussion!

New comments for this post are currently closed.