Windows Terminal Preview v1.1.1671.0
Pre-release
Pre-release
·
26 commits
to release-1.1
since this release
Preview has finally diverged from Stable! Rejoice!
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.
- However, due to a bug that's fixed in insider builds you can't do that from the "background" of that directory... (#6415)
- We've added a context menu that will appear when you right-click a tab!
- 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.
openSettingslearned a new argument,target(per-binding, enum"defaultsFile","settingsFile") (#6299)targetdefaults tosettingsFile- We've added a new default binding (finally) to open the defaults: Ctrl+Alt+,
- You can now opt in to automatic startup with the
startOnUserLoginsetting (global, boolean, defaultfalse) (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.
- The first time you toggle this to
launchModenow 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
altGrAliasingsetting (profile, boolean, defaulttrue) (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
wtexecution alias)--fullscreenor--maximized(#6139) new-tabandsplit-panenow support--title(which predictably overrides the application title) (#6296)wtlearned the--versionargument (#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
DECANMand a great number of VT52 input encodings.
- We've added support for
- conhost now supports 31 VT character sets (up from 2) and the
DOCSsequence to switch to ISO-2022 mode (thanks @j4james!) (#4496)- There was also a persistent bug where tmux would occasionally
Shift In/Shift Outfor what appeared to be no reason, corrupting the display- Better support for character sets = better support for
SI/SO= no more tmux graphical corruption!
- Better support for character sets = better support for
- There was also a persistent bug where tmux would occasionally
- 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 nowWindows 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_INTENSITYor 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
ReadConsoleOutputAttributeand 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.
- It turns out that color conversion was utterly broken for
- 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)