I've always loved Linux, and for more than a decade, I've been using Ubuntu Server on cloud deployments for managing game servers and media streaming. Nowadays, my home servers use some version of Linux, and I use my MacBook for the majority of my day-to-day work. It's what I'm familiar with, but unfortunately, I still need to use Windows for the games that I play on my main PC. WSL certainly dampens the blow, though, and after I configured the Windows Terminal exactly how I wanted it, I could never go back to how I had things before.

For those unfamiliar, Windows Terminal is an open-source replacement for Windows Console, and it acts as a host for multiple command-line shells that can run side by side, split into tabs. This means that you can use Windows PowerShell, the Command Prompt, and even WSL as an all-in-one application, which is exactly what I use it for. As someone who likes to use a terminal a lot, I practically live in the Windows Terminal these days, and I can control multiple servers in a tab interface with ease. I don't need to use separate applications or open multiple instances of PowerShell; it all resides within Windows Terminal.

If you have Windows 11 22H2 or later, Windows Terminal will come pre-installed and already be set as the default command-line experience. For versions below 22H2, you can download it manually from the Microsoft Store. As for Windows 10 users, those on build version 1903 and later can install it from the Microsoft Store as well.

My Windows Terminal configuration

Feel free to change any of these

My Windows Terminal configuration is fairly simplistic, but it allows me to combine as many services as possible into one interface. My default tab opens a WSL environment, as most of my terminal usage over the year has been Linux-based, so it's what I'm familiar with. My other options are:

  • Command prompt
  • PowerShell
  • PowerShell (Admin)
  • Developer command prompt for VS 2022
  • Developer PowerShell for VS 2022

Launching PowerShell in admin mode will open a new Terminal instance with admin access so that commands can be executed with administrative privileges. I also remove trailing whitespace when pasting, I paste plain text only, and I use a separate window tab strip order for my interface style. The title bar is also hidden (like I configured with Ghostty on my Mac), and new tabs are created after the last tab.

Finally, appearance-wise, I am using a Dark theme with the Monokai Remastered color scheme, and I am using the JetBrains Mono font for my terminal with a font size of 14. This font is installed externally, obtained from JetBrains, and is not available by default. The beauty of Windows Terminal is that you can change all of these settings if you'd prefer, so you don't need to worry about breaking something if you change one of these. Nearly all of them are aesthetic, and all that actually matters, at least in my case, are the WSL settings. In my case, the command line executable for WSL is:

 C:\WINDOWS\system32\wsl.exe -d Ubuntu-22.04

This will differ if you use another distro, but this works for me and allows me to immediately be in a Ubuntu terminal. Even better, you can create additional profiles to launch other command-line executables. If you use a tool like fzf or Glance, you can have it be a runnable profile in your Terminal for easy access.

What can you do with Windows Terminal?

I've fallen in love with it

By far, one of the best things about the Windows Terminal has been its versatility. I can open it, be in a Ubuntu terminal, and immediately use SSH to connect to one of my Proxmox hosts or VMs. Then I can open another tab to access another, and I can control them more or less at the same time. I can switch between them with ease, and everything is within reach, as opposed to being in another window that I may either forget about, or it isn't as easy to quickly switch to. While I haven't done it yet, I can also add a startupActions section to my Terminal settings, so that specific tabs are opened when I start it. For example, I may want to have multiple Ubuntu terminals and a PowerShell tab open.

Terminal also has an option called "Quake" which can be called by pressing Win + `. This opens an immediate window that fills the top half of your screen with your default profile, perfect for quickly executing something or checking something, and you can resize it from the bottom if it feels too large. You could even have an always-on log pinned to the top of another monitor with this setting, as it doesn't go away by clicking on another application. You can check out the Microsoft documentation on it to learn more about how it works, but it's pretty great. On top of that, you can create your own automatic tools too. You could bind Ctrl+Alt+L to call a specific profile and run a specific command, such as one to execute an update of all of your applications using WinGet, Scoop, or Chocolatey.

While I haven't gotten around to it yet, you can add SSH profiles to Windows Terminal, meaning that I could theoretically save myself the time of needing to type out the command manually to connect to an external server. There are a lot of options, and while I have plans to expand on them, I'm already very happy with what I have so far. The Windows Terminal is invaluable at this point in my normal workflow, and I'm looking forward to learning even more about it. If you aren't using it already, I highly recommend it. Even if you're someone who doesn't like to use the command line a whole lot, it can enable automations you never even thought were possible before.