The New Windows Terminal: You Could Not Have Asked for More | by Dimitris Poulopoulos | Towards Data Science

GNOME terminal, Terminator, Cmder, Hyper... many shell interfaces and terminal emulators that users swore by. Some offer better functionality, some offer convenience or extended customizability.
GNOME terminal, Terminator, Cmder, Hyper... many shell interfaces and terminal emulators that users swore by. But myth and reality have a tendency to exchange ideas. Thus, once every so often a new kind emerges to rule them all.
In my humble opinion, Terminator is a god-sent gift, which was my driver until recently. It offers everything you could ask from a terminal emulator, without the glitches of Cmder or Hyper. But myth and reality have a tendency to exchange ideas, thus, every so often a new king emerges to rule them all.
This time, the king came out of nowhere, and it is the new Microsoft Windows Terminal. What I mean is, who would expect that Microsoft would develop a new terminal emulator, that combines anything you want a command-line tool to do, is open-source and highly customizable? In this story, we take a dive into the new Microsoft terminal, get acquainted with its features and see how we can customize it.
Learning Rate is my weekly newsletter for those who are curious about the world of AI and MLOps. You’ll hear from me every Friday with updates and thoughts on the latest AI news, research, repos and books. Subscribe here!
The Windows Terminal is a modern, fast, efficient, powerful and productive terminal application. It combines many command-line tools and shells such as Command Prompt, PowerShell and WSL (Windows Subsystem for Linux). Thus, in one application we can have Command Prompt and Powershell for Windows users, as well as bash for Linux terminal power users.
The key features of the Windows Terminal include multiple tabs, where different command-line tools live, split areas, Unicode and UTF-8 character support, GPU-accelerated text rendering engine, and an easy way to change between themes and configuration options. Windows Terminal is an open-source project, which will continue to expand its features leveraging a growing community of contributors.
Installation couldn’t be more straightforward; just head to Microsoft Store and install the application. Windows Terminal will also continue to receive automatic updates through the store; thus, you will always have the latest stable version.
The new Windows Terminal does not replace PowerShell or Command Prompt. They are both there, and you can use it as separate consoles. But it combines them in a new neat interface. You can also run other terminals as well as we will see, so, let us take a look at the key features.
Multiple tabs: The most requested feature for a terminal is various tab support. With the new Windows Terminal, you can run different command-line tools or applications of your choice (e.g. Command Prompt, PowerShell, Ubuntu on WSL, a Raspberry Pi via SSH, etc.)
Vibrant text: The new Windows Terminal uses a GPU accelerated text rendering engine. You can display almost anything you want there, be it icons or emojis. CJK ideograms and programming ligatures are also possible thanks to a new font called cascadia-code.
Configurability: The settings of the new Windows Terminal — essentially a big JSON document — offer you a great deal of control over each shell’s appearance. You can create different profiles for PowerShell, Command Prompt, Ubuntu terminal, or even SSH connections, each with its own font styles and sizes, colour themes, background blur/transparency levels, etc. For inspiration head over to Windows Terminal Themes.
Bash on Ubuntu on Windows; the huge announcement back at //Build 2016 by Microsoft. Since then, we have come a long way. WSL 2 is now in GA, and a full Linux Kernel is running inside Windows 10.
Thus, as an example, we will customize the Ubuntu Terminal running inside the new Windows Terminal. But first, if you need installation instructions and why you should do that, head over to the article below:
towardsdatascience.com
Having this set and ready, it is effortless to make it look like the standard Ubuntu Terminal. Head over to Windows Terminal Themes and search for the Ubuntu theme.
When you press the Get theme button, a configuration object is added to your clipboard. This object will look something like this:
{  "name": "Ubuntu",  "black": "#2e3436",  "red": "#cc0000",  "green": "#4e9a06",  "yellow": "#c4a000",  "blue": "#3465a4",  "purple": "#75507b",  "cyan": "#06989a",  "white": "#d3d7cf",  "brightBlack": "#555753",  "brightRed": "#ef2929",  "brightGreen": "#8ae234",  "brightYellow": "#fce94f",  "brightBlue": "#729fcf",  "brightPurple": "#ad7fa8",  "brightCyan": "#34e2e2",  "brightWhite": "#eeeeec",  "background": "#300a24",  "foreground": "#eeeeec"}
These are instructions for what each colour should look like in your terminal. Now, open the terminal settings and paste this object into an array called schemes. You will see that this object has a name: Ubuntu. Copy and paste that name in the object that specifies the Ubuntu terminal inside the list of profiles. Thus, this object should now look like the one below:
{  "guid": "{07b52e3e-de2c-5db4-bd2d-ba144ed6c273}",  "hidden": false,  "colorScheme": "Ubuntu",  "acrylicOpacity": 0.75,  "useAcrylic": true,  "name": "Ubuntu-20.04",  "source": "Windows.Terminal.Wsl"}
As an added bonus, I have set acrylicOpacity and useActylic options to 0.75 and true accordingly. This sets a nice opacity to the window. Moreover, to use the Ubuntu terminal as the default terminal whenever you launch the application copy the guid code inside the defaultProfile at the beginning of the settings:
"defaultProfile": "{07b52e3e-de2c-5db4-bd2d-ba144ed6c273}"
And that’s it. Now you have Ubuntu running inside Windows 10, with a beautiful terminal application that makes you feel at home!
In this story, we looked at the new Windows Terminal, what it is, how to get it, what are its key features and how to make it follow your own style. There are many more options that you can set: background images, key bindings, custom prompts, etc. To fiddle with these options and much more head over to the official documentation, or star great GitHub repositories like this.
Learning Rate is my weekly newsletter for those who are curious about the world of AI and MLOps. You’ll hear from me every Friday with updates and thoughts on the latest AI news, research, repos and books. Subscribe here!
My name is Dimitris Poulopoulos and I’m a machine learning researcher working for BigDataStack. I am also a PhD student at the University of Piraeus, Greece. I have worked on designing and implementing AI and software solutions for major clients such as the European Commission, Eurostat, IMF, the European Central Bank, OECD, and IKEA.
If you are interested in reading more posts about Machine Learning, Deep Learning, Data Science and DataOps follow me on Medium, LinkedIn or @james2pl on twitter.