Microsoft 11787 Published by

A new preview release of Windows Terminal is now available.



Windows Terminal Preview v1.19.2682.0

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 defaulthiddenmonochrome; 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 DECICDECDCDECBI 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:B48:...) ( #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! :crossed_fingers:) ( #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.



Release Windows Terminal Preview v1.19.2682.0 · microsoft/terminal