Hello friends, we have a new Windows Terminal Preview release! Windows Terminal Preview 1.22 is a large release that contains new features such as Sixel image support (a LARGE community contribution!), Grapheme Cluster Support, the Snippets Pane, Quick Fixes in CMD, and a new Cooked Read popup in CMD to name a few!
We are also updating Windows Terminal stable to version 1.21 which will include all of the features from this previous blog post. For those that use Input Method Editor (IME), you will notice that we have improved our IME integration in Windows Terminal 1.21. We strive to make a globally-conscious product, so we’d love to hear your feedback! 皆さん、ぜひ新しい IME Integration をお試しください!
You can install Windows Terminal and Windows Terminal Preview from the Microsoft Store, from the GitHub releases page, or by using winget. If you are interested in our bleeding edge features, you can also download Windows Terminal Canary from our GitHub repo.
Now let’s talk about Windows Terminal Preview 1.22!
Sixel image support has been one of our top feature requests in the Windows Terminal repository. Thanks to the help of @j4james, our amazing community member, we were able to make this request a reality.
To display Sixels in Windows Terminal, you will need a tool to encode sixels like libsixel or chafa. For the sake of this blog, I will be using libsixel, which contains
In this first example, I used
This sixel image support also provides a way to display image output without having to open up another window.
In this second example, I piped my
Have you ever entered an emoji in your terminal and saw your cursor move forward a few more spaces than you expected? No more! We’re now finally joining the ranks of other terminal emulators in supporting grapheme clusters!
With grapheme clusters, a program can use multiple code points to express a single user-perceived character. For instance, the polar bear emoji “
” is the combination of a bear face “
” and a snowflake “
”, glued together with a zero-width joiner. Older versions of Windows Terminal would not understand this and treat them as individual emojis. Depending on the text renderer you would then either see “
” or “
” instead of the correct “
”
Grapheme clusters doesn’t only help display emojis but other characters as well, like combining diacritical marks.
For those needing compatibility with UNIX based applications that don’t support grapheme clusters yet, we’ve also added support for their “wcswidth” based measurement.
Have you ever woken up at 3:00 AM after getting paged for a SEV1 and frantically struggled to remember what commands you need to revive a production cluster? Well, maybe the Snippets Pane can help with that…
Snippets are commands that you can save in your
To add a Snippet to your
In this object,
After you have created a Snippet, you will be able to see it in the Snippets Pane. You can invoke the Snippets Pane by searching for it in the Command Palette and clicking on the “Open snippets pane” option (you can also assign this as a keybinding action in the Settings > Action as well.)
To see the command, click on the name of the Snippet. To send the command to your command line, click on the “play” button next to the command.
If you have no idea about what Snippets to add to the Snippets Pane or stuck on writing your first few Snippets, then @zadjii-msft wrote a handy script for you to use to help you populate some Snippets from Commands.dev.
Fans of the Suggestions UI completion menu will also notice that their Snippets will show up as Suggestions in the Suggestions UI! (We’ve also updated the Suggestions UI to display the
For all you CMD lovers, Windows Terminal has a new feature called Quick Fix. Now, whenever you enter an unrecognized command in CMD and that command is affliated with an existing WinGet package, you will see a Quick Fix appear on the left side of your terminal window.
Double-clicking on the Quick Fix will recommend you a
Similar to the Microsoft.WinGet.CommandNotFound PowerShell module, Quick Fixes in CMD is meant to give you assistance in the terminal without having you leave the context of your terminal.
We have also changed the Cooked Read popup UI (used for F7 and friends) in CMD. It now draws beneath the prompt (pushing the screen up) and has a modern TUI scrollbar.
This 1.22 Preview release also replaces the old console hosting subsystem (ConPTY v1) with a completely new one that promises higher fidelity for VT applications, 2x the I/O speed for VT heavy workloads (SGR), up to 16x the I/O speed for plaintext workloads, more reliability, better resizing and reflow, and more! It’s light years ahead of where we were, and serves as the basis for many other improvements.
Please, please, please let us know if you run into any weird console application issues. We’ve tried fan favorites like Far Manager, Z*TREE GOLD, Yori, and more in our quest to make sure it is a great experience for all our users
Actions now have their own IDs, and key bindings just point at them; we’ve made changes to how this works to improve the action and binding experience in future versions
Actions like
Snippets can now be saved directly from the command line with the
Ctrl+Shift+. will now open the Suggestions UI which contains Snippets and Suggestions. You can now also bind the
You can now search with regular expressions in Terminal (and conhost!)
Command/input previews will now display in line with the cursor, in italic, in the right font… Which you can display in RGB with the fun
Pixel shader authors rejoice! If your shader fails to compile, you’ll now get a useful error message! (thank you @blitzRahul!)
Vintage console applications will no longer get corrupted responses from ReadConsoleOutput when Raster Fonts are enabled
We have brought the new Windows 24H2 API out to the ConPTY NuGet package
We have enabled “automatically mark prompts” (for shell integration) by default
We now track and log changes to settings. To see these code changes, please see pull request #17678
We now log action dispatch occurrences. To see these code changes, please see pull request #17718
We’ve rewritten how selection colors work! They will now be drawn with appropriate contrast, at the exact color you specify, with a foreground that is black or white (whichever is most visible!)
The search box will no longer cover up search results in the top right unless there’s nowhere to scroll (thanks again @e82eric!)
Terminal now comes with shiny new icons for the Visual Studio Developer Shells!
We have restored the …s in some command palette names to help users find them
The command palette has lost some extraneous animations, so it should feel much faster
You can now configure the theme for the Settings UI separately from the application with
You can now configure the “Answerback” message sent in response to ENQ using the profile setting
We now support the DEC VT paging operations,
Applications can now request the entire color palette using
Applications can now query the cursor shape set with
Applications can now query the size of character cells (
Applications can now query the color palette with
Applications can now change the selection color using
Reports generated in response to VT requests are once again given priority over other input
ConPTY: responses longer than 4kb will no longer be corrupted (thanks @j4james!)
Terminal will now more reliably save your session when your computer reboots to update
Background colors will no longer bleed over the edges of the screen when D2D is in use (such as over RDP to a VM)
Curly underlines will now render properly on double-width
Cursor invalidation once again works properly on double-width or double-height lines (thank you @j4james!)
Cursor movement over ConPTY now works properly on double-width or double-height lines (thanks again @j4james!)
The rendering of curly underlines has been improved (special thanks to @smprather for reporting this bug!)
The Suggestions UI will no longer try to grab the PowerShell “ghost text” out of your input line
You can once again cancel overwriting a key binding in the Settings UI
You can once again disable the detection of URLs
You can once again use Ctrl+D and Enter in a disconnected pane
Scrolling the screen will now result in less GPU traffic
Terminal now makes fewer copies (and heap allocations) when writing input to the console app
AtlasEngine will no longer over-read a memory buffer when setting up a GPU texture
Closing a window when you have an
Session restoration now works more reliably when the entire scrollback is full
We’ve made some improvements to how we handle movement across rectangles for copy operations
Windows Terminal 1.22 Preview is packed with lots of updates. For a full list of changes and which versions of Windows Terminal those changes were backported to, please visit our Discussions page on the Windows Terminal GitHub repository for more information.
We love working with the community and recognizing those who made an impact for each release. Here are the community members who helped out for this one!
j4james
tusharsnx
skanda890
Andarwinux
alabuzhev
Zeroes1
j4james
tusharsnx
e82eric
We would also like to give a special thanks to @abhijeeth-babu, @jbyuki, and @thadguidry, for their help on our documentation efforts!
We hope you enjoy this release of Windows Terminal 1.22 Preview! This is a rather large preview release so it will take some time for these features to eventually move onto Windows Terminal stable.
More information on these new features can be found on our docs site and if you find any bugs or have feature requests, feel free to file them on GitHub.
If you have any questions you can reach out to Christopher Nguyen (@nguyen_dows) on X (formerly Twitter.)
Thank you!
The post Windows Terminal Preview 1.22 Release appeared first on Windows Command Line.
Continue reading...
We are also updating Windows Terminal stable to version 1.21 which will include all of the features from this previous blog post. For those that use Input Method Editor (IME), you will notice that we have improved our IME integration in Windows Terminal 1.21. We strive to make a globally-conscious product, so we’d love to hear your feedback! 皆さん、ぜひ新しい IME Integration をお試しください!
You can install Windows Terminal and Windows Terminal Preview from the Microsoft Store, from the GitHub releases page, or by using winget. If you are interested in our bleeding edge features, you can also download Windows Terminal Canary from our GitHub repo.
Now let’s talk about Windows Terminal Preview 1.22!
Sixel Image Support
Sixel image support has been one of our top feature requests in the Windows Terminal repository. Thanks to the help of @j4james, our amazing community member, we were able to make this request a reality.
To display Sixels in Windows Terminal, you will need a tool to encode sixels like libsixel or chafa. For the sake of this blog, I will be using libsixel, which contains
img2sixel
.In this first example, I used
img2sixel
to display my .png as a sixel in Windows Terminal.This sixel image support also provides a way to display image output without having to open up another window.
In this second example, I piped my
matplotlib
plot into img2sixel
which allowed the output to be displayed in my active terminal window (as opposed to a new window.)Grapheme Cluster Support
Have you ever entered an emoji in your terminal and saw your cursor move forward a few more spaces than you expected? No more! We’re now finally joining the ranks of other terminal emulators in supporting grapheme clusters!
With grapheme clusters, a program can use multiple code points to express a single user-perceived character. For instance, the polar bear emoji “
Grapheme clusters doesn’t only help display emojis but other characters as well, like combining diacritical marks.
For those needing compatibility with UNIX based applications that don’t support grapheme clusters yet, we’ve also added support for their “wcswidth” based measurement.
Snippets Pane
Have you ever woken up at 3:00 AM after getting paged for a SEV1 and frantically struggled to remember what commands you need to revive a production cluster? Well, maybe the Snippets Pane can help with that…
Snippets are commands that you can save in your
settings.json
file. The Snippets Pane is our new UI surface for you to see all your Snippets and send them to your command line.To add a Snippet to your
settings.json
file, you will need to add a new object that contains a command
and a name
in the actions
object similar to this:
Code:
"actions":
[
{
"command":
{
"action": "sendInput",
"input": "git checkout -b"
},
"name": "git new branch"
}
]
In this object,
command
contains an action
and an input
. action
should always be set to sendInput
and input
should be the command that you want to send. Lastly, you will want set name
to the name of your Snippet.After you have created a Snippet, you will be able to see it in the Snippets Pane. You can invoke the Snippets Pane by searching for it in the Command Palette and clicking on the “Open snippets pane” option (you can also assign this as a keybinding action in the Settings > Action as well.)
To see the command, click on the name of the Snippet. To send the command to your command line, click on the “play” button next to the command.
If you have no idea about what Snippets to add to the Snippets Pane or stuck on writing your first few Snippets, then @zadjii-msft wrote a handy script for you to use to help you populate some Snippets from Commands.dev.
Fans of the Suggestions UI completion menu will also notice that their Snippets will show up as Suggestions in the Suggestions UI! (We’ve also updated the Suggestions UI to display the
description
property!)Quick Fixes in CMD
For all you CMD lovers, Windows Terminal has a new feature called Quick Fix. Now, whenever you enter an unrecognized command in CMD and that command is affliated with an existing WinGet package, you will see a Quick Fix appear on the left side of your terminal window.
Double-clicking on the Quick Fix will recommend you a
winget install
command to install the package that you are missing to run that command.Similar to the Microsoft.WinGet.CommandNotFound PowerShell module, Quick Fixes in CMD is meant to give you assistance in the terminal without having you leave the context of your terminal.
New Cooked Read Popup in CMD
We have also changed the Cooked Read popup UI (used for F7 and friends) in CMD. It now draws beneath the prompt (pushing the screen up) and has a modern TUI scrollbar.
New Hosting Subsystem
This 1.22 Preview release also replaces the old console hosting subsystem (ConPTY v1) with a completely new one that promises higher fidelity for VT applications, 2x the I/O speed for VT heavy workloads (SGR), up to 16x the I/O speed for plaintext workloads, more reliability, better resizing and reflow, and more! It’s light years ahead of where we were, and serves as the basis for many other improvements.
Please, please, please let us know if you run into any weird console application issues. We’ve tried fan favorites like Far Manager, Z*TREE GOLD, Yori, and more in our quest to make sure it is a great experience for all our users
Usability Updates
splitPane
, sendInput: someinput
, and quit
can now be added directly to the New Tab dropdown menuwt x-save
(thanks @e82eric!)quickFix
action to open a menu containing only WinGet suggestions (as of today, on Windows 24H2){profile}.experimental.rainbowSuggestions
setting (boolean, default false
)UI Updates
{theme}.settings.theme
(enum light
, dark
, system
; default: system
) (thanks @bundagaard!)VT (Virtual Terminal) Updates
answerbackMessage
(string, default: null
) (conhost users: HKCU\Console AnswerbackMessage REG_SZ
) (thanks @j4james!)NP
PP
PPA
PPR
and PPB
, as well as DECPCCM
(page cursor coupling mode) and DECRQDE
(request displayed extent) (thanks again @j4james!)DECRQTSR
DECCTR
(CSI 1 ; Pt $ u
) (thanks yet again @j4james!)DECSCUSR
using DECRQSS
(DCS $ q SP q ST
) (thank you again @j4james!)CSI 16 t
) and the entire text area (CSI 14 t
), with a response measured in pixels (thanks to @j4james!)OSC 4 ?
, and the default foreground (OSC 10 ?
), background (OSC 11 ?
), cursor (OSC 12 ?
) and selection colors (OSC 17 ?
)OSC 17
Bug Fixes
DECDWL
and double-height DECDHL
linesPerformance, Reliability, and Code Health Updates
unfocusedAppearance
set will no longer result in unscheduled disassembly of your terminalWindows Terminal 1.22 Preview is packed with lots of updates. For a full list of changes and which versions of Windows Terminal those changes were backported to, please visit our Discussions page on the Windows Terminal GitHub repository for more information.
Top contributors
We love working with the community and recognizing those who made an impact for each release. Here are the community members who helped out for this one!
Contributors who created the most merged pull requests
Contributors who opened the most non-duplicate issues
Contributors who provided the most comments on pull requests
We would also like to give a special thanks to @abhijeeth-babu, @jbyuki, and @thadguidry, for their help on our documentation efforts!
Thank you!
We hope you enjoy this release of Windows Terminal 1.22 Preview! This is a rather large preview release so it will take some time for these features to eventually move onto Windows Terminal stable.
More information on these new features can be found on our docs site and if you find any bugs or have feature requests, feel free to file them on GitHub.
If you have any questions you can reach out to Christopher Nguyen (@nguyen_dows) on X (formerly Twitter.)
Thank you!
The post Windows Terminal Preview 1.22 Release appeared first on Windows Command Line.
Continue reading...