- What is Windows Terminal?
- Multiple profiles supporting a variety of command line applications
- Customized schemes and configurations
- Custom actions
- Unicode and UTF-8 character support
- GPU accelerated text rendering
- Background image support
- Command line arguments
- Windows Terminal Tips and Tricks
- On first launch
- Customization
- Global profile settings
- Custom color schemes
- Custom command line
- Old school fonts
- Places for background images
- Functionality
- wt.exe command line arguments
- Panes
- Copy and paste
- Defining key bindings and actions
- Send input commands
- WSL starting directory
- Cheers
- Introducing Windows Terminal
- Windows Terminal key features
- Multiple tabs
- Beautiful text
- Settings and configurability
- When can I get my hands on it?
- Wait… did you say open source?
- This sounds awesome, but why couldn’t you just improve the existing Windows Console?
- Okay, but what about contributing to an existing open source terminal/app project instead?
- I’m sold! How can I get involved?
What is Windows Terminal?
Windows Terminal is a modern terminal application for users of command-line tools and shells like Command Prompt, PowerShell, and Windows Subsystem for Linux (WSL). Its main features include multiple tabs, panes, Unicode and UTF-8 character support, a GPU accelerated text rendering engine, and the ability to create your own themes and customize text, colors, backgrounds, and shortcuts.
Multiple profiles supporting a variety of command line applications
Any application that has a command line interface can be run inside Windows Terminal. This includes everything from PowerShell and Command Prompt to Azure Cloud Shell and any WSL distribution such as Ubuntu or Oh-My-Zsh.
Customized schemes and configurations
You can configure your Windows Terminal to have a variety of color schemes and settings. To learn how to make your own color scheme, visit the Color schemes page. You can also find custom Terminal configurations in the Custom terminal gallery.
Custom actions
There are a variety of custom commands you can use in Windows Terminal to have it feel more natural to you. If you don’t like a particular keyboard shortcut, you can change it to whatever you prefer.
For example, the default shortcut to copy text from the command line is ctrl+shift+c . You can change this to ctrl+1 or whatever you prefer. To open a new tab, the default shortcut is ctrl+shift+t , but maybe you want to change this to ctrl+2 . The default shortcut to flip between the tabs you have open is ctrl+tab , this could be changed to ctrl+- and used to create a new tab instead.
You can learn about customizing shortcuts on the Actions page.
Unicode and UTF-8 character support
Windows Terminal can display Unicode and UTF-8 characters such as emoji and characters from a variety of languages.
GPU accelerated text rendering
Windows Terminal uses the GPU to render its text, thus providing improved performance over the default Windows command line experience.
Background image support
You can have background images and gifs inside your Windows Terminal window. Information on how to add background images to your profile can be found on the Profile — Appearance page.
Command line arguments
You can set Windows Terminal to launch in a specific configuration using command line arguments. You can specify which profile to open in a new tab, which folder directory should be selected, open the terminal with split window panes, and choose which tab should be in focus.
For example, to open Windows Terminal from PowerShell with three panes, with the left pane running a Command Prompt profile and the right pane split between your PowerShell and your default profile running WSL, enter:
Learn how to set up command-line arguments on the Command line arguments page.
Windows Terminal Tips and Tricks
October 15th, 2020
Windows Terminal comes with a lot of features that allow you to customize it and interact with it in a way that feels most comfortable to you. Let’s run through some tips and tricks that could help you set up your terminal in a way that’s perfect for you. At the time of this blog post, Windows Terminal is on version 1.3 and Windows Terminal Preview is on version 1.4.
On first launch
When you first install Windows Terminal, you will be greeted with a Windows PowerShell prompt. Windows Terminal ships with Windows PowerShell, Command Prompt, and Azure Cloud Shell profiles by default.
In addition to these profiles, if you have any Windows Subsystem for Linux (WSL) distributions installed, the terminal will automatically create profiles for those distros as well. If you would like to install additional WSL distros on your machine, you can do so after installing terminal and on your next terminal launch, the profiles for those distros should automatically appear. These profiles will have Tux as their icon, however you can change the icon of the distro in your settings to match whichever distro you have. You can find more information about WSL on the WSL docs site.
👉 Note: You will have to download the distro icons as they do not come shipped inside the terminal.
Customization
Windows Terminal comes with a large set of default settings, including color schemes and keyboard shortcuts. If you’d like to view the default settings file, you can hold Alt and click on the Settings button inside the dropdown menu.
Global profile settings
Windows Terminal provides you the option of applying a setting to every profile without having to duplicate the setting for each profile entry. This can be done by adding a setting inside the «defaults» array inside the «profiles» object. A list of all possible profile settings can be found on the Profile settings page on our docs site.
Custom color schemes
Windows Terminal comes with an assortment of color schemes by default. However, there are unlimited possibilities when it comes to color schemes. A great place to find additional terminal schemes is terminalsplash.com.
If you’d like to create your own color scheme, terminal.sexy is a great tool for creating and visualizing your own color schemes.
💡 Tip: You can match your custom color scheme to a background image by using the PowerToys color picker to grab hex codes for colors to use inside your scheme. PowerToys can be installed using winget with winget install powertoys .
Custom command line
You can give your command line some style with Oh my Posh and Terminal-Icons. These tools allow you to customize what your prompt looks like with colors, glyphs, and emojis. To get Oh my Posh with Posh-Git and PSReadline up and running, you can follow this tutorial.
Oh my Posh recently came out with Oh my Posh 3, which has a lot more customization options and is not only exclusive to PowerShell. After going through the tutorial linked above, you can upgrade to V3 with the following command:
You can add a bit more flair to your shell by adding custom icons with Terminal-Icons. The image below is also using a custom Posh theme to add emojis to the prompt line.
👉 Note: You will need to set your font to a Nerd Font in order to get the Terminal Icons to appear.
Old school fonts
For those of you who are fans of the retro terminal effect, a great place to find old school fonts is at https://int10h.org/oldschool-pc-fonts/.
Places for background images
Desktop wallpapers often look great inside Windows Terminal as background images. Some great places to find background images are Windows Themes as well as WallpaperHub. Windows Terminal supports both images and gifs for background images.
Another popular option is placing the logo of the shell you are using as the background image, to help identify which shell you are in. You can set where the background image is placed with «backgroundImageAlignment» in your settings. More information on background image settings can be found on our docs site.
Functionality
wt.exe command line arguments
You can launch your terminal in a specific configuration by using the wt.exe command. Some options you can set are tab and pane arrangements as well as their starting directories and profiles. You can save a custom command as a shortcut and pin it to your taskbar to open your desired configuration.
If you use the wt.exe command inside the command palette, it will take effect in your current terminal window, rather than spinning up a new terminal instance.
This example will open the PowerShell profile in the current working directory in a new tab with a vertical pane running your default profile.
wt -p «PowerShell» -d . ; split-pane -V
Full documentation about wt command line arguments can be found on our docs site.
Panes
Windows Terminal has pane support for profiles. You can open a new pane of a profile by either holding Alt and clicking on the profile in the dropdown, or by using the following keyboard shortcuts:
Automatic pane split of current profile
Horizontal pane split of default profile
Alt + Shift + Minus
Vertical pane split of default profile
Alt + Shift + Plus
You can also move focus around your panes by holding Alt and using the arrow keys. Lastly, you can resize your panes by holding Alt + Shift and using the arrow keys. You can find more information about panes on our docs site.
Copy and paste
In Windows Terminal, the default keyboard shortcuts for copy and paste are Ctrl + C and Ctrl + V , respectively. If you do not have a selection, Ctrl + C will act as normal as the break command.
You can customize which keys you’d like to copy and paste with by editing the «copy» and «paste» key bindings. If you delete these key bindings from your settings.json, the terminal will default to Ctrl + Shift + C and Ctrl + Shift + V . This can be especially helpful for WSL users who need Ctrl + C and Ctrl + V free to use for their shells.
You can also choose which formatting is copied to your clipboard along with newline characters with the «copyFormatting» and «singleLine» actions associated with the copy command. Full documentation on clipboard integration commands can be found on our docs site.
Defining key bindings and actions
A large portion of the customizable properties inside Windows Terminal come from key bindings and actions. Commands inside the «actions» array will automatically be added to your command palette. If you’d like to also use them with key bindings, you can add «keys» to them to invoke them with the keyboard. A full list of every possible command can be found on the Actions page of our docs site.
Send input commands
Windows Terminal gives you the ability to send input to your shell with a key binding. This can be done with the following structure inside your «actions» array.
Sending input to the shell with a keyboard shortcut can be useful for commands you run often. One example would be clearing your screen:
Navigating to the parent directory with a key binding may also be helpful.
You can also use this functionality to run builds or test scripts.
WSL starting directory
As of now, Windows Terminal defaults to setting WSL profiles’ starting directory as the Windows user profile folder. To set your WSL profile to start in the
folder, you can add the following line to your profile settings, replacing DISTRONAME and USERNAME with the appropriate fields.
Cheers
We hope you learned a few tips and tricks about Windows Terminal throughout this blog post. We are currently planning another release for the month of November, so keep your eyes peeled for that one! If you have any questions or feedback, feel free to reach out to Kayla (@cinnamon_msft) on Twitter. For more information about Windows Terminal, you can check out our docs site.
Kayla Cinnamon
Program Manager, Windows Terminal, Console, Command Line, & Cascadia Code
Introducing Windows Terminal
We are beyond excited to announce Windows Terminal! Windows Terminal is a new, modern, fast, efficient, powerful, and productive terminal application for users of command-line tools and shells like Command Prompt, PowerShell, and WSL.
Windows Terminal will be delivered via the Microsoft Store in Windows 10 and will be updated regularly, ensuring you are always up to date and able to enjoy the newest features and latest improvements with minimum effort.
Windows Terminal key features
Multiple tabs
You’ve asked and we’ve listened! The most frequently requested feature for the Terminal is multiple tab support and we are SUPER excited to FINALLY be able to deliver this key feature. You will now be able to open any number of tabs, each connected to a command-line shell or app of your choice, e.g. Command Prompt, PowerShell, Ubuntu on WSL, a Raspberry Pi via SSH, etc.
Beautiful text
The Windows Terminal uses a GPU accelerated DirectWrite/DirectX-based text rendering engine. This new text rendering engine will display text characters, glyphs, and symbols present within fonts on your PC, including CJK ideograms, emoji, powerline symbols, icons, programming ligatures, etc. This engine also renders text much faster than the previous Console’s GDI engine!
You will also have the option of using our new font! We wanted to create a fun, new, monospaced font to enhance the modern look and feel of the Terminal. Not only will this font include programming ligatures, but it will also be open sourced and have its own repository. Stay tuned for more information on the new font project!
Settings and configurability
We have connected with so many command-line users who LOVE to customize their terminals and command-line applications. Windows Terminal provides many settings and configuration options that give you a great deal of control over the Terminal’s appearance and each of the shells/profiles that you can open as new tabs. Settings are stored in a structured text file making it easy for users and/or tools to configure.
Using Terminal’s configuration mechanism, you will be able to create multiple “profiles” for each shell/app/tool you want to use, whether it be PowerShell, Command Prompt, Ubuntu, or even SSH connections to Azure or IoT devices. These profiles can have their own combination of font styles and sizes, color themes, background blur/transparency levels, etc. You can now create your own custom-styled Terminal that is personalized to your unique taste!
After we’ve shipped Windows Terminal 1.0, we plan to get started on many of the features already in our backlog, in addition to the many features you as the community are likely to add!
When can I get my hands on it?
As of today, the Windows Terminal and Windows Console have been made open source and you can clone, build, run, and test the code from the repository on GitHub: https://github.com/Microsoft/Terminal
This summer in 2019, Windows Terminal previews will be released to the Microsoft Store for early adopters to use and provide feedback.
This winter in 2019, our goal is to launch Windows Terminal 1.0 and we’ll work with the community to ensure it’s ready before we release!
[Happy Joy Gif – Giphy]
Wait… did you say open source?
Yes we did! We are excited to announce that we are open sourcing not just Windows Terminal, but also the Windows Console which hosts the command-line infrastructure in Windows and provides the traditional Console UX.
We can’t wait to work with you on improving and enhancing the Windows command-line experience!
This sounds awesome, but why couldn’t you just improve the existing Windows Console?
The primary goal of the Windows Console is to preserve backward compatibility with existing command-line tools, scripts, etc. While we’ve managed to introduce many key improvements to the Console’s features (e.g. adding VT and 24-bit color support, etc. see this blog post), we are unable to introduce further meaningful improvements to the Console’s UI without “breaking the world.”
Therefore, the time has come for a new, fresh approach.
Windows Terminal installs and runs alongside the existing in-box Windows Console application. If you run Cmd/PowerShell/etc. directly, they will start attached to a traditional Console instance in the exact same way they do today. This way, backward compatibility remains intact while providing you the option of experiencing Windows Terminal if/when you wish to do so. Windows Console will continue to ship within Windows for decades to come in order to support existing/legacy applications and systems.
Okay, but what about contributing to an existing open source terminal/app project instead?
We carefully explored this option during planning and determined our involvement in an existing project would require changing the project’s requirements and architecture in ways that would be too disruptive.
Instead, by creating a new open-source terminal application, and open-sourcing Windows Console, we can now invite the community to collaborate with us on improving the code and leveraging it in their respective projects.
We believe there is plenty of room in the market for new/different ideas about what a terminal can and should do and we aim to help the ecosystem of terminal (and related) applications flourish and grow through the introduction of new ideas, interesting approaches, and exciting innovations in this space.
I’m sold! How can I get involved?
Visit the repo at https://github.com/Microsoft/Terminal to clone, build, test, and run the Terminal! You can file bugs and share feedback with us and the community as well as fix issues and make improvements on GitHub.
Starting this summer, try installing and running Windows Terminal from the Microsoft Store. If you come across any bugs, share feedback either via the Feedback Hub or GitHub issues for detailed issues/discussions.
We are thrilled to be working with you! If you have any questions or feedback, don’t hesitate to reach out to Kayla @cinnamon_msft and/or Rich @richturn_ms on Twitter. We can’t wait to see what exciting improvements and features you make to Windows Terminal and Windows Console.