7 reasons why you should use Windows Terminal

For developers, the command line interface remains an essential part of their daily work. While graphical interfaces are becoming more advanced, the terminal remains indispensable for efficient system interaction and development tasks. With Windows Terminal, Microsoft has introduced a modern solution that elevates the traditional command line experience.

On YouTube, I already discussed this topic alongside Edwin van Wijk and Sander Molenkamp. You can find the video here. 🎬

In this post, I’ll highlight 7 reasons from that video on why Windows Terminal will make the life of a developer easier and more fun! 🤘🏻

1. One central place for all your shells

To start with, Windows Terminal is actually in itself not a ‘Terminal’. It’s a wrapper around several command shells that are all brought together inside one central place. Think of shells like the Command Prompt, PowerShell, Git Bash, etc. You have the option to add or remove shells via the settings of Windows Terminal.

You have tabs at the top that allow you to have multiple shells open at the same time. It kinda feels like a browser, but with less graphical stuff! Those tabs can be different shells. You also have the capability to open multiple shells at the same time in split screen mode.

Overview of Windows Terminal

2. Centralized configuration with instant feedback

The Windows Terminal has a lot of settings which you can configure via a graphical user interface. However, you can also change all of these settings using a single JSON file, now we’re talking! The JSON file includes a schema, so you have some form of IntelliSense. But that isn’t even the best thing, the changes are instantly applied via hot reloading. 🔥

There are a whole lot of different settings you can customize here, some of those things are:

  • Custom commands
  • Color and font themes
  • Command shells
  • Customization of the terminal itself

The nice thing about this centralized configuration is that it will apply to every command shell. So let’s say I want to have green text in my terminal, I only need to configure this once, and it will be applied on every shell.

3. A better terminal with shell integration

Windows Terminal now also has Shell Integration. It’s effectively a way for your shell to report back pieces of information to Windows Terminal. For example when your command started/ended. This allows Windows Terminal to achieve certain stuff that was not possible before.

Before we can start using shell integration, we need to enable a few things inside our configuration file. The following things need to be added in profiles -> defaults:

{
    "autoMarkPrompts": true, // Enables Shell Integration
    "showMarksOnScrollbar": true
}

With these changes, we can now see the markings of our commands in the scrollbar. Of course, this is not the only thing that shell integration makes possible. To get a comprehensive overview, I advise you to go and take a look at the Microsoft documentation on Shell Integration, or to simply watch the previously mentioned video on YouTube 😄.

4. Faster elevated permissions with Sudo

At the time of writing this article, Sudo for Windows Terminal is only available through the Windows Insider program. It sounds really fancy, but it’s actually pretty easy to join, more information can be found here.

I’m probably not the only one who was in this situation before, but for executing some commands, you need elevated permissions. Previously, I would do this by opening a new terminal window with the “run as administrator” option. To be honest, that can be tedious sometimes.

But now, we have sudo for Windows! You are probably familiar with the command from a Linux-based system. A command on Windows that would require admin permissions would be netstat -ab for example. Now we can simply write the following:

> sudo netstat -ab

This command now only requires confirmation via a small dialog box instead of launching a whole new terminal.

5. More efficient workflow with the command palette

Like modern IDEs, Windows Terminal offers a command palette (Ctrl+Shift+P). This gives you direct access to all functionality without needing to remember shortcuts. From opening new tabs to executing custom commands.

Command palette example

The cool thing is that this command palette will automatically adjust when you update the commands inside of the configuration file.

6. Endless personalization

When it comes to color themes and fonts, the Windows Terminal offers a whole lot of customization options.

For selecting a color theme, there is actually an awesome website that offers a wide range of different themes to choose from. You can find the website here. Just select a theme you’re happy with, then you can paste the theme inside of the schemes section of your configuration file.

Here is an example of the Homebrew theme.

{
    "name": "Homebrew",
    "background": "#000000",
    "black": "#000000",
    "blue": "#0000B2",
    "brightBlack": "#666666",
    "brightBlue": "#0000FF",
    "brightCyan": "#00E5E5",
    "brightGreen": "#00D900",
    "brightPurple": "#E500E5",
    "brightRed": "#E50000",
    "brightWhite": "#E5E5E5",
    "brightYellow": "#E5E500",
    "cursorColor": "#23FF18",
    "cyan": "#00A6B2",
    "foreground": "#00FF00",
    "green": "#00A600",
    "purple": "#B200B2",
    "red": "#990000",
    "selectionBackground": "#083905",
    "white": "#BFBFBF",
    "yellow": "#999900"
}

There are also a lot of different fonts you can choose from, but most of them still need to be downloaded from the internet. A nice selection of custom fonts can be found in this GitHub repo. In the releases section you will find a whole lot of zip-files with different fonts you can download.

If you don’t know what a specific font will look like, just Google it, that always works best for me. 🙂

When configuring fonts, I find it easier to select my new font via the graphical user interface. That way, you can also visually see what the font will look like when selecting it.

Font selection in Windows Terminal Settings

And like mentioned before, this personalization will carry over to every command shell that is part of Windows Terminal.

7. Customize your prompt with Oh-my-posh

Okay-okay, ’technically’ speaking, this is not really an advantage of Windows Terminal since it does not apply to every command shell. But believe me, this is still really cool!

Oh-my-posh is a prompt theme engine that will customize your prompt from something looking like this:

Oh-my-posh example before

To this:

Oh-my-posh example after

Of course, this is just one example, Oh-my-posh has many different prompt themes available. I won’t go into detail on the configuration side of things. If you’re interested, you can always go and visit the oh-my-posh website for more information, or watch that part of the video.

Did I spark your interest? If so, be sure to check out the full video here.