Releases: microsoft/terminal
Windows Terminal v1.2.2381.0
This release brings all of the preview changes in Windows Terminal 1.2 to the stable channel.
A preinstallation kit is available for system integrators and OEMs interested in prepackaging Windows Terminal with a Windows image. More information is available in the DISM documentation on preinstallation. Users who do not intend to preinstall Windows Terminal should continue using the msixbundle distribution.
Please see the following release notes for additional details:
We've also backported the following changes from Windows Terminal Preview v1.3.2382.0:
- Windows Terminal 1.2 ships with Cascadia Code v2008.25
- 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) - Key bindings can now use the
app
ormenu
key (thanks @MichelleTanPY!) (#7328) - The color picker is now more visually consistent, having learned to round its buttons (thanks @MichelleTanPY!) (#7305)
- Scroll locking should now work more reliably when the scrollback is at maximum length (#7247)
- The
bindings
keyword in settings has been replaced withactions
in preparation for improvements to the action
binding experience (#7332)
Windows Terminal Preview v1.2.2234.0
This is a servicing release for Windows Terminal's preview channel.
Bug Fixes
- Window title changes were not always reflected to the ... window. Now they are. (#7119)
- OSC
12
(set cursor color) once again works (#7123) - The new tab button can now be coupled with Alt to open a split pane with the default profile (#7117)
- Key events without a scancode, the likes of which are predominantly generated by software or keyboards with dead keys, no longer result in spurious input (thanks @lhecker!) (#7145)
- There have been some minor improvements in the way that we render RTL text (thanks @schorrm!) (#7190)
- Some of you like to use arrow keys instead of H, J, K and L, so we made sure that they are properly sent to applications in W32 mode (#7106)
- When you're connected to a mouse mode application, drags that exit the window will still generate release events properly (#7166)
- We've fixed an unfortunate crash on launch caused by @DHowett and his meddling in profile resolution (#7237)
Windows Terminal v1.1.2233.0
This is a small servicing release for Windows Terminal's stable channel.
As is custom for all stable channel releases after v1.1, a preinstallation kit is available for system integrators and OEMs interested in prepackaging Windows Terminal with a Windows image. More information is available in the DISM documentation on preinstallation. Users who do not intend to preinstall Windows Terminal should continue using the msixbundle distribution.
Bug Fixes
- Some of you like to use arrow keys instead of H, J, K and L, so we made sure that they are properly sent to applications in W32 mode (#7106)
- When you're connected to a mouse mode application, drags that exit the window will still generate release events properly (#7166)
- We've fixed an unfortunate crash on launch caused by @DHowett and his meddling in profile resolution (#7237)
Windows Terminal Preview v1.2.2022.0
Features
- We're flighting very early support for a "command palette", which will provide quick access to every Terminal feature (#6635)
- If you bind
commandPalette
(I recommend Ctrl+Shift+P), you can open a filterable list
of every action Terminal can perform. - This is a great way to find "focus mode" and "always on top" mode! (see below)
- If you bind
- We've added two window management features, "focus mode" and "always on top" (#6804) (#6903)
- Focus mode removes the tab bar and caption buttons, and always on top mode always-on-tops the window.
- Right now, they're accessible via the
toggleFocusMode
andtoggleAlwaysOnTop
action bindings. They are not bound to keys by default.
- Terminal has learned to pop up warning dialogs about clipboard content (thanks @greg904!) (#6631)
- Pasting content over 5 KiB in length will result in a confirmation dialog.
- This can be disabled with the global setting
largePasteWarning
(boolean, defaulttrue
)
- This can be disabled with the global setting
- Pasting content that contains newline characters will result in a confirmation dialog.
- This can be disabled with the global setting
multiLinePasteWarning
(boolean, defaulttrue
)
- This can be disabled with the global setting
- Pasting content over 5 KiB in length will result in a confirmation dialog.
- There is a handful of new action bindings, none of which are bound by default:
- This version of Windows Terminal ships with Cascadia Code 2007.15.
Changes
- The
rowsToScroll
setting has been removed (#6891).- It was added to work around precision touchpad scrolling issues, which we fixed correctly before 1.0
- Terminal will now follow the system's "lines to scroll" setting.
- In addition, it will no longer scroll backwards when the system setting is set to "one page at a time"
- The terminal will no longer jump to the bottom when you're scrolled up or when you have a selection (#6062)
- Holding down Shift while clicking has always expanded your selection. Now, however, you can take it two or three steps further by holding down Shift and double- or triple-clicking (#6322)
- You can now double-click a tab to rename it (thanks @greg904!) (#6628)
wt
will now accept shorthandnt
,sp
,ft
versions ofnew-tab
,split-pane
, andfocus-tab
on the commandline (#6576)- Our window borders will now always be unobtrusive, even when your system theme is light (thanks @greg904!) (#6624)
- The Solarized color schemes have been updated to fix "bright black" and "normal black" having been swapped (thanks @M-Pixel!) (#6985).
- PowerShell's PSReadline prefers bright black to render command parameters, which rendered (!) them totally unreadable on Solarized Dark
- We can now hot reload a bunch of renderer settings like the experimental retro terminal effect and the software rendering flag (#6551)
UI
- Thanks to @jtippet, Terminal's UI is now fives of times more accessible in high contrast mode (#6833) (#6910)
- This includes beautiful new icons () (#6915)
- Thanks again to @jtippet, our "new tab" button now looks much closer to the rest of the tab strip in shape and color (#6766) (#6812)
- You can now start selections from the padding area (#6343)
Terminal Basics
- Color representation has been significantly improved (thanks @j4james!)
- In the old days (read: before 1.2), Terminal would try to map colors coming out of applications to their
nearest paletted color index. This was inherently lossy. - The pseudoconsole will now forward colors and styles emitted by applications with higher fidelity (#6506)
- We've added heuristic detection for applications using the traditional Win32 console API to set "defaulted" background/foreground colors (#6698)
- PowerShell in particular required additional workarounds (#6810) (PowerShell/PSReadline#1626)
- This required us to break and then somewhat fix DECSCNM (full screen inversion) (#6809)
- In the old days (read: before 1.2), Terminal would try to map colors coming out of applications to their
- We can now render additional graphical attributes (thanks @j4james!)
- SGR
4
, "faint" (#6873)- Faint text will be rendered at roughly half intensity.
- SGR
8
, "concealed" (#6907)- Concealed text will not be visible, but it will be copyable to the clipboard and read out by screen readers.
- SGR
53
, "overline" (#6754)- It's like an underline, but not so much "under" as "over".
- Care about SGRs a lot? Follow #6879 for yet more SGRs.
- SGR
- Commandline applications can now put text on the clipboard using OSC 52 (thanks @uzxmx!) (#5823)
- Terminal (and conhost) will now be able to answer queries for further device attributes (DA2, DA3) (thanks @j4james!) (#6850)
Bug Fixes
- You can now run
wt
as an Administrator from the Run dialog with Ctrl+Shift+Enter (#6860)- This is a workaround for MSFT:25907286.
- This change also fixes the issue where running
wt
from powershell would render your existing session inoperable.- App execution aliases aren't real executables, so they've got all sorts of fun caveats!
- Precision touchpads have been reined in and will no longer dispatch untold many VT mouse events on scroll (#6843)
- The hard reset sequence will now properly result in the entire terminal being reset (thanks @j4james!) (#6763)
- Terminal should no longer crash when you read its contents with Narrator's "scan mode" (#6447)
Performance
- We've made a good number of behind-the-scenes performance improvements:
- "Improved ATTR_ROW::ReplaceAttrs performance" (thanks @lhecker!) (#6573)
- "Improve
bitmap::_calculateArea
performance" (thanks @lhecker!) (#6572) - "Recycle assorted rendering components to accelerate drawing" (#6483)
- "Restore simple text runs, correct for crashes" (#6695)
- "Avoid copying the bitmap on the way into the tracing function" (#6839)
- "Cache VT buffer line string to avoid (de)alloc on every paint" (#6840)
- "Cache the size viewport structure inside TextBuffer" (#6841)
- "Cache the viewport to make invalidation faster" (#6918)
Windows Terminal v1.1.2021.0
This release brings all of the preview changes in Windows Terminal 1.1 to the stable channel.
A preinstallation kit is available for system integrators and OEMs interested in prepackaging Windows Terminal with a Windows image. More information is available in the DISM documentation on preinstallation. Users who do not intend to preinstall Windows Terminal should continue using the msixbundle distribution.
Please see the following release notes for additional details:
We've also backported the following bug fixes from Windows Terminal Preview v1.2.2022.0:
- Scrolling inside a mouse-enabled application should now be 98% less wild when you use a precision touchpad (#6843)
- Terminal should no longer crash when you read its contents with Narrator's "scan mode" (#6447)
- You may now double-click a tab to rename it (thanks @greg904!) (#6628)
- The buttons in the tab color picker now have tooltips (thanks @garciaolais!) (#6498)
- A hard reset will now fully reset the terminal instead of failing out halfway through (thanks @j4james!) (#6763)
- The shapes and colors of the new tab button have been updated to better match the rest of the OS (thanks @jtippet!) (#6766) (#6812)
- Terminal now ships with high contrast icons (thanks @jtippet!) (#6915)
- We've improved the performance of rendering by reducing unnecessary copies (thanks C++!) (#6839)
- The Solarized color schemes have been updated to fix "bright black" and "normal black" having been swapped (thanks @M-Pixel!) (#6985).
- PowerShell's PSReadline prefers bright black to render command parameters, which rendered (!) them totally unreadable on Solarized Dark.
- This version of Windows Terminal ships with Cascadia Code v2007.15 (#6958)
Windows Terminal Preview v1.1.1812.0
This is a small servicing update to the Windows Terminal Preview release train.
Windows Terminal Preview now ships with Cascadia Code 2007.01. This version offers a variable weight axis ranging from ExtraLight (200) to Bold (700) as well as some metrics tweaks and ligature fixes.
Bug Fixes
- Compact tab sizing should now work more reliably (and not only apply to tabs that were open when you first switched into compact mode. oops!) (#6670)
- We've reverted a glyph shaping-related performance improvement that caused a bunch of applications to look downright strange (#6665)
- Terminal will no longer rely on
PATH
lookup forcmd
andpowershell
. They ship as part of Windows, so we should know exactly where they are. (#6684)
Windows Terminal v1.0.1811.0
This is the first servicing release to the Windows Terminal stable release train.
Each of these is a backport from the preview train (v1.1). Thanks for selfhosting the preview and helping us determine what to backport!
Windows Terminal now ships with Cascadia Code 2007.01. This version offers a variable weight axis ranging from ExtraLight (200) to Bold (700) as well as some metrics tweaks and ligature fixes.
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.
- Win32-OpenSSH 7.7 is here to stay, so we decided to fix the issue that allowed it to break mouse input (#6485)
- Our caption buttons now fade like everyone else's when you hover over them (thanks @AnuthaDev!) (#6303)
- Text copied from the File Explorer's "Copy Address" option will now be pasteable (thanks @aldahick!) (#6146)
- Every time the window was resized, we'd lose track of another GDI handle. Now, we don't (#6229)
- 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)
- Right-clicking the negative space between the tabs and the caption buttons will now open the system menu (#6443)
- 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)
- You can now drag and drop snippets of text onto the Terminal and it'll do roughly what you'd expect (#5865)
- 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)
- Terminal will no longer rely on
PATH
lookup forcmd
andpowershell
. They ship as part of Windows, so we should know exactly where they are. (#6684)
Performance
Windows Terminal Preview v1.1.1671.0
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.
openSettings
learned a new argument,target
(per-binding, enum"defaultsFile"
,"settingsFile"
) (#6299)target
defaults 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
startOnUserLogin
setting (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
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, 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
wt
execution alias)--fullscreen
or--maximized
(#6139) new-tab
andsplit-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.
- We've added support for
- 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!
- 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_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.
- 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)
Windows Terminal v1.0.1401.0
Changes
- Windows Terminal now ships with Cascadia Code 2005.15.
- All emoji are now sized as recommended by Unicode 13.0. You will see some emoji that are smaller than you want them to be. That's just a fact of life. (#5934)
- Documentation for Windows Terminal has moved to docs.microsoft.com!
- Existing user documentation in this repository will be moving to a nice farm upstate in short order.
It will not escape your notice that there are two packages in this release:
WindowsTerminal
is the stable build of Terminal.WindowsTerminalPreview
is the preview version, which can be installed side-by-side with the stable version.
Windows Terminal Release Candidate v0.11.1333.0 (1.0rc2)
Changes
- Some of you reported that text would literally melt, so we added two new rendering options to help congeal your terminal experience (#5853)
- You can use the following (global!) settings to control various aspects of our rendering engine:
experimental.rendering.software
(boolean): when your graphics drivers won't stay in their lane, you can opt in for software rendering.experimental.rendering.forceFullPaint
(boolean): you can turn off the differential drawing optimization that we added--at the cost of speed, you can have full determinism.
- You can use the following (global!) settings to control various aspects of our rendering engine:
- We're now shipping the latest version of Cascadia Code (and Cascadia Mono), 2004.30 (#5867)
Bug Fixes
Terminal Competence
git log
(and other paged applications) should now copy with their lines wrapped (#5771) (#5870)- We should no longer leave old search result highlights laying around for you to step on like a small plastic block toy in the dark (#5798)
CSI 2 J
(the non-destructive "clear screen") will now correctly push the screen into the scrollback (#5683)
Rendering
- Box and line drawing glyphs now appear at the right sizes (and actually connect with each other) (#5743)
- This works in almost all fonts, but ones that do not actually have glyphs for that range will still have some unusual visual artifacting.
- Hundreds of emoji should now appear to be the correct width (#5795)
- A special exception was made for characters in WGL4, the old codepage 437 glyphs everybody knows and loves and also hates. They're still narrow.
Reliability
- Dragging a selection while resizing the terminal is not a reasonable thing to do, but it was even less reasonable for us to crash when you did so. We now don't. (#5855)
- We'll no longer crash when the clipboard gives us the classic "high five! too slow!" (#5856)
- Terminal is now more robust in the face of you trying to close the same tab multiple times (#5742)
- Closing a tab in fullscreen mode will no longer cause terminal to stop responding (#5809)