January 14th, 2020

Windows Terminal Preview v0.8 Release

Kayla Cinnamon
Senior Product Manager

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

Settings Updates

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

Contributors Who Provided the Most Comments on Pull Requests

🏆 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! 😊

Author

Kayla Cinnamon
Senior Product Manager

Product Manager for Dev Home, Microsoft PowerToys, and Windows Developer Experiences, formerly Windows Terminal and Cascadia Code.

14 comments

Discussion is closed. Login to edit/delete existing comments.

  • Dustin Schultz

    Are there any plans to add Serial connections to Windows Terminal?

  • 硕 叶

    这个看起来很好,但是这种样式我好像在其他linux系统上见过

  • Tigere Rangwani

    Does anybody know why Terminal says?

    $ git
    bash: git: command not found
  • Dmitry Barabash

    Besides retro terminal effects in the screenshot, which font exactly do you use over there?

  • Dan Anstis

    In the first screenshot, how are you displaying the git branch information? I really like this layout with the coloured flags and the cursor on the next line.

      • Dan Anstis

        Awesome, thanks Alexey!

    • Debmallya Bhattacharya

      I have the same question. I want that look. I have both the terminal and the psCore.

  • Derrick Timmermans

    Love the retro CRT look, adds so much character to a terminal.

  • Emmanuel Adebiyi

    Lovely! Can’t wait to get my hands dirty

  • Marius StromMicrosoft employee

    At the end you say it’s titleWidthMode, but it’s actually tabWidthMode.

  • Troy Witthoeft

    I can’t remember the last time I was this excited about a terminal. Go team, go. We love the updates!

  • jawad mansoor

    I think this is the most anticipated update for quite a while. I have been waiting for this and I am sure many others are going to enjoy the new pimped up terminal. I added WSL feature only to use a nice looking terminal but that came with unnecessary huge space allocation for Linux and that was very slow as well. I am glad that it finally arrived. I am going to be among...

    Read more