Software 42346 Published by

A new preview version of Windows Terminal is now available for testing.





Windows Terminal is a new, modern, feature-rich, productive terminal application for command-line users. It includes many of the features most frequently requested by the Windows command-line community including support for tabs, rich text, globalization, configurability, theming & styling, and more.

Features

  • We're trying out a new tab switching experience! (#6732), followups: (#7263) (#7280) (#7321)
    • The nextTab and prevTab bindings will now display an ephemeral UI that can be navigated with the mouse or keyboard
    • If you would like to fall back to the original tab-switching UI (or lack thereof), set new useTabSwitcher (global, boolean, default true) to false.
      • We'd love feedback on why the new tab switcher didn't work for you!
  • Building on the infrastructure from the tab switcher, we're also flighting support for a new tab search/jump experience
    • Bind the "tabSearch" action ({"command": "tabSearch", "keys": ...}) to open up a filterable list of open tabs!
  • The "command palette" introduced in 1.2 is now bound to Ctrl+Shift+P by default (#7384)
    • It has gained support for nested/repeated commands (#7299) (#6856) that can iterate over profiles and color schemes (#7329)
    • We've shipped a couple convenience commands, like "set color scheme to ..." and "open split pane with ... in direction ..." (#7348)
    • By starting your command with >, you can enter "commandline" mode and run any wt startup script, like > new-tab ; split-pane (#7293)
    • It now has support for command icons! (#7368)
  • We've added support for a new action, wt, that lets you run any WT commandline in your current session (#6537)
    • Example: { "command": { "action": "wt", "commandline": "split-pane -p Ubuntu; new-tab; split-pane" }, "keys": ... }
  • We've added a new action, sendInput, that can emit text directly into the terminal (thanks @lhecker!) (#7249)
    • Example: you can bind a so that it sends the VT sequence for "up arrow"
    • { "command": { "action": "sendInput", "input": "\u001B[A" }, "keys": "a" }
  • You can now zoom one pane to temporarily take up the entire terminal with the togglePaneZoom action! (#6989) (#7273)
  • You can now override the active color of the terminal using the setColorScheme action (#6993)
  • A profile can now specify its default tabColor (profile setting, hex color, default unset) (#7162)
  • Two actions have been added, closeOtherTabs and closeTabsAfter, to facilitate better tab management (#7176)
  • The copyFormatting option and the copy.copyFormatting action argument have been taught finer-grained control
    over the copied formats (#6004)
    • You can now specify an array of formats, [ "rtf", "html" ], a string "html", "all", or a boolean to indicate
      which formats to copy. true maps to all and false maps to none.

Changes

  • Windows Terminal 1.3 ships with Cascadia Code v2008.25
  • The bindings keyword in settings has been replaced with actions in preparation for improvements to the action
    binding experience (#7332)
  • All processes spawned under Terminal will be given a fresh new environment block (#7243)
    • :warning: WARNING This may break some workflows, as environment variables from without Terminal will no longer be
      inherited. If you have a broken workflow, please reach out.
  • Terminal is now a little more strict about parsing your settings (#6590), but it will now actually tell you why
    something couldn't be understood (#7241)
  • Key bindings can now use the app or menu key (thanks @MichelleTanPY!) (#7328)

UI

  • Clicking in the scrollbar track will now jump up/down by a whole screenful (#7385)
  • The color picker is now more visually consistent, having learned to round its buttons (thanks @MichelleTanPY!) (#7305)

Terminal Basics

  • We now have very basic support for DCS sequences (thanks @skyline75489!) (#6328)
    • Even if we can't support sixels, the least we could do is not dump their raw data to the screen!
      • If you really wanted their raw data dumped to the screen, why??
  • Underlines are now rendered consistent with the font's metrics (thanks @j4james!) (#7148)
  • We now have support for SGR 21, doubly-underlined (thanks @j4james!) (#7223)
  • We now have support for SGR 9, crossed out (thanks @j4james!) (#7143)
  • Our underline/strikethrough renderer has been refactored to be easier to work with (thanks @j4james!) (#7107)
  • Our VT parser has been refactored to be easier to work with (thanks @j4james!) (#7304)
  • Scroll locking should now work more reliably when the scrollback is at maximum length (#7247)

Bug Fixes

  • The command palette now has a gutter so that it stops overlapping the scrollbar (thanks @jtippet!) (#6965)
  • F7 will no longer not work after our "null scancode" change (whoops!) (#7298)
  • altGrAliasing: false will no longer actually break AltGr (thanks @lhecker!) (#7400)
  • Profiles whose indices are greater than 9 will now properly display their shortcuts in the menu (thanks
    @MichelleTanPY!) (#7344)

Performance

  • Miscellaneous performance improvements for handling incoming data:
    • "Set memory order on slow atomics" (#6920)
    • "Commit attr runs less frequently by accumulating length of color run" (#6919)
    • "Skip DX invalidation if we've already scrolled an entire screen worth of height" (#6922)
Winterminal

Windows Terminal Preview v1.3.2382.0