Windows Terminal Preview v0.4 Release

Kayla Cinnamon

The time has come for another update to the Windows Terminal! Windows Terminal Preview v0.4 is now available in the Microsoft Store and on GitHub!

And for those interested in more detail, please review the Terminal v0.4 release notes.

Settings Updates

Profiles.json is Now in LocalState

The profiles.json file has been moved from the RoamingState folder to the LocalState folder. This change prevents settings from automatically roaming across your devices, fixing issues such as having a font referenced on one machine that didn’t exist on the other, which would cause the Terminal to crash due to the unidentified font.

Tab Title Customizations

In our v0.3 release, we introduced the "tabTitle" setting, which allowed users to overwrite the tab title with a custom string. In v0.4, we’ve changed this functionality. Now, by default, the tab title will be set to the profile name, rather than the executable’s path. If you’d like to change what is used as the default title, setting "tabTitle" will replace the profile’s name in the tab.

This functionality is slightly different from before, because this is setting the shell title, rather than overriding the displayed title. This behavior aligns with the behavior used in the original conhost. For clarification, the shell title is the title provided by the command line application that’s being used within the instance of the profile. This means that the command line application will still be able to overwrite the tab title, which is a change from the v0.3 release.

πŸ‘‰ Note: The shell title is overridden in WSL distributions because the default shell configuration in many distros sets the window title before every prompt. You can change this behavior in your bash or ZSH profiles in /etc.

Settings Warning Messages

Now, when there is an issue with your profiles.json file, the Terminal will display an error message describing what is incorrect. If your profiles.json file cannot be read properly, the Terminal will use its default settings, however it will NOT overwrite your existing settings file.

Key Binding Updates

AltGr is Now Detected

You are now able to have both AltGr keypresses along with "Ctrl+Alt" key bindings! The AltGr keypress is now detected before the key binding functionality, thus making it available for users.

Opening the Tab Dropdown

You can now use a key binding to open the tab dropdown. The default key binding that is shipped with this release is "Ctrl+Shift+Space".

⭐ Info: For a list of all available key bindings, check out the documentation here!

πŸ‘‰ Note: If you have previously installed the Terminal and would like the new default settings, you will have to delete your current profiles.json file and relaunch the Terminal. This will generate a new settings file with the default settings. You may want to move your current profiles.json file to ensure you keep a copy of your current preferences. We are actively working on improving this experience!

Copy Updates

New Global Setting: Copy on Select

"copyOnSelect" has been added as a new global setting in the profiles.json file. By default, this setting is set to false. When set to true, the clipboard will copy once a selection has been made within the Terminal. If false, the selection will not be copied until further action is taken (such as using a key binding that calls the copy function). This experience aligns with that on Unix terminals.


When you select a range of text and copy it to your clipboard, Terminal now writes the selected text to the clipboard as styled HTML. This will allow you to paste styled console contents to other applications such as Outlook, Microsoft Word, etc. This behavior differs from conhost in that the clipboard will always copy the HTML data along with the regular text, rather than defining when you want to copy the HTML data.

Accessibility Update

The UIA bounding rectangles are now properly aligned with the text ranges on 100%-scale displays. Bounding rectangles define the regions where text is displayed on the buffer inside the Terminal. This supports panes as well as improves accessibility!

Bug Extermination

πŸ› Any key binding used for copy will be passed through to the underlying command line application if there is no selection active. Therefore, for example, if you are using "Ctrl+C" to copy, it will copy if there’s a selection. Otherwise, ^C sends SIGINT and interrupts the signal, as expected.

πŸ› Icons will no longer flash when switching between tabs. Additionally, the Terminal will no longer crash if the icon path is invalid.

πŸ› After opening the tab dropdown, clicking outside of it will dismiss the dropdown and hide it.

πŸ› The Terminal no longer re-serializes the settings on launch, so your profiles.json file will no longer be reformatted on launch.

Top Community Contributors

We have loved working with the community to help improve the Terminal experience and we’d like to call out those who have especially made an impact!

Contributors Who Opened the Most Non-Duplicate Issues

πŸ† richardszalay

πŸ† wolf99

πŸ† j4james

Contributors Who Created the Most Merged Pull Requests

πŸ† j4james

πŸ† fcharlie

πŸ† metathinker

Contributors Who Provided the Most Comments on Pull Requests

πŸ† mcpiroman

πŸ† german-one

πŸ† j4james


If you have any questions, feel free to reach out to Kayla (@cinnamon_msft) or Rich (@richturn_ms) on Twitter. If you have any feature requests or have found any bugs, file them on GitHub!

Until next time! 😊


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

  • Bob Weston 0

    Cool! Now just need a way to move the New Tab dropdown back to the far right…

    • Rich TurnerMicrosoft employee 0

      Hey Bob. The “new tab drop-down” was incorrectly located, off floating around toward the right of the tab bar, causing much confusion about where one could grab the window’s title bar and drag the window around. Moving the new tab drop down cluster to the right of the last open tab resolves this visual incongruity.

  • FranΓ§ois Lachapelle 0

    I’m receiving my new Acer Predator Trition laptop today. As soon as I set up my vim, I shall have a look at this new terminal.

    • Rich TurnerMicrosoft employee 0

      Good to know πŸ™‚ Enjoy!

  • Lachlan Picking 0

    I definitely agree that changing from RoamingState to LocalState to avoid the issues mentioned was the right call. Having said that, I was actually pretty pleasantly surprised when I moved from my desktop to my surface pro and the terminal was just already configured the way I wanted it.

    I also really like the change to tab titles. The default path titles were annoyingly long, but I still wanted the shell to be able to set the title, so the tabTitle setting was an imperfect solution for me.

  • Jacob Silva 0

    I was just checking last night if there was an update little behold there is one today πŸ™‚

  • Matteo Contrini 0

    Will there be a UI for settings at some point?

  • Mohmd Azhdari 0

    Cool! I really enjoy using Windows Terminal

    Is there any proper way to open #WindowsTerminal from cmd?(Not through “explorer.exe shell:AppsFolder\Microsoft.WindowsTerminal_8wekyb3d8bbwe!App”)

    I want to pass initial directory, and active profile.

    I guess this feature is so much useful.In my case, I could add a preset for WindowsTerminal in OpenCommandLine extension in Visual Studio.

Feedback usabilla icon