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 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 runwt --appendCommandLine -p PowerShell -- -Command echo Hello
, which will runpwsh.exe -Command echo Hello
. That's a lot of dashes. Wow.
- For example, if your PowerShell profile specifies
- 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 each action to launch any search engine by specifying the
- 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, defaultfalse
)
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
'sexperimental.rainbowFrame
totrue
🙂
- For more fun, you can set
- You can now (finally!) enable support for using the acrylic material in an unfocused window (#15923) (#15944) (thanks @Jaswir!)
- Set
useAcrylic
totrue
in{profile}.unfocusedAppearance
- You can turn unfocused acrylic off globally with the global setting
compatibility.enableUnfocusedAcrylic
(boolean, defaultfalse
)
- Set
- Themes can now indicate whether tab icons should be shown in color or monochrome or hidden entirely (#15948) (thanks @bundgaard!)
- Set
{theme}.tab.iconStyle
(enumdefault
,hidden
,monochrome
; defaultdefault
(default))
- Set
Changes
wt -- foo
will once again inherit the environment from its parent (#15897)- You can customize this behavior with
wt --inheritEnvironment
orwt --reloadEnvironment
on a per-tab/per-pane basis. - You can also override this behavior with the profile setting
{profile}.compatibility.reloadEnvironmentVariables
(boolean, defaulttrue
)
- You can customize this behavior with
- 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, defaulttrue
) (#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
andDECFI
finally work! (#15368) (thanks @j4james!) - @tusharsnx put a lot of work into making ITU T.416 color sequences work! He...
- 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
- SHA256
- Microsoft.WindowsTerminalPreview_1.19.2682.0_arm64.zip
- SHA256
A73F198DC598204862903F06B2D1E06266F4A4004CF817305D65F9126FB18025
- SHA256
- Microsoft.WindowsTerminalPreview_1.19.2682.0_x64.zip
- SHA256
3BE7DC515AC755456EFB7C5898786F03907B5F6082691C2BF14F4B13A79661DF
- SHA256
- Microsoft.WindowsTerminalPreview_1.19.2682.0_x86.zip
- SHA256
20042BDB6611035096E755B7511C03E1E049F9176A2BE154A408C4478A4DD397
- SHA256