Happy New Year! It's Terminal time once again! This is our first release of 2022, and it's a big one.
Announcements
- Windows Terminal Preview is now named Terminal Preview! It will, of course, still be called
wt
under the hood. (#12264)- Right now, you will not be able to find Windows Terminal _ (that is, with the "Windows" part) in the start menu. We are working with the search team to add a keyword match! Follow #12344 for updates._
- Sorry about your muscle memory. :(
- 1.12 is the last version of Terminal that will support Windows 19H1 or 19H2 (#12129)
- Folks who are on the Preview channel on these versions of Windows will get a one-time upgrade to the last servicing release of 1.12.
- This version of windows is going out of support soon, so you may want to consider upgrading.
- You only need to install 1.12.10335.0 if you are on Windows 19H1 or 19H2; it is included here for completeness.
Features
- Terminal now follows the Windows 11 UI guidelines (#12241) (#12144) (#12208) (#12287) (#12326) (#11720) (#12321)
- This will make it look a little out of place on Windows 10; we're sorry
- We're testing out a new experimental text rendering engine, "AtlasEngine" (#11623) (#12304) (#12225) (#12189) (#12307) (#12278) (#12242) (#12227) (#12226)
- You can enable it with the
experimental.useAtlasEngine
profile field or the "Use experimental text rendering
engine" in Profile -> Advanced - We're tracking bugs, parity with the existing renderer, and future advancements in #9999.
- You can enable it with the
- You can now configure a profile to always launch elevated (in a separate window)! (#12137) (#12257)
- This is controlled by the profile setting
elevate
(bool, defaultfalse
). - Read more in our docs.
- This is controlled by the profile setting
- Terminal learned to restore the last closed pane or tab! (#11471) (thanks @Rosefield!)
- NOTE: This action, accessible through the command palette, will launch a new tab that has the same settings
as the previous tab. It cannot bringprotagonistsprocesses back from the dead!
- NOTE: This action, accessible through the command palette, will launch a new tab that has the same settings
- You can now change the bell sound with
profile.bellSound
setting! (#11511)bellSound
takes a path to an audio file to play as the audible bell or an array of paths.- If you provide an array of paths, Terminal will choose one at random every single time it bells.
- If you're a fan of Untitled Goose Game, this is an excellent opportunity to get your HONK on!
- Dropping a file on a WSL instance will now insert the WSL converted path (!) (#11625) (thanks @petrsnm!)
- You now have the option to strip trailing whitespace on paste (
trimPaste
global setting, bool, defaulttrue
) (#11473) (thanks @lovef!)
Changes
- We're reworking how Terminal handles environment variables, starting with reverting the changes we made in
Preview that broke PowerShell x86 (#12140) - The "adjust lightness of indistinguishable text" feature, present in 1.12 preview, has been disabled pending
some bug fixes (#12160) - The "Open in Terminal" context menu is now localized in, like, 88 languages (#12090)
- There is a new
adjustOpacity
action, which can be previewed live with the command palette (#12092) - Terminal will now store elevated window state separately from non-elevated window state (#11222)
- You can now export the buffer with an action,
exportBuffer
(#12097) - There is now a "Settings" menu item in the title bar menu (#11404) (thanks @serd2011!)
- You can now Ctrl-click on a profile in the dropdown to launch it as Administrator (in a separate window) (#12209)
- Terminal (and conhost) will no longer accept
C1
control codes by default (#11690) (thanks @j4james!) - The PowerShell profile generator now generates fully quoted paths (#12086) (thanks @ianjoneill!)
- WSL instances now default to starting in
~
(or throwing anInvalid Parameter
error) (#12315) - We've reworked how settings get into the individual terminal panes to prepare for tearoff and merge (#11619) (#12255) (#12095)
Bug Fixes
- The cursor should now start/stop blinking more reliably when Terminal is started without window focus (#12094)
- Copying the "Azure Cloud Shell" profile will no longer result in a normal boring profile that tries to run
Azure.exe
(lol) (#12147) - The default "Command Prompt" and "Windows PowerShell" profiles have been updated to have fully qualified paths (again) (#12149)
- Cursor movement will now more reliably update the IME/emoji picker/input line/cursor highlight for Accessibility (#12210)
- HTML/RTF copy now respects the active background color instead of just the default one (#11991) (thanks @j4james!)
- Session save/restore will now remember tab titles and maximize/focus/restore state (#12073) (thanks @Rosefield!)
- The "Duplicate Profile" button will no longer be enabled when you don't actually have a profile selected (#12096) (thanks @davidegiacometti!)
//wsl$
paths will no longer result in you being unceremoniously dumped in/
(in WSL) (#12102)~
now works as a starting directory forwsl.exe
(#12050) (thanks @LuanVSO!)- Application-controlled titles will be sanitized for control sequences even if they are set with the
SetConsoleTitle
API (#12211) (thanks @j4james!)
Accessibility
- The command palette will now announce if any suggestions were found to screen readers (#12266)
- ... so will the search box! (#12301)
- The tab row/titlebar have stopped acting as a keyboard input/focus trap -- you can use keyboard shortcuts up there now (#12260)
- We've done a pass over the controls in the settings UI and given them accessible names for screen reader users (#12299) (#12324)
- The "Default Terminal" section will now properly read out terminal names to Narrator (#12259)
- "Open JSON File" is now a better accessibility citizen as well (#12286)
Performance and Reliability
- We've fixed a (small) binary size regression in OpenConsole, which was more than eclipsed by all the new features above (#11727)
- Improved:
- Removed wasteful virtuals according to SizeBench (#11889)
- Typing an invalid background image path into the Settings UI will no longer send Terminal to a farm upstate (#11542) (thanks @serd2011!)
- "Export Text" is more worky and less crashy (#12180) (thanks @ianjoneill!)
Documentation Changes
We'd like to thank @eltociear, @BlakeHeimann, @ghost1372, @Schweinepriester, and @ianjoneill for their contributions
to our documentation, roadmap, specs and schema.
Behind the Scenes
Over the holidays, we had an "Engineering Improvement" milestone! We chose to allocate it to improving our build
system, remove some dead code, etc. and our excellent community stepped up and did the same!
Here's some of the highlights
/permissive-
and remaining /Zc
flags (#11816)
SMALL_RECT
(#11902)
sizeof
parameter of the if statement with ARRAYSIZE
(#12273) (thanks @abdoulkkonate!)
IStateMachineEngine
interface (#12277) (thanks @j4james!)
Finally -- if you want to see some of the wild stuff batch files are capable of, check out ansi-color
,
contributed by @rbeesley as a test validation tool. (#11932)