Windows 10 949 Published by

Microsoft has released Windows Terminal Preview 1.1.1671.0.





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.

The Terminal will also need to meet our goals and measures to ensure it remains fast and efficient, and doesn't consume vast amounts of memory or power.

Features

  • Terminal can now pass raw modifier keys and other raw Windows input through to the connected application (#6309), bug fixes (#6431) (#6442) (#6461) (#6516) (#6517)
    • This enables a number of PSReadline key bindings and the modifier-hold behavior of FAR Manager, ZTreeWin, and tens of other applications that were using traditional Win32 input records.
    • COMPATIBILITY We have specified and implemented a new optional terminal input mode (specification)
      • Terminal emulators on Windows (VSCode, PuTTY, ...) can implement the feature as specified and produce full-fidelity Win32 input messages
      • Terminals that do not do so will not be impacted and should continue to function as normal.
  • You can now right-click on a directory and choose "Open Windows Terminal here"! (#6100)
    • However, due to a bug that's fixed in insider builds you can't do that from the "background" of that directory... (#6415)
      • We're hoping that once this bug fix is tested, we can get it out in earlier versions of Windows.
  • We've added a context menu that will appear when you right-click a tab!
    • You can now assign a color to a tab (thanks @gbaychev!) (#3789)
    • Tabs can now be renamed! (#5775)
      • Tab names override application titles and will be durable until cleared or closed.
  • You can now open a split pane from the menu by holding down Alt when you click it (#5928)

Settings

  • You can now specify the default profile by name (!) (#5706)
    • With this change, you no longer need to visit the GUID recycler to make a new profile. GUIDs are (pretty much) an implementation detail.
  • Terminal will no longer complain if you leave trailing commas in your "JSON" settings (#6312)
    • What even is JSON anymore?
    • Yes, we perhaps chose a poor configuration format given that we expected users to have to hand-edit it.
  • openSettings learned a new argument, target (per-binding, enum "defaultsFile", "settingsFile") (#6299)
    • target defaults to settingsFile
    • We've added a new default binding (finally) to open the defaults: Ctrl+Alt+,
  • You can now opt in to automatic startup with the startOnUserLogin setting (global, boolean, default false) (thanks @jelster!) (#4908)
    • The first time you toggle this to true, Terminal will ask again for your permission to become a startup task
    • If you're one of the 0% of people running terminal unpackaged, this won't work for you.
  • launchMode now supports "fullscreen" (#6060)
  • We've added support for a new tabWidthMode, "compact" (#5787)
    • When compact sizing is enabled, only the focused tab will display its title.
  • AltGr/Ctrl+Alt aliasing can now be toggled with the altGrAliasing setting (profile, boolean, default true) (thanks @lhecker!) (#6212)
    • We learned that while some people want Ctrl+Alt to act like AltGr, others don't. If you're one of the ones that doesn't: rejoice!
  • We now support fontWeight (profile, integer or enum, default "medium"/400) (#6048)

Command-line invocation, wt.exe

  • Terminal can now be launched (through the wt execution alias) --fullscreen or --maximized (#6139)
  • new-tab and split-pane now support --title (which predictably overrides the application title) (#6296)
  • wt learned the --version argument (#5501)

Terminal Basics

  • conhost (and therefore, to an extent, Terminal) is now a more faithful VT52 emulator (thanks @j4james!) (#4789)
    • We've added support for DECANM and a great number of VT52 input encodings.
  • conhost now supports 31 VT character sets (up from 2) and the DOCS sequence to switch to ISO-2022 mode (thanks @j4james!) (#4496)
    • There was also a persistent bug where tmux would occasionally Shift In/Shift Out for what appeared to be no reason, corrupting the display
      • Better support for character sets = better support for SI/SO = no more tmux graphical corruption!
  • You can now drag and drop snippets of text onto the Terminal and it'll do roughly what you'd expect (#5865)

Changes

UI

  • Right-clicking the negative space between the tabs and the caption buttons will now open the system menu (#6443)
  • Windows Terminal (Preview) is now Windows Terminal Preview ¯\_(ツ)_/¯ (#6418)

Internal/VT/Conhost

  • We've changed the internal representation for 256-color text (thanks @j4james!) (#5834)
    • COMPATIBILITY It is no longer possible to combine VT and the legacy console API to "brighten" text.
    • If you're going to brighten dark colors, do it with FOREGROUND_INTENSITY or go full-VT.
  • Color conversions (24-bit/256->16) are now more efficient but do not take into account the active palette (thanks @j4james!) (#6358)
    • It turns out that color conversion was utterly broken for ReadConsoleOutputAttribute and nobody ever noticed, but that's also fixed now too. I expect that of the 0 people who noticed it was broken, 100% of them will rejoice that it's been fixed.
  • The dispatching of SGR sequences has been improved (thanks @j4james!) (#5758)
  • Internal work is underway to support a "command palette" (#6351)

Bug Fixes

  • The cursor will no longer obscure text, unless that text is the same color as the cursor (#6337)
    • Known issue: underlines are now drawn on top of the cursor. Follow #6499 for updates.
  • Text copied from the File Explorer's "Copy Address" option will now be pasteable (thanks @aldahick!) (#6146)
  • Win32-OpenSSH 7.7 is here to stay, so we decided to fix the issue that allowed it to break mouse input (#6485)
  • All tabs will now be created with a title so they stop looking so empty and vengeful (thanks @greg904!) (#6433)
  • The keen-eyed among you may have noticed that the 6x6x6 xterm color cube was totally horked. Thanks to @j4james, this egregious sin has been corrected (#5999)
  • Maximized terminal windows will finally put their tab strips right at the top of the screen. Unrelatedly, Paul Fitts called to let us know about this one weird law (#5881)
  • The maximize/restore button now more accurately tracks the state of the window (#5988)
  • Some of you thought it would be a good idea to close a tab while dragging it around. I couldn't figure out why you wanted to do that, but it will at least now not do something strange... (#5883)
  • Every time the window was resized, we'd lose track of another GDI handle. Now, we don't (#6229)
  • Our caption buttons now fade like everyone else's when you hover over them (thanks @AnuthaDev!) (#6303)

Performance

I'm going to let these changelog entries speak for themselves, as they've done the problem better justice than I could:

  • (@skyline75489) "Skip glyph shaping analysis when the entire text is simple" (#6206)
  • (@greg904) "Add fast path to til::bitmap::translate using bitshifts" (#6493) (#6501)
  • (@greg904) "Reduce latency with DXGI 1.3 GetFrameLatencyWaitableObject" (#6435)
  • (@greg904) "Throttle scrollbar updates in TermControl to ~one per 8ms" (#4608)
  • "Improve perf by avoiding vector reallocation in renderer clusters and VT output graphics options" (#6420)

Bug Fixes in conhost

A number of bugs were fixed in the traditional Windows Console Host--you won't see them in Terminal, but they'll be coming soon to a Windows Insider Build near you.

  • Cursor visibility will be restored when you're done with your IME (thanks @j4james!) (#6207)
  • The IME will no longer draw lines (underlines, overlines, leftlines, etc.) incorrectly (#6223)
  • If you launch conhost through a shortcut without an icon, we'll now go digging to find one for you (thanks @malxau!) (#6277)
Winterminal

Download Windows Terminal Preview v1.1.1671.0