Jump to content
Microsoft Windows Bulletin Board

Windows Terminal Preview 1.18 Release


Recommended Posts

Guest Christopher Nguyen
Posted

Welcome back to another Windows Terminal release! This release updates Windows Terminal to version 1.17 and includes all of the features from this previous blog post. Additionally, Windows Terminal Preview is getting an update to version 1.18 and will include all the features detailed here, so let’s talk all about them!

 

As always, you can install Windows Terminal and Windows Terminal Preview from the Microsoft Store, from the GitHub releases page, or by using winget.

 

[HEADING=1]Tab Tearout[/HEADING]

 

Yes! We finally have tab tearout! This has been a highly requested feature since the dawn of Terminal time. Starting in Windows Terminal Preview 1.18, you will now be able to tear out the tabs in Windows Terminal.

 

tear-tab.thumb.gif.73940f873b66406961a961952315ef34.gif

 

You will also be able to move tabs from one terminal window into the other.

 

attach-tab.thumb.gif.d89b55d487094525455633fe32c4e313.gif

 

[HEADING=1]Environment Variable Updates[/HEADING]

 

The Windows Terminal will now reload the environment variables automatically when a new tab or pane is opened! No longer do you need to fully shut down the Terminal after installing something and changing the PATH – just open a new tab (or restart the current one) and head off to the races.

 

In addition, you can now add environment variables in your [iCODE]settings.json[/iCODE]. Shoutout to @ianjoneill for this community-contributed feature! This can be done in [iCODE]defaults[/iCODE] or in any profile.

In the example below, I set two environment variables, both named [iCODE]MY_ENVIRONMENT_VARIABLE[/iCODE], in [iCODE]defaults[/iCODE] and in my [iCODE]PowerShell[/iCODE] profile:

 

[HEADING=2]JSON[/HEADING]

 

"profiles": 
   {
       "defaults": 
       {
           "environment": {
               "MY_ENVIRONMENT_VARIABLE": "Hi from defaults!"
           },
       },
       "list": 
       [
           {
               "guid": "{574e775e-4f2a-5b96-ac1e-a2962a402336}",
               "name": "PowerShell",
               "source": "Windows.Terminal.PowershellCore",
               "environment": 
               {
                   "MY_ENVIRONMENT_VARIABLE": "Hi from PowerShell!"
               }
           }
       ]
   }

 

The environment variables you set in [iCODE]defaults[/iCODE] will be available to all of your profiles. The environment variables that you set within a specific profile will only be available for that specific profile.

 

This means that if I print the value of [iCODE]MY_ENVIRONMENT_VARIABLE[/iCODE] in my PowerShell profile, then I will see “Hi from PowerShell!”

 

environmentvariablespowershell.thumb.png.5e009a9196fd92eb71d5b7dd3f215735.png

 

If I print the value of [iCODE]MY_ENVIRONMENT_VARIABLE[/iCODE] in any other profile such as Command Prompt, then I will see “Hi from defaults!”

 

environmentvariablescommandprompt.thumb.png.49963925ad915f5b662798926fbf41f3.png

 

[HEADING=1]Right-Click Context Menu (Experimental)[/HEADING]

 

This is an experimental feature that needs to be manually enabled. To manually enable this feature, add [iCODE]"experimental.rightClickContextMenu": "true"[/iCODE] in the [iCODE]defaults[/iCODE] section of your [iCODE]profiles[/iCODE] section of your [iCODE]settings.json[/iCODE]:

 

[HEADING=2]JSON[/HEADING]

 

"profiles": 
{
   "defaults": 
   {
       "experimental.rightClickContextMenu": true
   },
   ...

 

After enabling this feature, you will be able to see a context menu after right-clicking the shell in your terminal.

 

defaultrightclickcontextmenu.thumb.png.f6731038ebf6bb6c4532ade92527619a.png

 

By default, you will see Paste, Split Pane, Duplicate Tab, and Close Tab as your options.

If you highlight text and open the right click context menu, you will also see a Copy option next to Paste. If you have another pane open, then you will also see Close Pane as another option.

 

If you have our experimental shell integration feature enabled, then you will also see Select Command and Select Output as options.

 

shellintegration.gif.09a02b555c6a65ffcbde0a7dee25c217.gif

 

Enabling shell integration marks vary from shell to shell. To learn how to enable shell integration for your favorite shell, visit this Shell integration tutorial to find out more!

 

[HEADING=1]Atlas Engine Improvements[/HEADING]

 

Our experimental text rendering engine, the [iCODE]AtlasEngine[/iCODE], has gotten major improvements in Windows Terminal Preview 1.18. This text rendering engine has been nearly, completely rewritten to support overlapping text and, as a result, will no longer cut off italic text, emojis, or complex scripts. It will continue to clip box glyphs to their cells.

Below is a series of “before” and “after” pictures of the Atlas Engine rewrites.

 

Here is a before image of Fira Code with the old [iCODE]AtlasEngine[/iCODE]

 

FiraCode_cpp_AtlasEngine_v1.thumb.png.fd9722a166473f8f0a439fd0fd2f25f8.png

Here is an after image of Fira Code with our new [iCODE]AtlasEngine[/iCODE] in 1.18 Preview.

 

FiraCode_cpp_AtlasEngine_v2.thumb.png.bfd2a475e2ddf2ab317c411331865b94.png

We can see that the old AtlasEngine shrinks glyphs. In our new AtlasEngine, we now handle those glyphs correctly.

 

We also have a before image of the Code New Roman font as an example.

 

CodeNewRoman_NF_AtlasEngine_v1.thumb.png.56de21857db76df03970942bba4c2b21.png

 

Here is an after image for the Code New Roman font with [iCODE]AtlasEngine[/iCODE] in 1.18 Preview.

 

CodeNewRoman_NF_AtlasEngine_v2.thumb.png.e50e8220db92605938256c74609e5c31.png

 

In the screenshots above, you can see how our [iCODE]AtlasEngine[/iCODE] rewrite in 1.18 Preview fixed powerline rendering. We now have no weird gaps, no cut off glyphs, and no shrunken glyphs. There is now also proper overlapping glyphs in the APL set, 2714.png.ee8271e6aac47147f112ceeb7634bfa1.png in the Misc. glyphs row, and proper inversion of complex Unicode (without making the glyphs larger than they are supposed to be.)

 

We have also ensured that the [iCODE]AtlasEngine[/iCODE] continues to support animated shaders, Han unification, and [iCODE]loc1[/iCODE] glyph variants in Windows Terminal Preview 1.18. The [iCODE]AtlasEngine[/iCODE] will also now be used to display the Appearance preview in the Windows Terminal Settings UIs for profiles which it is enabled.

 

[HEADING=1]Portable Mode[/HEADING]

 

As of stable channel version 1.17, Windows Terminal will support being deployed in “Portable mode”. Portable mode ensures that all data created and maintained by Windows Terminal is saved next to the application so that it can be more easily moved across different environments.

 

Portable mode is supported by the unpackaged “ZIP” distribution. This is an officially-supported mode of execution where Windows Terminal stores its settings in a settings folder next to [iCODE]WindowsTerminal.exe[/iCODE]. Portable mode is not supported in the packaged or preinstallation kit distributions of Windows Terminal.

 

The unpackaged and portable mode distributions of Windows Terminal allow you to use Terminal without installing it globally, e.g. on systems where you may not have permission to install MSIX packages or download software from the Microsoft Store. Portable mode allows you to carry around or archive a preconfigured installation of Windows Terminal and run it from a network share, cloud drive or USB flash drive. Any such installation is self-contained and will not interfere with other installed distributions of Windows Terminal.

 

Portable mode needs to be enabled manually. After unzipping the Windows Terminal download, create a file named [iCODE].portable[/iCODE] next to [iCODE]WindowsTerminal.exe[/iCODE].

Windows Terminal will automatically create a directory named [iCODE]settings[/iCODE] after you launch [iCODE]WindowsTerminal.exe[/iCODE]. That [iCODE]settings[/iCODE] directory will store both settings and runtime state such as window layouts.

 

Note that Windows Terminal will NOT automatically reload its settings and transform your terminal into portable mode right after you create the [iCODE].portable[/iCODE] file.

This change will only apply after you relaunch Terminal. You can verify if you are in portable mode, by selecting “About” in the dropdown menu.

 

portablemode.thumb.png.1d3cc452b55d047a1ea9ec6db6d0ec68.png

 

From here, you can customize Windows Terminal to your liking and then copy that entire Windows Terminal folder to a USB flash drive or network share to use on the go or to share with others!

 

For more information on the various distribution types that Windows Terminal offers, please see our distribution docs!

 

[HEADING=1]Usability Updates[/HEADING]

 

26a1.png.d4e073f84d70f07e06cb9e052226ff15.png Windows Terminal can now use Ctrl+Shift to run terminal elevated from the context menu (thanks @jamespack!)

 

26a1.png.408b3b22d6c1cfc13b9023d223411e1c.png Users can now enable and disable read-only mode rather than toggling it with the [iCODE]enableReadOnly[/iCODE] and [iCODE]disableReadOnly[/iCODE] actions (thanks @Swinkid!)

 

26a1.png.b43e4104f467438af5f98b2e4de6e6bc.png We added “legacy” themes to our available default themes. Check them out in the Settings UI!

 

26a1.png.ab09eb52acbc254c7b87877b8ce914ea.png We improved the preview text in the Settings UI and enabled the cursor

 

26a1.png.bc673ec442eb7c4a6339289c64d82efd.png Users can now customize cell sizes and line spacing

 

26a1.png.2158c3fe28c109e6b83338c16f14ff30.png A warning now appears when a proportional font is selected (thanks again @jamespack!)

 

26a1.png.5f60a5f144388eecd5c320b9cc375abe.png We added an action to immediately restart a connection ([iCODE]restartConnection[/iCODE]). You also manually invoke this menu with a keyboard shortcut by binding a keybinding instead

 

26a1.png.0805dba84b03e82c9a170c92ee05751a.png We added an action to manually invoke the control context menu

 

26a1.png.a6c8c5f00819ccdcedb28f20a56994ce.png Added jump list support for indirect icon references (thanks yet again @jamespack!)

 

26a1.png.663dcdeb994d0a08d31cd87c5947dd06.png [iCODE]$theme.tab.showCloseButton[/iCODE] now supports [iCODE]activeOnly[/iCODE], to display the x only on the active tab (thanks @kovdu!)

 

26a1.png.1f3ca9f79c3df50018a53a25877c11e0.png Any WSL distribution named [iCODE]rancher-desktop[/iCODE] or [iCODE]rancher-desktop-data[/iCODE] will be ignored. Thanks for helping us with this, @jamespack. For more information on this change, please see issue #12757 on GitHub.

 

[HEADING=1]Miscellaneous Improvements[/HEADING]

 

1f6e0.png.7bc216430f0682af28575cf8d38daf77.png Added support for horizontal margin sequences (thanks @j4james!)

 

1f6e0.png.a13b3c76cf34051a10088d55784050ac.png Added support for bracketed paste mode in ConHost (thanks again @j4james!)

 

1f6e0.png.26d31391808a8c1e615c48f43e290738.png Added support for CSI 18t (thanks @michalnpl!)

 

1f6e0.png.f17e9a5273acab8f9b568476c7334a94.png Added subtext to why “Always show tabs” is not toggleable in the Settings UI (thanks @BenConstable9!)

 

1f6e0.png.f1c2b2229202b0f467f84ed9dc8a0f01.png The reset button is now accessible with description in reset (thanks @michalnpl!)

 

1f6e0.png.55d9ea6ce1db3e9bd988b62257d68d3f.png We refactored how connection restart is handled and added an action for [iCODE]restartConnection[/iCODE] for manually restarting a tab or pane

 

1f6e0.png.127dd15fa7880922c07ae65d48732ed1.png If you are using the FTCS “start of command”, “start of output” and “end of output” marks ([iCODE]OSC 133[/iCODE]), you can now use the [iCODE]selectCommand[/iCODE] and [iCODE]selectOutput[/iCODE] actions to select the command or output as demarcated by those sequences

 

[HEADING=1]Bug Fixes[/HEADING]

 

1f41b.png.ae850d507412c2c9452b1c06a3565d22.png Active attributes are now preserved during Virtual Terminal (VT) resize operations (thanks @j4james!)

 

1f41b.png.c7b881587078f577298b93d29249ab30.png [iCODE]LineFeed[/iCODE] and [iCODE]PrintString[/iCODE] functionality is now merged into [iCODE]AdaptDispatch[/iCODE] (thanks again @j4james!)

 

1f41b.png.905b76d0ea4bc4c2ec5abb81381c5b63.png ConHost now respects the codepage stored in [iCODE].LNK[/iCODE] files (thanks @michalnpl!)

 

1f41b.png.8d138ac916146b6f0b82f77aa1a9d5d8.png Windows Terminal will now focus on the shell instead of the titlebar when a profile is selected from a nested menu entry (thanks @kkostrzewa!)

 

1f41b.png.9c3f57362dc9791f70e4ef0a206788e9.png We now manually pre-evaluate the starting directory when calling [iCODE]elevate-shim[/iCODE]

 

1f41b.png.d956643c6e62caf7a350cc2faf053a9f.png We now use a “virtual CWD” for each terminal window

 

1f41b.png.62b36014141f5f13e5af715d5fee3fcf.png We fixed a bug in default terminal startup that should fix some apps that immediately print lots of text to the console

 

1f41b.png.c28e67d2a60b847832786557806cb1d1.png We now use the persisted position with [iCODE]centerOnLaunch:true[/iCODE]

 

[HEADING=1]Top contributors[/HEADING]

 

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!

 

[HEADING=2]Contributors who created the most merged pull requests[/HEADING]

 

1f3c6.png.4835e96ca47e67726b98b7d644016ca1.png j4james

 

1f3c6.png.32a0509ba49b6f005f6fd0490a987253.png jamespack

 

1f3c6.png.55731ce51a2671d2bf96e7770a1a384e.png @ianjoneill

 

[HEADING=2]Contributors who opened the most non-duplicate issues[/HEADING]

 

1f3c6.png.6451062e57be7a0345ab0cea8a20521d.png j4james

 

1f3c6.png.b25fe31e07abafa2024d3ac89786a21f.png Saiteja341

 

1f3c6.png.78be7ce6be7a1003472e229cef24364f.png Vampire

 

[HEADING=2]Contributors who provided the most comments on pull requests[/HEADING]

 

1f3c6.png.65a92d78331bce22ea3a8b35c35e3c3f.png j4james

 

1f3c6.png.239d8bea96d7eda0d9fa7053641eda2e.png jamespack

 

1f3c6.png.ce3087655f8a4479ccf49badf98b7207.png @ianjoneill

 

I would also like to give additional recognition to @kovdu, @Swinkid, @Yovach, and MikuAuahDark for their help on documentation, code health, grammar, spelling, workflow security and maintenance!

 

[HEADING=1]Mahalo![/HEADING]

 

We hope you enjoy this latest release of Windows Terminal Preview! 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 Twitter.

 

Thank you!

 

Jan2023Signatures.thumb.png.615a350eeb9edb87a70e53caa144be5a.png

 

The post Windows Terminal Preview 1.18 Release appeared first on Windows Command Line.

 

Continue reading...

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...