Skip to content

Windows Terminal Preview v1.19.2682.0

Pre-release
Pre-release
Compare
Choose a tag to compare
@DHowett DHowett released this 26 Sep 19:04
· 672 commits to main since this release

It's finally here: Windows Terminal Preview 1.19! We've been heads-down, working on a new input buffer, new output buffer, shell suggestions, and a bunch of other stuff that we're excited to finally release.

Buckle up! This release might be a little more Preview than you've come to expect . . . but that's the fun of the preview channel!

Why are there so many packages? How do I choose?

Please visit our page documenting the different Windows Terminal Distributions!

Features

  • We've added support for a new opt-in and shell-driven suggestions UI (#14938) (#15848)
    • The protocol for suggestions is not finalized, and will change before final release.
    • You can find more information on the Experimental Shell Completion Menu wiki page
    • Suggestions can take into account...
      • ... the command you've already typed on the input line (#15027)
      • ... commands you have recently submitted (#14943)
      • ... any sendInput actions you have in your settings file, to be used as a sort of "snippet" (#15664)
  • The search box will now display a count of found results, and--if scrollbar marks are enabled--display graphical indicators for every match (#14045) (thanks @Don-Vito and @zadjii-msft!)
  • You can now enable broadcast mode via the Command Palette, which will broadcast input to all panes in a tab (#14393) (#15993)
  • You can now launch a profile via wt and keep its built-in command line with the --appendCommandLine flag (#15822) (thanks @hanpuliu-charles!)
    • For example, if your PowerShell profile specifies pwsh.exe, you can run wt --appendCommandLine -p PowerShell -- -Command echo Hello, which will run pwsh.exe -Command echo Hello. That's a lot of dashes. Wow.
  • You can now search the web with your selected text via... (#15539) (thanks @mpela81!)
    • ...the experimental right-click context menu!
    • ...the searchWeb action!
      • You can customize each action to launch any search engine by specifying the queryUrl. %s will be replaced with your query.
    • You can customize the default search engine for both of these by specifying the global setting searchWebDefaultQueryUrl. %s will be replaced with your query.
  • If you have shell integration enabled, you can enable using the mouse to reposition the text cursor (#15758)
    • {profile}.experimental.repositionCursorWithMouse (the dot is part of the name, sorry) (boolean, default false)

Theming and Scheming

  • You can now set the window border color on Windows 11 via the {theme}.window.frame and {theme}.window.unfocusedFrame color entries (#15441)
    • For more fun, you can set {theme}.window's experimental.rainbowFrame to true 🙂
  • You can now (finally!) enable support for using the acrylic material in an unfocused window (#15923) (#15944) (thanks @Jaswir!)
    • Set useAcrylic to true in {profile}.unfocusedAppearance
    • You can turn unfocused acrylic off globally with the global setting compatibility.enableUnfocusedAcrylic (boolean, default false)
  • Themes can now indicate whether tab icons should be shown in color or monochrome or hidden entirely (#15948) (thanks @bundgaard!)
    • Set {theme}.tab.iconStyle (enum default, hidden, monochrome; default default (default))

Changes

  • wt -- foo will once again inherit the environment from its parent (#15897)
    • You can customize this behavior with wt --inheritEnvironment or wt --reloadEnvironment on a per-tab/per-pane basis.
    • You can also override this behavior with the profile setting {profile}.compatibility.reloadEnvironmentVariables (boolean, default true)
  • We have rewritten "cooked read", the input line used by Command Prompt, Python, and a whole host of other applications (#15930) (#15780) (#15782) (#15783) (#15880)
    • This includes changes to command history, popups (F7 and the like), and how input is echoed to the display.
    • This may have a wide-ranging impact, so please file any unexpected input issues in Win32 applications!
  • Input event record handling has been rewritten to support wide encodings like UTF-8, to be more maintainable, and to be much simpler to read (#15671) (#15606) (#15605) (#15611) (#15673) (#15672)
  • Console applications can now more reliably print characters composed of surrogate pairs (aka "We've been trying to reach you about your WriteCharsLegacy's extended Emoji support") (#15567)
  • We've added an action that opens the about dialog (openAbout) (#15990)
  • conhost will now ignore key events with an invalid virtual keycode and a scan code of 0 (such as those emitted by strange software keyboards) (#15753) (thanks @tusharsnx!)
  • We will no longer generate WINDOW_BUFFER_SIZE_EVENT when the viewport moves, confusing applications that translate it into a destructive operation (#15935)
  • You can now configure any copy action to dismiss or keep the selection after it runs (dismissSelection, boolean, default true) (#15552) (thanks @gonzalo-garcian!)
  • The text buffer has been reorganized to be (1) faster (2) smaller (3) harder, better, etc.
    • Rows are initialized lazily in chunks of 128 or so; we no longer spend memory on blank space you'll never see (#15524) (#15582)
    • Reading, writing, initialization, etc. has been cleaned up and vectorized (#15501) (#15498) with fast passes and other optimizations (#15499) (#15879) (#15541) (#15497)
    • We've rewritten resize with reflow so it's like a billion times faster and more correct (#15701)
      • If you see any issues when resizing (other than "bash prints the prompt 600 times every frame" (that's apparently just how bash works)), please file them!
  • We no longer load the Settings editor library on launch, saving you tens of kilobytes of memory (#15628) (#15631)
  • We will now display an indicator in the tab of any disconnected/closed/crashed application. You can right-click the tab to restart it! (#15760) (thanks @mpela81!)
  • You can now run profiles as Admin from the new tab menu by right-clicking them (#15679) (thanks @jamespack!)
  • The profile preview in settings now shows you what a "powerline" font will look like when one is selected (#15365)
  • We actually did fix the homoglyph thing this time; hovering a URL that is pretending to be someone else through funny characters will see right through it (#15488)
  • You can now right-click a tab and move it to a new window (#15376) (thanks @Jaswir!)
  • All text search now uses ICU, and is like blazing fast. URL detection, Search, everything is covered! (#15858) (#15998) (#15892)
  • For those of you debugging Terminal/the console with ETW, you can now group all API calls by originating process (#15737)
  • Also for debugging purposes, you can now add the debugTerminalCwd action to display a pop-up with Terminal's current "virtual" working directory (#15282)
  • If you are using Preview, Canary or Dev we will now set an appropriate JSON $schema so you can auto-complete new settings (#15856)

VT

  • We now support Erase Color Mode (DECECM) (#15469) (thanks @j4james!)
  • The horizontal scrolling sequences DECIC, DECDC, DECBI and DECFI finally work! (#15368) (thanks @j4james!)
  • @tusharsnx put a lot of work into making ITU T.416 color sequences work! He...
    • ... added support for sub-parameters separated with : (#15648)
    • ... added support for ODA SGR sequences (38:2::R:G:B, 48:...) (#15729) (#15844)
  • We will now pass through kitty's underline color (58:...) and style (4:...) sequences (we won't render them yet! but maybe soon! 🤞) (#15795) (thanks @tusharsnx!)

Bug Fixes

Accessibility

  • We've added automation property names to the 'Delete Color Scheme' button (#15994)
  • The key chord indicator in the command palette now has a background color (#15677) (thanks @RickleAndMortimer!)
  • Settings now groups elements in their containers for screen readers (#15756)
  • Screen reader users can now determine which color scheme is the current default (#15486)
  • Default Terminal and Color Scheme ComboBoxes no longer crop at 200% text scale (#15762)
  • Screen readers will now announce successful pane and tab moves (#15771)

VT and terminal emulation

  • Hard Reset (RIS) no longer disables Win32 input mode or focus event mode for pty clients (like Terminal) (#15476) (thanks @j4james!)
  • We no longer log traces or telemetry about aggregated VT sequence use (#15494) (thanks @j4james!)
    • We started to do this in ~2016 or so when we were trying to figure out what VT sequences applications were using. We're way beyond needing that now!
  • The Terminal will now enter mouse mode immediately when a Win32 console app enables it (among other output flushing changes! If you see any flickering in modern VT applications, let us know!) (#15991)
  • Scrollbar marks will now be cleared by clear (and friends) (#15686)

Usability and UI

  • We will no longer reload the settings as often when various OS knobs and switches change (#16004)
  • The tab right-click menu now remembers which terminal pane was active when it was invoked... (#15999)
  • You can once again restart the first pane in a split with Enter after it exits (#16001)
  • All actions now remember which pane originated them, so things like "export text" and "Move tab to new window" and "Duplicate" no longer summon one of the Old Ones (#15773)
  • The about dialog no longer tells you that you've got an update available to the same version you already have (#15378)
  • When the tab close button is disabled, it will no longer randomly reappear to taunt you (#15914)
  • Duplicated tabs now consider the existing configuration option for where to put tabs (#15972) (thanks @codecruisedor!)
  • The launch parameters (position, size) now properly support negative numbers (#15941) (thanks @codecruisedor!)

New Rendering Engine

  • We no longer leave cursors all over the place (#15904)
  • Fonts like JetBrains Mono that render their ligatures in reverse now appear in the right colors (#15810)
  • We no longer invalidate more of the screen than we need to (#15929)
  • It now works properly on Windows versions earlier than 10.0.14393.0 (#15485)
  • Font features and axes work once again! (#15912)
  • We no longer crash when trying to render to a 0x0 surface (#15615)
  • DRCS soft fonts that are invalid (or have disappeared, or were never enabled) no longer crash the Terminal (#15889)
  • Both rendering engines have been prepared for horizontal scrolling (???) (#15707)

Performance

  • Having thousands of scrollbar marks no longer causes thousands of dropped frames (#16006)
  • conhost: the GDI engine has reduced input latency (#15608)

Reliability

  • We no longer use the modern clipboard API, opting instead to use the much more reliable (and faster!) Win32 one (#15360)
  • We've refined the locking around a bunch of internal terminal control operations (#15894)
  • One infinite loop (async, so it never hung anything) has been stomped out (#15335)
  • Any active dialogs will be closed during close to avoid crashing during close (#15387)
  • We will no longer crash when checking for updates without a network (#16002)
  • If you're the one person who marks HKCU\Console as read-only, we won't crash during save for you (#15916)
  • Actions with an empty keys array no longer cause unexpected kinetic disassembly (#16003)
  • Duplicating elevate: true tabs has been fixed to not blast terminal off into space (#15548)
  • The backing console no longer hangs when resizing while scrolling (#15618)
  • Instead of leaking memory for each window on Windows 10, we'll cache old windows and recycle them as needed (#15424)
    • We introduced the leak to fix a crash in closing windows on Windows 10; this allows us to still leak the window but still be able to reclaim them.

Schema

  • No longer is there a multiple schema conflict on "colorScheme" (#15748) (thanks @brandondong!)

Miscellaneous

  • We've merged the WPF control's code into the UWP control's DLL (#15992)
    • This is the first step on the road to merging their functionality, too!
  • The WPF control now delay-loads UIAutomationCore.dll because it's incomplete in Windows RS1 (#15614)

[2] With additional thanks to @floh96, @daverayment, @ushuz, and @LitoMore for documentation updates and @tusharsnx,
[2] @Jvr2022, @Dan-Albrecht, @ebarnabas644, @jamespack for build system, project config, and compiler compatibility fixes.


Binary files inside the unpackaged distribution archive bear the version number 1.19.230925002-preview.

Asset Hashes

  • Microsoft.WindowsTerminalPreview_1.19.2682.0_8wekyb3d8bbwe.msixbundle
    • SHA256 7B57906D885F7E1AD45802B27089F0105DA586806AF50EF7967DF3973BFB31E8
  • Microsoft.WindowsTerminalPreview_1.19.2682.0_arm64.zip
    • SHA256 A73F198DC598204862903F06B2D1E06266F4A4004CF817305D65F9126FB18025
  • Microsoft.WindowsTerminalPreview_1.19.2682.0_x64.zip
    • SHA256 3BE7DC515AC755456EFB7C5898786F03907B5F6082691C2BF14F4B13A79661DF
  • Microsoft.WindowsTerminalPreview_1.19.2682.0_x86.zip
    • SHA256 20042BDB6611035096E755B7511C03E1E049F9176A2BE154A408C4478A4DD397