Skip to content
Pre-release

@DHowett-MSFT DHowett-MSFT released this Jan 14, 2020 · 153 commits to master since this release

Features

  • First, the flashiest new feature: a retro-style CRT shader (EXPERIMENTAL FEATURE) (#3468)

    • Enable this with experimental.retroTerminalEffect (boolean) in your profile. This one will only take effect on the next new tab you open!
    • Experimental features may be removed at any time. That’s why they’re in the experimental. namespace!
  • There’s an all-new connection state manager! When a process exits, you’ll be confronted with the cold hard reality of the situation. (#3623)

    • This behavior is now more configurable than ever. The venerable old closeOnExit still works, and still takes true/false. That’s all fine and well.
    • In addition to true/false, it now takes the string values "graceful", "always" and "never". true has become graceful, and graceful means "if it exits without an error." never and always are exactly what they say on the tin. false now maps to never.
  • We’ve shipped support for "default settings!" This lets you specify settings that apply to all profiles. (#3892)

    • You can set almost everything in the defaults block, with the notable exception of guid.
    • Check out the sample below for more info.
  • You can now search for your lost keys some really important output you might have missed! (#3590)

    • Search is, by default, bound to Ctrl+Shift+F in keeping with our mission to leave all Ctrl+ bindings available to commandline applications.
    • It can be rebound with the find action.
    • This is not search's final form! Follow our future plans in #3920. In the long term, it should have blinking lights and moving platforms like any good boss fight.
  • Improvements to pane-splitting and tabbing key bindings:

    • There is a new splitPane key binding that takes an option split (string, "horizontal", "vertical" or "auto") that seeks to replace splitVertical and splitHorizontal (#3722)
      • "auto" splits in half along the larger dimension (#4025)
    • newTab and split* can now open specific profiles with option overrides, specified by ... (#3825)
      • profile (string, guid): a profile name or guid
      • index (int): a profile index in the profile list
      • commandline (string): a commandline to launch in the new profile
      • startingDirectory (string path): the path to a directory in which to launch this profile
      • tabTitle (string): a custom title for the newly-opened pane or tab
      • Check out the sample below for more info.
  • You can now configure the number of rows that your scroll wheel (or touchpad) will scroll (#3575)

    • Global setting rowsToScroll
    • Valid values are "system" (trust Windows) or any integer
  • We've landed the first hint of tab size customization: tabWidthMode (#3876)

    • It accepts two values:
      • "equal" (DEFAULT): all tabs are the same size, and they shrink to a certain tolerance before scrolling
      • "titleLength": the mode you know and love and also hate
  • You may now opt in to grid-snapping resize with the snapToGridOnResize global setting. (#3181) (#4154)

Accessibility Features

  • Terminal will now notify the accessibility subsystem, if it is listening, that the selection has changed -- but only when the selection has changed. (#2989)
  • You can now navigate the contents of the buffer word-by-word using Narrator (and perhaps other screen readers) (#3659)

Changes

  • Dev and Internal builds have shiny new icons (#4006)
  • VT Improvements
    • LF will no longer scroll outside of DECSTBM margins (#3704)
    • Scrolling and erasing will now result in the correct text attributes (#3100)
    • The horizontal tab character will no longer wrap off the end of the line (#3197)
    • DECALN (\x1b#8) is now supported for when you want a terminal full of Es (#3968)
    • We've removed the VT52 movement operations to eventually go and figure out how to integrate them with proper VT modes (#4044)

Bug Fixes

  • Punctuation (and other things) entered through non-keyboard input methods will no longer repeat hundreds of times (#4140)
  • The tab row will once again get larger when the window does. Rejoice! Be free, tabs! (#4024)
  • WSL consumers will now see the WT_SESSION environment variable (#4157)
  • docker-desktop distributions will no longer appear in the profile list (#4156)
    • If you had a distribution named docker-desktop{something} and can't find it:
      1. I'm sorry.
      2. Why?
      3. Please file a bug; We'd love to see if there's something better we can do here.
  • Applications that try to set the console buffer size without setting the window size will no longer wipe out your session (???) (#4021)
  • The cursor will appear immediately when you focus the terminal (#4032)
  • Fullscreen mode now works more reliably (#3721)
  • Moving focus between grouped panes should now move in the way you expect (#3958)
  • Heaps of crash fixes (#3806) (#3835) (#3936) (#3908)
  • When you try to use VT to set color table entry 256 you won't be able to, but Terminal will at least not beef it when you do (#3938)
Pane-splitting and tabbing arguments
{ // Ctrl+Shift+U will launch the Ubuntu profile
    "command": {
	"action": "newTab",
	"profile": "Ubuntu"
    },
    "keys": [ "ctrl+shift+u" ]
}
Default settings example

Old busted jawn

"profiles": [
    {
        "commandline": "cmd.exe",
        "guid": "{0caa0dad-35be-5f56-a8ff-afceeeaa6101}",
        "name": "cmd",
        "fontFace": "Cascadia Code PL",
        "colorScheme": "Vintage"
    },
    {
        "guid": "{574e775e-4f2a-5b96-ac1e-a2962a402336}",
        "name": "PowerShell Core",
        "source": "Windows.Terminal.PowershellCore",
        "fontFace": "Cascadia Code PL",
        "colorScheme": "Vintage"
    },
    {
        "guid": "{58ad8b0c-3ef8-5f4d-bc6f-13e4c00f2530}",
        "name": "Debian",
        "source": "Windows.Terminal.Wsl",
        "fontFace": "Cascadia Code PL",
        "colorScheme": "Vintage"
    }
],

New hotness

"profiles": {
    "defaults": {
        "fontFace": "Cascadia Code PL",
        "colorScheme": "Vintage"
    },
    "list": [
        {
            "commandline": "cmd.exe",
            "guid": "{0caa0dad-35be-5f56-a8ff-afceeeaa6101}",
            "name": "cmd"
        },
        {
            "guid": "{574e775e-4f2a-5b96-ac1e-a2962a402336}",
            "name": "PowerShell Core",
            "source": "Windows.Terminal.PowershellCore"
        },
        {
            "guid": "{58ad8b0c-3ef8-5f4d-bc6f-13e4c00f2530}",
            "name": "Debian",
            "source": "Windows.Terminal.Wsl"
        }
    ]
},
Assets 3
You can’t perform that action at this time.