This is, perhaps, the largest release of Windows Terminal to date. I can't believe we're here, but we finally have support for Sixels and a new console hosting infrastructure (stay tuned for a NuGet package!) and more. Read up, and read down, to find out more.
Features
- Terminal and conhost now support Sixels! 🎤🫳 (#17421) (thanks @j4james!) (#17724) (thanks @j4james!) (#17581) (#17636)
- We have rewritten how hosted console applications are translated for Windows Terminal (and other ConPTY consumers) to be based on direct API->VT translation rather than "rendering" a point-in-time snapshot of the display. This should result in improved throughput, reliability, correctness, plus an ability for applications to send unmodified VT directly to the terminal, but may result in some compatibility issues. Please file any issues you encounter with console applications. (#17510) (#17645) (#17741) (#17757) (#17748) (#17442) (#17573)
- ... terminals which support DEC rectangular operations
DECCRA
andDECFRA
should see higher fidelity app-based scrolling (#17747)
- ... terminals which support DEC rectangular operations
- We now support a much wider range of Unicode, including Emoji with ZWJ, combining characters, flag sequences, and anything else that requires proper Grapheme Clusters! Applications can query support for grapheme clusters with
DECRPM
2027
, and users can now configure whether Unicode is measured like the vintage Windows Console, like Linux and macOS terminals usingwcwidth
, or with Grapheme Clusters like Contour and other modern terminal emulators. Global settingcompatibility.textMeasurement
(enumconsole
,wcswidth
,graphemes
(default)) (#16916) (#17443) - For the first time in decades, we've changed the popup UI (used for F7 and friends) in CMD! It now draws beneath the prompt (pushing the screen up) and has a modern TUI scrollbar if it doesn't all fit on the screen. (#17445) (#17668) (#17556)
- Terminal will now offer relevant packages from WinGet if you're running CMD on Windows 24H2 and run a nonexistent command (#16848) (#17614)
- You can now add actions like
splitPane
andsendInput: foo
andquit
directly to the New Tab dropdown menu! (#17281) - You can now open a pane containing snippets (any
sendInput
actions!) with theopenSnippets
action! You can quickly access any commands you've saved in your JSON file, or with the newx-save
command, and replay them with a new slick UI (#17330) (#17794) (#17528)- ... snippets which can also be loaded from a
.wt.json
file in your current working directory (we're still working on docs, please stay tuned!) (#17388) - ... snippets which can also be saved directly from the command line with
wt x-save "text to save"
(#16513) (thanks @e82eric!) with additional fixes (#17758)
- ... snippets which can also be loaded from a
- Ctrl+Shift+Period will now open the "quick actions" flyout, which contains snippets and suggestions. You can now also bind the
quickFix
action to open a menu containing only WinGet suggestions (as of today, on Windows 24H2) (#17502) - You can now search with regular expressions in Terminal (and conhost!) (#17316)
Changes
ReadConsoleOutput
andWriteConsoleOutput
will now handle out-of-bounds conditions as documented rather than as-made-up (#17567)- Actions now have their own IDs, and key bindings just point at them; we've made changes to how this works to improve the action and binding experience in future versions (#17162) (#17215)
- Command/input previews will now display in line with the cursor, in italic, in the right font (#17386) (#17777) (#17533)
- ... which you can display in RGB with the fun
{profile}.experimental.rainbowSuggestions
setting (boolean, defaultfalse
) (#17416)
- ... which you can display in RGB with the fun
- Commands displayed in the suggestions UI can now include descriptions (#17376)
- Multi-cell glyph inputs will no longer be assumed to consume two code units (#17680)
- Pixel shader authors rejoice! If your shader fails to compile, you'll now get a useful error message... (#17436) (thanks @blitzRahul!)
- Terminal will now no longer correct
SGR 37
andSGR 40
when emitted bypowershell.exe
; this may result in regions of incorrect colors (#17666) (#17685) (additional thanks @j4james for some cleanup!) - Vintage console applications will no longer get corrupted responses from ReadConsoleOutput when Raster Fonts are enabled (#17681)
- We have brought the new Windows 24H2 API out to the ConPTY NuGet package (#17704)
- We have enabled "automatically mark prompts" (for shell integration) by default (#17761)
- We're now collecting data on which settings and actions folks are using (#17718) (#17678)
- We're trying something new, which is putting a short version of these release notes on the Windows Store (#17730)
- We've changed the communication mechanism for the Default Terminal feature to allow the use of overlapped I/O (#17575)
- We've reintroduced support for Alt+Numpad input of extended off-keyboard characters (#17637) (#17774)
- When we reload a saved session, we will now display some of its contents on the screen (#17334)
UI
- We've rewritten how selection colors work! They will now be drawn with appropriate contrast, at the exact color you specify, with a foreground that is black or white (whichever is most visible!) (#17753) (#17725) (#17638) (#17676)
- The search box will no longer cover up search results in the top right (unless there's nowhere to scroll) (#17516) (thanks @e82eric!)
- Due to a build issue, we had to disable full optimization for this build. We apologize for any potential performance regressions. (#17765)
- Terminal now comes with shiny new icons for the Visual Studio Dev Shells (#17706)
- We have restored the
...
s in some command palette names to help users find them (#17715) - You can now configure the theme for the Settings UI separately from the application with
{theme}.settings.theme
(enumlight
,dark
,system
; default:system
) (#16479) (thanks @bundgaard!)
VT Features
- You can now configure the "Answerback" message sent in response to
ENQ
using the profile settinganswerbackMessage
(string, default:null
) (conhost users:HKCU\Console
AnswerbackMessage
REG_SZ
) (#17660) (thanks @j4james!) - We now support the DEC VT paging operations,
NP
PP
PPA
PPR
andPPB
, as well asDECPCCM
(page cursor coupling mode) andDECRQDE
(request displayed extent) (#16615) (#17353) (thanks @j4james!) - Applications can now request the entire color palette using
DECRQTSR
DECCTR
(CSI 1 ; Pt $ u
) (#17708) (thanks @j4james!) - Applications can now query the cursor shape set with
DECSCUSR
usingDECRQSS
(DCS $ q SP q ST
) (#17659) (thanks @j4james!) - Applications can now query the size of character cells (
CSI 16 t
) and the entire text area (CSI 14 t
), with a response measured in pixels (#17504) (thanks @j4james!) - Applications can now query the color palette with
OSC 4
?
, and the default foreground (OSC 10 ?
), background (OSC 11 ?
), cursor (OSC 12 ?
) and selection colors (OSC 17 ?
) (#17729) - Applications can now change the selection color using
OSC 17
(#17742) - Reports generated in response to VT requests are once again given priority over other input (#17786)
Bug Fixes
- We will no longer conveniently forget all the colors on the last line of the screen when you resize it (#17568)
- Terminal will now more reliably save your session when your computer reboots to update (#17714)
- Background colors will no longer bleed over the edges of the screen when D2D is in use (such as over RDP to a VM) (#17674)
- conhost: pasting a file from File Explorer will no longer result in two copies of the path (#17543)
- conhost: when we generate Alt+Numpad events to input clipboard contents on Windows, we will now no longer mistranslate CP936 text (#17635)
- Curly underlines will now render properly on double-width
DECDWL
and double-heightDECDHL
lines (#17679) - cursor invalidation once again works properly on double-width or double-height lines (#17234) (thanks @j4james!)
- cursor movement over ConPTY now works properly on double-width or double-height lines (#17233) (thanks @j4james!)
- The rendering of curly underlines has been improved (#17501) (thanks @smprather for reporting!) (#17508)
- The Suggestions UI will no longer try to grab the PowerShell "ghost text" out of your input line (#17781)
- You can no longer insert a
saveSnippet
action in your JSON or bind it to any keys (#17535) - You can now successfully input more than one Emoji at once on Windows 10 (#17213)
- You can once again cancel overwriting a key binding in the Settings UI (#17763)
- You can once again disable the detection of URLs (#17731)
- You can once again use Ctrl+D and Enter in a disconnected pane (#17750)
Accessibility
- Accessibility API
RangeFromPoint
andExpandToEnclosingUnit
will no longer cause Terminal to hang (#17695)
Performance
- Scrolling the screen will now result in less GPU traffic (due to erroneous invalidations) (#17583)
- Terminal now makes fewer copies (and heap allocations) when writing input to the console app; it's also more correct! (#17710)
- The command palette has lost some extraneous animations, so it should feel much faster (#17335)
Reliability
- AtlasEngine will no longer over-read a memory buffer when setting up a GPU texture (#17536)
- Closing a window when you have an
unfocusedAppearance
set will no longer result in unscheduled disassembly of your terminal (#17770) - Overall reliability should be improved by us having better exception handling (#17783)
- Session restoration now works more reliably when the entire scrollback is full (#17654)
- We've fixed an instance of Terminal crashing during settings reload (#17751)
- You can no longer trivially crash Terminal by holding down Enter while spawning new tabs (#17788)
VT Compatibility
- ConPTY: responses longer than 4kb will no longer be corrupted (#17738) (thanks @j4james!)
- VT mouse events will once again be generated when your mouse is off the top of the terminal window (and as a bonus, we'll no longer autoscroll!) (#17779)
Code Health
- Resize with reflow is, like, way faster in Debug builds (#17550)
- We added
reloadEnvironmentVariables
to our oft-forgotten JSON schema (#17696) - We've made some changes to the shell extension and elevation shim to make them easier to maintain (#15327)
- build: all of our open-source dependencies have been migrated to vcpkg (#15855)
- build: you can now launch Windows Terminal with F5 from Visual Studio (#17577)
- conpty: if your terminal fails to respond to
DSR
CPR
, we'll continue without it in 3 seconds (#17576) (#17574) - We've done some tidying on pane content to ensure that our implementations don't diverge (#17537)
- We've made some improvements to how we handle movement across rectangles for copy operations (#17143)
Binary files inside the unpackaged distribution archive bear the version number 1.22.240823002-preview
.
Asset Hashes
- Microsoft.WindowsTerminalPreview_1.22.2362.0_8wekyb3d8bbwe.msixbundle
- SHA256
E00B06D4197E6002E9B92A076044F12B105956ABAF9DE058D9B3DF021B8A18B4
- SHA256
- Microsoft.WindowsTerminalPreview_1.22.2362.0_arm64.zip
- SHA256
8F3A10ED10980379277127037FB4A66F40E1A113EDF83991B6FF7B2D24613BA5
- SHA256
- Microsoft.WindowsTerminalPreview_1.22.2362.0_x64.zip
- SHA256
6EA8DAF670A28DD43823079617E2054A9A5F4411D0B7025C637B6C6276621D81
- SHA256
- Microsoft.WindowsTerminalPreview_1.22.2362.0_x86.zip
- SHA256
AB59CFB83E645012733B13BF9C155C7F29D70E3DE75886D46F1CFAF64E90E915
- SHA256