Enhance your Console Experience with Windows Terminal

choubertsprojects

The Best WordPress plugins!

1. WP Reset

2. WP 301 Redirects

3. WP Force SSL

Windows Terminal is an all-in-one software console management tool, providing a convenient and powerful way to manage your connected devices. It can help you with managing the power usage of your PC or monitor system performance, as well as allow users more control over their Windows 10 experience overall.

The “windows terminal default terminal application missing” is a problem that has been present for a while. Microsoft has released an update to fix the issue.

Enhance your Console Experience with Windows Terminal

Software development is a difficult task. After all, the job is all about writing instructions in a weird language for a finicky translator who will turn off everything you’ve worked on. It will also force you to start over if you type a capital letter incorrectly. It’s no surprise that software professionals form deep bonds with the technologies they use.

When you’re spending hours hunting for that one hard-to-find problem, the way these tools appear and feel may make all the difference. The console is one of the most important tools for every developer.

The Windows Terminal is one of the greatest consoles for developers, and you’ll learn about it in our Ultimate Guide. You’ll receive a comprehensive overview of practically all of Windows Terminal’s capabilities. You’ll discover how it may assist you in getting things done on Windows using the command line.

Windows Terminal adds current terminal features like tabs, windows, and even backdrop pictures to the console experience. Without having to switch between console sessions, you may run a complete Linux shell alongside Windows PowerShell or cmd.exe.

This article will take you through a number of Windows Terminal features. It will be a hands-on instruction the whole time, so be ready to work!

Prerequisites

The prerequisites for installing and using the Windows Terminal are simple. All you’ll need is a PC running Windows 10 with version 1903 (May 2019) or later. You’ll also need a few more programs installed if you want to follow along with all of the examples in this article:

What is the difference between a terminal, a console, and a shell?

Because we’ll be discussing a lot of vocabulary in this post, it’s vital to understand the distinctions in terminology so you don’t get confused.

Despite the similarities in principles, it’s vital to remember that a terminal is not the same as a console or a shell. Each has a distinct role. The definitions of each may be found in Scott Hanselman’s blog post, but here’s how they’ll be utilized in this article:

  • The Windows Terminal program is referred to as “Terminal.”
  • Any console host program that isn’t the Windows Terminal is referred to as a console.
  • The shell is a software that connects the terminal to the operating system. (pwsh, cmd, zsh, and so forth.)

Installing Windows Terminal

The new Windows Terminal may be installed in a number different ways, but the simplest (and Microsoft-recommended) method is to download it from the Microsoft Store. The conventional Windows Terminal and the Windows Terminal Preview are the two versions available for download.

You may use either one for the purposes of this article. We won’t go into installation in this post since it’s simple, and we’ll presume you’ve already done so.

When you first launch Windows Terminal, it does not seem or feel amazing. To get there, you’ll need to make a lot of adjustments, but it all begins with a window like this one.

Default new windows terminalThe standard Windows terminal

There are four main components to the Windows Terminal:

  1. The Terminal Window is where you’ll be conducting the most of your work and where you’ll have the greatest control.
  2. Tab Name — Windows Terminal supports tabs, which means you can have many shells open at the same time.
  3. New Tab — This button will launch your default profile in a new tab.
  4. Profiles list – This will show you all of the profiles that are ready to be opened.

Although Windows Terminal has a simple interface, it hides a wealth of capabilities.

Creating the Terminal from the Ground Up

While this is the Windows Terminal from Microsoft, it is also totally open source, which means you may contribute to it if you so choose. It’s a C++ software with a large user base.

Even though this is a GA product, there are still a few small problems being fixed and things on the roadmap for future development at the time of writing. Perhaps you’ll be the one to donate!

If you’re a developer who wants to go deep into the code, you may create the Windows Terminal using PowerShell by following these steps:

  1. To update all git submodules, run git submodule update —init —recursive.
  2. Run the PowerShell instructions below:

.tools Import-Module Set-MsBuildDevEnvironment Invoke-OpenConsoleBuild OpenConsole.psm1

The settings.json file allows you to customize anything.

You’ll undoubtedly want to personalize and tweak the terminal at some point. One of the nicest features of Windows Terminal is how adaptable it is. Editing the settings is the most frequent approach to alter the Windows Terminal. json file in the PackagesMicrosoft.WindowsTerminal 8wekyb3d8bbweLocalState directory of the percent LOCALAPPDATA percent PackagesMicrosoft.WindowsTerminal 8wekyb3d8bbweLocalState directory.

By choosing Settings from the profiles list, you may easily go to the settings.json file.

Until a graphical option is provided, most of the adjustments for Windows Terminal will be done via the settings.json file.

The Windows Terminal team has stated that a GUI for controlling settings would be available in a future edition!

When you save your settings in a JSON file, you may put them in source control or backup them in case you switch workstations.

You may even share your preferences with other people. If you’d like to have a look at some sample settings, go here. Check out what json looks like here.

The locations. schema.json

If you’re using Visual Studio Code, the terminal has a JSON schema that can assist you evaluate any settings changes you make. json, as well as auto-filling any new ones.

As soon as you save your modifications (and settings.json is still valid), the new changes will be reflected in the terminal immediately, or an error will be shown without the need to reload the terminal.

While Visual Studio Code isn’t necessary for editing JSON, it is strongly suggested for modifying the Windows Terminal.

There are four major parts of settings at the moment. Globals, Profiles, Schemes, and Bindings for Keys are all json files that determine how Windows Terminal looks and feels. Let’s look at each part one by one.

Globals

The globals section is in charge of establishing how the Windows Terminal behaves. The global section, which is always at the top of the file, controls items like confirm on closing, visual theme, and default profile. The following code line provides an example.

// settings.json { “$schema”: “<https://aka.ms/terminal-profiles-schema>”, “defaultProfile”: “{d21f5dd0-bdc3-4cf7-9e3c-5d5d721074c9}”, // You can add more global application settings here. // To learn more about global settings, visit <https://aka.ms/terminal-global-settings> // If enabled, selections are automatically copied to your clipboard. “copyOnSelect”: false, // If enabled, formatted data is also copied to your clipboard “copyFormatting”: false, … … }

Profiles

A profile is a Windows Terminal setup with its own shell, style, and preferences. A session with the designated shell, environment, or WSL distribution will be opened when you open a Windows Terminal profile. This implies you may have many shells open at once, or multiple sessions of the same shell, which is handy for cross-platform testing code or running a background task.

By default, Windows Terminal has three profiles: Windows PowerShell, cmd.exe, and Azure Cloud Shell. WSL will create a profile for each WSL distribution you have installed if you have it installed. It also has a defaults area, which applies adjustments to all profiles in the settings. json. This is an excellent location for Unicode-compatible typefaces, which will be discussed further down in this article.

In the following code sample, you can see an example of what a profile looks like.

/ json settings “profiles”: “defaults”: “list”: [“guid”: “d2df7eb9-1d7e-4a05-91a6-04ac0ee99970”, “name”: “Windows PowerShell”, “commandline”: “powershell.exe”, “hidden”: false]

Making a New Account

Setting up profiles is helpful if you want to add custom Profiles from afar to the terminal or create variants on the same shell.

The following are the procedures to establish a new Windows Terminal profile in settings.json:

To make the JSON legitimate, put a comma after each profile except the last.

  1. Any profile from your profiles area may be copied. In the JSON file, they begin [and stop] beneath the list node. Lines 7 through 14 are the ones you’re looking for.
  2. Run [guid]::NewGuid() from any PowerShell session to generate a new GUID. In your new profile, replace the existing value for guid with the GIUD that you produced. When the terminal creates the default profiles, GUIDs are produced at random.
  3. To modify the profile, you may add or alter any additional characteristics.
  4. Copy the contents of settings.json and run it through JSON Lint or another JSON linter to ensure it’s still valid. Any problems should be resolved.
  5. Make a backup of your modifications.

In a profile, there are several choices to set. Keep in mind that if you have an option in settings.json’s defaults section that is also set in your new profile, you will override the default. Check out the Windows Terminal Settings manual for a detailed description.

Schemes

Color palettes for your Windows Terminal profiles are discussed in this section. A color scheme instructs the terminal to use a certain hex value for each color that appears on the terminal. Colors may become pretty inventive since the terminal can represent them in 24-bit. As seen below, each scheme will have a name and a list of colors that translate to a hex value that can be readily altered.

“schemes” in settings.json: [“name”: “Ubuntu,” “background”: “#2C001E,” “black”: “#4E9A06,” “blue”: “#3465A4”, “brightBlack”: “#b3b3b3,” “brightBlue”: “#729FCF,” “brightCyan”: “#34E2E2,” “brightGreen”: “#8AE234”, “brightPurple”: “

While employing that scheme in the Windows Terminal, these colors will correlate to the background and text colors. If you open settings.json in Visual Studio Code, you can click on the hex values, which will display a graphical slider with the real colors, as seen below.

Color selections in VS Code in New Windows TerminalColor selections in VS Code

The use of terminal themes (also known as schemes in Windows Terminal) is popular in the terminal software world. While there isn’t a single method to build a theme (scheme) that works across all terminal apps, there are numerous tools available to do so regardless of whatever application you use. You can pick a pre-made one or design your own!

Bindings for Keys

Bindings for Keys are how the Windows Terminal assigns hotkeys for actions like new panes, tabs, or even basic actions like copy and paste. There are a lot of actions that can be assigned custom hotkeys, making it easy to customize the terminal any way that’s comfortable for you.

You can see in the following code snippet some default Bindings for Keys.

/ json settings “keybindings”: [“command”:”action”: “copy”, “singleLine”: false, “keys”: “ctrl+c”], “command”: “paste”, “keys”: “ctrl+v”], “command”: “find”, “keys”: “ctrl+f”], “command”: “find”, “keys”: “ctrl+f”], “command”: “find”, “command”: “action”: “splitPane”, “split”: “auto”, “splitMode”: “duplicate”, “keys”: “alt+d”, “command”: “command”: “command”: “command”: “command”: “command”: “command”: “command”: “command”: “command”: “command”: “command”: “command”: “command”: “command”: “command”: ” “command”: “action”: “closePane,” “keys”: “ctrl+w,” “command”: “action”: “newTab,” “keys”: “ctrl+t,” “command”: “action”: “newTab,” “keys”: “ctrl+t,” “command”: “action”: “newTab,” “command”: “action”: “newTab,” “command”:

Your terminal may be beginning to act the way you want it to, but you’re not finished yet. It’s now time to learn how to continuing modifying the terminal’s appearance and feel.

Visualizations

It’s worth taking a few additional measures to make text on a screen easier to read when you spend the most of your working day looking at it. Investing a little effort with the aesthetics of your new Windows Terminal, whether it’s altering the fonts, sizes, or colors, will pay you big time after gazing at it for a whole workday.

Text Improvements

24-bit color capabilities and rapid text rendering are two of the most publicized advantages of the Windows Terminal. That may not seem spectacular until you consider how text and color are rendered by powershell.exe and cmd.exe. Using Python’s extensive library, it’s easy to see how significant the changes in rendering capabilities between the old consoles and the Windows Terminal are.

Text Improvements in New Windows TerminalText Improvements in Windows Terminal

Using the Windows Terminal and powershell.exe to access the rich library from Python

The Windows Terminal also supports Unicode characters, which means it may be used with a variety of alphabets and symbols, including Cyrillic letters, Kanji, and any other character. This is due to the Cascadia Code Font, which will be discussed further below.

Cacadia is a typeface designed by Cacadia. in New Windows TerminalCacadia is a typeface designed by Cacadia.

Using the Windows Terminal and powershell.exe to write in Japanese Kanji

This has obvious internationalization advantages, but it also implies that the Windows Terminal can handle Unicode and UTF-8…

Emoji 🙂

Emoji may not seem like an obvious addition to a command-line tool, but they’re quickly becoming a standard in programming. Emojis are being used by software developers to identify contributions and bugs, as well as reply swiftly to conversations in applications like Slack and Microsoft Teams. There’s even an emoji programming language. While some are clearly more beneficial than others, it’s evident that emoji aren’t going away anytime soon.

Using Python’s rich library, an example of rendering Emojis on the powershell.exe console and the Windows Terminal is shown below. Take note of the The Terminal is Pretty sentence and compare the two.

Emojis in New Windows TerminalEmojis in the Terminal in Windows

Using the Python rich text module to display emoji

Fonts from Cascadia

As previously stated, the Cascadia Code font is what permits some of the characters to be seen. However, the typeface contains some additional minor tweaks, such as ligatures, that make it easier to stare at for hours on end.

The Cascadia Code typeface was created expressly for use on the Windows Terminal by the same team that created the Windows Terminal.

The Cascadia Code typeface includes ligatures in addition to special characters. Ligatures are symbols that appear on the screen in a slightly different way. A list of the ones that the Cascadia Code supports may be found here.

Ligatures in New Windows TerminalIn the Windows Terminal, ligatures

A list of all the ligatures that Cascadia Code supports. Here’s where you put the code.

If you don’t want to employ ligatures but still want Cascadia Code’s other features, the Windows Terminal includes a font named Cascadia Mono that accomplishes precisely that. Each has a powerline variation (Cascadia Code PL and Cascadia Mono PL), which will be discussed next.

Powerline

Powerline was initially a vim plugin that brought information to the shell, and it has a long history in the Linux community. The goal was to deliver more information in the prompt, allowing you to have more information at your hands when working at the console.

Powerline has been copied, cloned, and reproduced in every current shell, including PowerShell, but it’s been lacking something due to the restrictions of prior consoles. The terminal overcomes this issue by incorporating glyphs, which are specialized symbols. Glypes are used in powerline to provide a lot more information to the user at a look.

PowerShell’s Powerline

By installing oh-my-posh and following the example code below, you can establish a powerline-like prompt in PowerShell.

# PowerShell Set-Prompt posh-git -Scope CurrentUser posh-git -Scope CurrentUser posh-git -Scope CurrentUser posh-git -Scope CurrentUser posh-git -Scope CurrentUser posh-git -Scope CurrentUser posh-git -Scope CurrentUser

Your PowerShell prompt will have additional information after that, including the git branch name and commits between remote and local repositories. Here’s an example of what I’m talking about.

Support for powerlines in New Windows TerminalSupport for powerlines

This is the oh-my-posh Paradox theme with a few tweaks to show the current OS and PowerShell version.

Bash’s Powerline

You’ll need to install a shell like zsh or fishshell to use Bash. These offer some functionality and custom highlighting to the terminal, but they might be difficult to use on their own. It’s also a good idea to install a zsh framework like ohmyzsh, which will make things a lot simpler. Like oh-my-posh for PowerShell prompts, ohmyzsh comes with themes and bash prompt customization.

You may change the theme after that by editing the ZSH THEME setting in the /.zshrc file. Use a text editor like vim or nano to make the changes, then save the file. After that, run source /.zshrc to see your modifications take effect.

Bash's Powerline in New Windows TerminalBash’s Powerline

In zsh, switching from the agnoster to the robbyrussell theme.

Images for the Background

The option to utilize photos in each profile was one of the most talked-about aspects of the Windows Terminal when it was first released. You’ve undoubtedly noticed that the backgrounds have all had the same color specified in the preferences up until now. background tag in a json file

If you’re one of those individuals who finds graphics annoying when coding, here’s an example of how to use a single color backdrop in settings. json.

/ json settings “defaults”: “d2df7eb9-1d7e-4a05-91a6-04ac0ee99970”, “name”: “Windows PowerShell”, “commandline”: “powershell.exe”, “background”: “#006e1c”, “hidden”: false]

With only one color chosen, that color will be used as the profile’s backdrop. If you don’t provide a background tag in your profile, the Windows Terminal will use whatever is in your schema.

Background in a solid color in New Windows TerminalBackground in a solid color

This color will be used as the backdrop in the sample profile above.

To use a background image, you’ll need to have the image on your local file system. At the time of writing, the Terminal doesn’t support Images for the Background from a URL. In settings.json, navigate to the profile that you want to assign the background image to. From here, add in the backgroundImage tag and give it the value of the path to the image. Below is an example that sets the profile background to a picture of a cat.

/ json settings “profiles”: “defaults”: “list”: [ “guid”: “d2df7eb9-1d7e-4a05-91a6-04ac0ee99970”, “name”: “Windows PowerShell”, “commandline”: “powershell.exe”, “backgroundImage”: “percent USERPROFILE percent Picturesterminal cat.jpg”, “hidden”: false

Images in New Windows terminal backgroundImages in the backdrop of the Windows terminal

If you want to change your backdrop, be in mind that the terminal will not take your colors into consideration when comparing them to the background. The terminal will use the colors in your current profile’s schema by default. If you’re not cautious, you may end up with a light-colored font on a light-colored backdrop, making it very difficult to read. Not every backdrop is suitable for a terminal.

Your backdrop is being taken over by a terminal cat.

You will observe the background update without having to manually refresh or quit and re-open the terminal as long as settings.json is still a valid JSON file and complies to the terminal schema. Below is an excellent example of real-time updating.

Updates to the settings in real time in New Windows TerminalUpdates to the settings in real time

When you make changes to the settings, the Windows Terminal will update. Save the json file.

Image Positioning

You could assume that photos in a terminal window are too distracting, and you’d be right. They may, however, be useful as a fast reference if you often navigate between tabs and profiles. Here’s an example of how you can utilize a backdrop picture to draw attention to the shell you’re utilizing.

/ json settings “profiles”: “defaults”: “hidden”: false, “list”: [ “guid”: “d8a5efb7-25a0-4d75-8c6c-1f2603188971”, “name”: “PowerShell 7”, “source”: “Windows.Terminal.PowershellCore”, “backgroundImage”: “percent USERPROFILE percent Picturesiconspwsh.png”, “backgroundImageStretchMode }

To set a background picture, you’ll need three more options starting with backgroundImage to control the image’s size, placement, and opacity on the screen, as seen above. Always consult the manual to see what alternatives are available. An example of the profile given above is presented below.

Image Positioning in New Windows TerminalImage Positioning in Windows Terminal

A PowerShell 7 profile featuring a backdrop picture of the PowerShell logo.

If you don’t mind being distracted, the Windows Terminal now enables animated gifs, so you can have some fun with your profiles.

Animated GIFS in new windows terminalIn Windows Terminal, you may see animated GIFS.

Advanced Terminal Commands for Windows

Now that your terminal has been set up and personalized to your desire, it’s time to look at some of the Windows Terminal’s more complex features.

Different Kernels in Split Panes

Multiple panes are supported by the Windows Terminal. This implies that many sessions may run in the same Terminal window. This isn’t a new trend. For years, other console apps have supported panes. Because it supports profiles (in settings.json), you may have each session open in its own window in the Windows Terminal. You may display a window for each OS even if each session is a whole separate operating system, for as when using WSL or a remote profile (more on Profiles from afar later).

In settings.json, establish split windows for distinct profiles. SplitPane key bindings must be unique for each profile. You may open each one side by side by supplying the profile argument with either the name or the GUID of the Windows Terminal profile.

The split property can be set to horizontal, vertical or auto which will pick the orientation that provides the most space based on the currently selected pane. You can see below an example of setting Bindings for Keys for four panes.

/ settings.json “keybindings”: [“command”: “action”: “splitPane”, “split”: “auto”, “splitMode”: “duplicate”, “keys”: “alt+d”, “command”: “action”: “splitPane”, “split”: “auto”, “splitMode”: “duplicate”, “command”: “command”: “command”: “action”: “splitPane”, “split”: “auto”, “profile”: “Command Prompt”, “keys”: “ctrl+alt+2”, “command”: “action”: “splitPane”, “split”: “auto”, “profile”: “Command Prompt”, “keys”: “ctrl+alt+4”, “command”: “command”: “command”

Four separate profiles are open in various windows in the Windows Terminal. (Azure Cloud Shell, PowerShell 7, Ubuntu 20.04, PowerShell 5.1)Four separate profiles are open in various windows in the Windows Terminal. (Azure Cloud Shell, PowerShell 7, Ubuntu 20.04, PowerShell 5.1)

Changing the way the Windows Terminal is launched

You’re in luck if you don’t like hotkeys or want a fast method to access the terminal using the CLI. The Windows Terminal comes with a command-line program named wt that lets you automate its opening in whatever configuration you wish.

Below is an example of changing the behavior by giving different parameters when opening the terminal.

Changes in behavior in the New Window Terminal Changes in behavior in the New Window Terminal

Profiles from afar

Most of the time, your profiles be running local shells. However, Windows Terminal can also display remote sessions through a concept called Profiles from afar too!

If you look at other Windows Terminal example profiles, you’ll see that some of them don’t use.exe apps at all. You may even use the ssh command or the Enter-PsSession PowerShell command to construct profiles that map to remote servers or other shells in the Windows Terminal. You may even start a Terraform session using terraform console! In the profile below, you can see an example of this.

You can open nearly anything as its own Windows Terminal Profile without having to login interactively by utilizing the commandline argument in the profile section of settings.json.

/ json settings “profiles”: “defaults”:, “list”: [“guid”: “f74c374e-d9ce-4f53-b3f1-072e020f08a5”, “name”: “Python REPL”, “backgroundImage”: “percent USERPROFILE percent Picturesiconspython.png”, “commandline”: “python”, “hidden”: false, “hidden”: false, ” “guid”: “98a15d46-813c-4d1e-badd-5a22798e73c1”, “name”: “Test EC2 Instance”, “backgroundImage”: “% USERPROFILE percent Picturesiconsvm.jpg”, “commandline”: “ssh -i percent USERPROFILE percent demos.pem [email protected]”, “hidden”: false]

Changing the names of profiles in new windows terminalChanging the names of profiles

With Windows Terminal profiles, you may open the Python REPL and establish an SSH connection to an AWS EC2 instance.

Summary

At this point, you should be not only familiar with the Windows Terminal, but have configured your custom settings and have a fairly comfortable configuration set up. You should be able to customize profiles and Bindings for Keys to control the look and operation of the terminal, as well as know how to modify the fonts, glyphs, and characters that you can use in the terminal.

Command-line utilities aren’t going away anytime soon. They must be used by both developers and engineers. The new Windows Terminal will not make software development any less of a job of staring at little letters on a screen, but it will make it a lot easier to keep doing it!

The “windows terminal github” is a tool that allows users to enhance their console experience with the Windows Terminal. The tool is available on GitHub and can be installed using the command-line interface.

Frequently Asked Questions

Related Tags

  • windows terminal themes
  • windows terminal settings
  • windows terminal settings not opening
  • set windows terminal as default
  • oh-my-posh windows terminal

Table of Content