Microsoft unleashes a torrent of changes and new features with Windows Terminal Preview v1.19
Having recently reaffirmed its commitment to PowerShell and Windows Terminal, Microsoft has shown that it is good to its word. The company has released new versions of Windows Terminal, and for those who like to play it safe, there is Windows Terminal v1.18.2681.0 which includes various new features such as the ability to pull tabs out of Terminal windows.
But for those who prefer to live on the edge, Windows Terminal Preview v1.19.2682.0 is a much more exciting release. The development team warns users to buckle up as this "might be a little more Preview than you've come to expect". And there is indeed an awful lot to explore in this preview channel version, including the fact that Windows Terminal is now able to browse the internet!
See also:
- Microsoft confirms that Command Prompt is here to stay, but Windows Terminal and PowerShell offer more to power users
- Microsoft makes important clarifications about this week's Copilot-touting Windows 11 update
- Microsoft releases Windows Subsystem for Linux 2.0.0 with fixes and experimental new features
Among the new additions are a new input buffer, a new output buffer, and shell suggestions, but this is just scratching the surface. An update to the search box means that the number of results is now displayed, and Windows Terminal has gained the ability to search the web, making use of search engines to gather information.
There are, almost inevitably, a large number of bug fixes that are part of this release, and you can read about them over on GitHub. The full list of new features to be found in Windows Terminal Preview v1.19.2682.0 is as follows:
- 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 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))
While new features are likely to be the source of the greatest interest and excitement, there are also a lot of changes to be found in this latest release:
- 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...
- 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!)
You can grab either build of Windows Terminal from the GitHub repository, or from the Microsoft Store listings for Windows Terminal or Windows Terminal Preview.