Windows Terminal Preview v0.8 Release

Kayla

January 14th, 2020

The release of the Windows Terminal preview v0.8 has arrived! You can download the Terminal from the Microsoft Store or from the GitHub releases page. Let’s jump into what’s new!

Search

Search functionality has been added to the Terminal! The default key binding to invoke the search dropdown is {"command": "find", "keys": ["ctrl+shift+f"]} . Feel free to customize this key binding in your profiles.json if you prefer different key presses! The dropdown allows you to search up and down through the buffer as well as with letter case matching.

Retro Terminal Effects (Experimental)

Do you miss the days of scanlines and glowing text? Well this is the Terminal release for you! Thanks to community member @ironyman, you can now have CRT retro effects inside the Windows Terminal! This is an experimental feature, but to enable it you can add the following code snippet to any of your profiles:

"experimental.retroTerminalEffect": true

Enhanced Panes and Tabs Key Bindings

When opening a new pane or tab with a key binding, you can now specify which profile by using the profile’s name "profile": "profile-name" , guid "profile": "profile-guid" , or index "index": profile-index . If none are specified, the default profile is used.

Additionally, you can override certain aspects of the profile such as the profile’s command line executable "commandline": "path/to/my.exe" , starting directory "startingDirectory": "my/path" , or tab title "tabTitle": "new-title" .

Here are a few examples of how to implement this new feature:

{"keys": ["ctrl+a"], "command": {"action": "splitPane", "split": "vertical"}} Opens the default profile in a new vertical pane.

{"keys": ["ctrl+b"], "command": {"action": "splitPane", "split": "vertical", "index": 0}} Opens the first profile in the dropdown in a new vertical pane.

{"keys": ["ctrl+c"], "command": {"action": "splitPane", "split": "horizontal", "profile": "{00000000-0000-0000-0000-000000000000}", "commandline": "foo.exe"}} Opens the profile with the guid 00000000-0000-0000-0000-000000000000 using the command line executable of foo.exe in a new horizontal pane.

{"keys": ["ctrl+d"], "command": {"action": "newTab", "profile": "profile1", "startingDirectory": "c:\\foo"}} Opens the profile with the name profile1 starting in the c:\foo directory in a new tab.

{"keys": ["ctrl+e"], "command": {"action": "newTab", "index": 1, "tabTitle": "bar", "startingDirectory": "c:\\foo", "commandline":"foo.exe"}} Opens the second profile in the dropdown using the command line executable of foo.exe with a tab title of bar starting in the c:\foo directory in a new tab. *catches breath*

Custom Default Settings

You can now modify your profiles.json to have your own default profile settings. With this new architecture, you can set a property once and have it apply to all of your profiles. This new setting helps minimize redundant settings between profiles. To add this feature, you can modify the profiles object in your profiles.json to have the "defaults" and "list" properties in the following format:

"profiles": { "defaults": { "fontFace": "Cascadia Code", "colorScheme": "Vintage" }, "list": [ { "commandLine": "cmd.exe", "guid": "{00000000-0000-0000-0000-000000000000}", "name": "cmd" }, { "guid": "{11111111-1111-1111-1111-111111111111}", "name": "PowerShell Core", "source": "Windows.Terminal.PowershellCore" } ] },

With the above code snippet, all of the profiles will use the Cascadia Code font and have the Vintage color scheme.

👉 Note: All of the profile settings can be found here. All can be applied to "defaults" except "guid" .

UI Improvements

Tab Sizing

You now have the ability to modify the behavior of your tab widths. A new setting has been added called "tabWidthMode" . This setting provides two different tab width behaviors: "equal" and "titleLength" . "equal" will make all of your tabs equal width and shrink as additional tabs are added, similar to a traditional browser experience. "titleLength" will size each tab to the length of the tab title.

The Terminal originally had the default tab width behavior set to "titleLength" . This release changes the default behavior to "equal" . If you’d like to change your tab width behavior back to the "titleLength" mode, you can add the following code snippet to the "globals" property of your profiles.json file:

"tabWidthMode": "titleLength"

Here’s an example of how both tab width modes behave:

Bug Fixes

🐛 The tab row will now get larger when the window does!

🐛 Full screen mode now works more reliably!

🐛 Moving focus between grouped panes should act in the way you expect!

🐛 Windows Subsystem for Linux (WSL) users will now see the WT_SESSION environment variable!

🐛 Heaps of crash fixes!

Top Contributors

Our community has contributed immensely to the Terminal project and we’d like to recognize those who have especially made an impact on this release!

Contributors Who Opened the Most Non-Duplicate Issues

🏆 j4james

🏆 mkitzan

🏆 egmontkob

🏆 skyline75489

Contributors Who Created the Most Merged Pull Requests

🏆 mkitzan

🏆 j4james

🏆 skyline75489

🏆 mkitzan

🏆 mcpiroman

🏆 j4james

Give us Feedback!

If you have any questions or comments, feel free to reach out to Kayla (@cinnamon_msft) on Twitter. If you find any bugs or would like to request new features, you can file an issue on GitHub! We hope you like our latest release! 😊