Skip to content

Windows Terminal Preview v1.21.1272.0

Pre-release
Pre-release
Compare
Choose a tag to compare
@DHowett DHowett released this 07 May 19:45
· 283 commits to main since this release

Windows Terminal 1.21 turned out to have WAY more in it than we had expected--we were busy doing things like sudo for Windows and File Explorer's 7zip, RAR and tar support... and still we ended up landing a bunch of Terminal work too!
Enjoy!

Features

  • Terminal will now remember and restore the contents of the screen when you use the "Open windows from a previous session" startup option! (#16598) (#17022) (#16970) (#16998) (#17182) (#16601) (#17113)
    • Buffer snapshots are stored in human-readable (albeit UTF-16) VT-encoded text in your package's local state directory, next to your settings. This directory is typically secured to your user account, but if you are using the portable distribution be aware of the implications.
  • You can now specify multiple active fonts; glyphs which are not found in your first font will be sought in all later fonts (#16821) (#16993)
    • {profile}.font.face now supports comma-separated face names, e.g. Courier New, Cascadia Code PL, Bahnschrift
    • Metrics will be based on your primary font.
    • Unfortunately, the preview window doesn't usually use any non-existent glyphs so you won't really be able to preview it...
  • Terminal now renders pixel-perfect block elements, box-drawing characters and PowerLine symbols, as well as high-fidelity textured shade glyphs (#16729) (#16760)
    • We know this can be a controversial feature, so you can turn it off by disabling "Built-in Glyphs" in the Settings (or in JSON: {profile}.font.builtinGlyphs, boolean, default true)
  • You can now customize the OpenType Features and Axes of your font stack in the Settings UI (#16104) (#16678) (#16790) (#17164) (#17173)
  • Rounding out the above font changes, you can also turn off full-color emoji (setting {profile}.font.colorGlyphs, boolean, default true) for when you really want to eat a wireframe burrito (#16871)
  • We've completely rewritten prompt marks--they now reflow on resize, clear properly, and more!--in preparation for calling them Stable (#16937) (#16938) (#17138) (#17144)
  • You amazing pixel shader authors can now load up an image as a texture with the experimental.pixelShaderImagePath setting (#14073) (thanks @mrange!)
  • You can now run terminal panes side-by-side with non-terminal things... (#17009) (#17169) (#16170) (#16172) (#17174) (#17110) (#16914)
    • ...like our experimental (and ephemeral!) "scratchpad", which shows up as a free-form text box next to your terminal.
      • Add the action {"action":"splitPane","type":"scratchpad"} to try it out.
      • ⚠️ We may remove or meaningfully change the scratchpad in a future version.
  • We have rewritten the Input Method Editor (IME) integration from the ground up (#17067)
  • JSON Fragment Extensions can now add custom actions (#16185)
  • You can now access the features from the experimental. namespace in the Settings UI (#16809)
  • The original text rendering engine (versions 0.1 to 1.20) has moved on to the next life, and will not be returning. RIP. 🪦 (#16278)

Changes

  • Behavior Change! The Pane keybindings Alt+Shift++ and Alt+Shift+- will now duplicate your active profile (#16951)
  • @tusharsnx totally rewrote how search highlighting works to make it more robust and responsive (#16611) (thanks @tusharsnx!) plus additional fixes from the team (#17132) (#17092)
  • Terminal will now delete its in-box color schemes from your local settings file, unless you've modified them (#12800)
    • You can no longer edit the color schemes that come with Terminal without copying them
  • We've finally added new color schemes: Dark+, CGA and IBM (#16953)
  • We have started laying the groundwork for action binding--also known as "exploding your settings file with actions"--so please be on the lookout for any strangeness! There shouldn't be any user-visible impact. Yet. Yeeetttt. (#16823) (#16904) (#17145) (#17146)
  • Moving the cursor around was surprisingly expensive, so we paid to make that cost go away (#15500)
  • You can now control the behavior of the Atlas engine in finer detail on the "Rendering" settings page (#16939)
  • Profiles now default to the icons of their .exe files, if those can be determined. If you want your profile to have no icon, you must set the icon to "none" (or check the "Hide icon" box in Settings) (#15843)

UI

  • The Search box now animates in and out, looking very chic (#16808) (thanks @tusharsnx!)
  • Instances of "it'll" have been replaced with "it will" to adhere to Microsoft Style Guidelines (#16955) (thanks @hellocharli!)
  • We've restyled the Warning and Error displays around the font settings so that they're more readable (#16876)

VT Compatibility

  • You can now set the window (tab, pane) title with DECSWT (Set Window Title) in addition to XTerm's OSC 2 (#16804) (thanks @j4james!)
  • We now support DECAUPSS, DECRQUPSS and ACS, which completes the 8-bit interface architecture (#16547) (thanks @j4james!)

Bug Fixes

  • Double-clicking a word on the left side of the screen will no longer select parts of your RPROMPT (or right prompt) (#17170)
  • Double-clicking a word in a double-width or double-height row now actually selects the right word (#16812) (thanks @tusharsnx!)
  • Our light color schemes no longer have a truly unusable selection highlight color (#16789) (thanks @uoRetr0!)
  • Once again, we've fixed an issue where hyperlinks are detected in the wrong place if there's a wide character (#16775) (thanks @comzyh!)
  • You can no longer use the Settings UI to enter an initial size that is out of bounds (#16989) (thanks @chingucoding!)
  • The experimental repositionCursorWithMouse actually works after you've scrolled the screen (lol) (#16950)
  • doskey macros once again (and I mean, "since 2015"?) work on inputs with more than one consecutive space character (#17129)
  • We've fixed a number of issues that may have resulted in cursors being left on the screen (#17181)
  • URLs that touch the right side of the screen or get resized are once again clickable (#17120)

Reliability

  • Tearing off a tab should no longer, in some circumstances, explode your Terminal (#17069) (thanks @tusharsnx!)
  • The Atlas engine has gotten somewhat better at reporting errors (#17193)
  • The Atlas engine will no longer occasionally crash when rendering characters in the Unicode Private Use Area (#16894)

Performance

  • The console hosting backend no longer spuriously repaints single characters (#17194) (thanks @j4james!)

VT Compatibility

  • DCS sequences that span packets will no longer get sliced in half and--in so being--destroyed (#17195) (thanks @j4james!)

Packaging Changes

  • Terminal distributions now come with an additional library, Microsoft.Terminal.UI.dll. Its .winmd is not required. (#15107)

Code Health

We're trying something new, where we don't delete all of the code health improvements and just put them right in the changelog.

Code Health improvements included in this release
  • Remove in-product uses of std::bind (#16870)
  • A minor cleanup of ProfileViewModel (#16788)
  • Add a script to publish a folder of binaries as a GH release (#13629)
  • Add an automated conhost benchmark tool (#16453)
  • Add an experimental "scratchpad pane", for testing (#16171)
  • Add more profile GUID tests (#17030) (thanks @chingucoding!)
  • Add new and extend existing til::string helpers (#16772)
  • Add VSCode configs for better out-of-box LSP support (#16920) (thanks @tusharsnx!)
  • build: force the latest VCToolsVersion; see DD-1541167 for more (#17156)
  • Implement MVVM for the Actions page (#14292)
  • Make ColorFromXOrgAppColorName both smaller and more correct (#16824)
  • Make the Settings Model tests into proper CI tests (#16773)
  • Remove dependency on IsGlyphFullWidth for IRM/DECSWL (#16903)
  • Remove VtApiRoutines (#16954)
  • Replace til::bit_cast with std::bit_cast (#16948)
  • Replace til::some with til::small_vector (#16952)
  • Replace usages of TYPED_EVENT with til::event (#16837)
  • Use .rc files in TSM instead of string literals (#16844)
  • Use float instead of double by default (#17100)
  • AtlasEngine: Improve debuggability (#17136)

With additional thanks to @Jvr2022 for keeping our dependencies up to date.


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

Asset Hashes

  • Microsoft.WindowsTerminalPreview_1.21.1272.0_8wekyb3d8bbwe.msixbundle
    • SHA256 6731AE00DFBE1EBBADEC8797A69D6953EC754C7C8BE0F91732CCABA32024D7A8
  • Microsoft.WindowsTerminalPreview_1.21.1272.0_arm64.zip
    • SHA256 716A55AEFC5041D465C478E5C5FC6D22874A8ED8AEACA8CF8D7A4945BEDB0C7F
  • Microsoft.WindowsTerminalPreview_1.21.1272.0_x64.zip
    • SHA256 69B393756F14680C510D1395F0E0F7A5E87F9C3A42A163890DB7047D270E9562
  • Microsoft.WindowsTerminalPreview_1.21.1272.0_x86.zip
    • SHA256 EA3743F9B8F855D05ED6792B3BDBC204854D7B78B105DDF18BEFE190EE24F16C