Windows Terminal Preview v0.8.
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 "titleWidthMode"
. 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"
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!