Microsoft 11787 Published by

Windows Terminal Preview v1.22.2362.0 has been released. The update improves throughput, reliability, correctness, and allows applications to send unmodified VT directly to the terminal. Terminals supporting DEC rectangular operations should see higher fidelity app-based scrolling. Unicode now supports a wider range of characters, including Emoji with ZWJ and Grapheme Clusters. 



Windows Terminal Preview v1.22.2362.0

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! :microphone:🫳 ( #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 and DECFRA should see higher fidelity app-based scrolling ( #17747)
  • 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 using wcwidth, or with Grapheme Clusters like Contour and other modern terminal emulators. Global setting compatibility.textMeasurement (enum consolewcswidthgraphemes (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 and sendInput: foo and quit directly to the New Tab dropdown menu! ( #17281)
  • You can now open a pane containing snippets (any sendInput actions!) with the openSnippets action! You can quickly access any commands you've saved in your JSON file, or with the new x-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)
  • 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 and WriteConsoleOutput 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, default false) ( #17416)
  • 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 and SGR 40 when emitted by powershell.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 (enum lightdarksystem; default: system) ( #16479) (thanks  @bundgaard!)

VT Features

  • You can now configure the "Answerback" message sent in response to ENQ using the profile setting answerbackMessage (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 and PPB, as well as DECPCCM (page cursor coupling mode) and DECRQDE (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 using DECRQSS (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-height DECDHL 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 and ExpandToEnclosingUnit 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
  • Microsoft.WindowsTerminalPreview_1.22.2362.0_arm64.zip
    • SHA256 8F3A10ED10980379277127037FB4A66F40E1A113EDF83991B6FF7B2D24613BA5
  • Microsoft.WindowsTerminalPreview_1.22.2362.0_x64.zip
    • SHA256 6EA8DAF670A28DD43823079617E2054A9A5F4411D0B7025C637B6C6276621D81
  • Microsoft.WindowsTerminalPreview_1.22.2362.0_x86.zip
    • SHA256 AB59CFB83E645012733B13BF9C155C7F29D70E3DE75886D46F1CFAF64E90E915

Release Windows Terminal Preview v1.22.2362.0 · microsoft/terminal