- How to change the PowerShell prompt - Wed, Mar 22 2023
- Trim characters from strings in PowerShell - Tue, Mar 14 2023
- Set Chrome, Firefox and Edge as default mail client (mailto handlers) - Mon, Mar 6 2023
The console built into Windows 10 made significant progress during the latest updates. These include for example, enhanced text selection and copying and pasting capabilities (selecting across line breaks and support for Ctrl+C and Ctrl+V). The latest achievement in Windows 1903 is zooming the console window with Ctrl plus the mouse wheel.
Support for virtual terminal escape sequences
Another significant change that Windows users have barely noticed is the support for virtual terminal (VT) escape sequences. With its help, many Unix programs running in text mode control the terminal appearance, including not only the colors but also the cursor position and shape.
This extension was Microsoft's response to the requirements of the Linux subsystem, whose programs often use VT sequences. However, according to Microsoft, the aforementioned innovations also revealed the limitations of the existing console subsystem, which must remain compatible with existing text-mode programs.
Open-source Windows Terminal
As a result, the manufacturer began developing Windows Terminal, which will form the basis for various shells and command-line tools in the future. Like a number of other recent projects, such as PowerShell Core, it appears under an open-source license.
One innovation of Windows Terminal is the support for tabs. There were tabs for the conventional console in build 17666 of Windows 10, but they have removed the feature and have never shipped it with an official release.
Another special feature of Windows Terminal is that it uses a DirectWrite/DirectX-based rendering engine. Therefore, it can display all characters and symbols (including emoticons) contained in the computer's fonts. In addition, the display should be much faster than the old console's.
Deployment as a Store app
An essential difference to the previous console system is that the Windows Terminal is a Universal Windows Platform (UWP) app. As such, it has recently become available via the Microsoft Store. It requires at least Windows 10 1903 and is, as is usual with Store apps, separately installed for each user.
After the first start, the Windows Terminal preview presents itself relatively plainly. There is no system menu where the conventional console has entries for edit, properties, and default values. By default, PowerShell Core starts automatically in the first tab.
If you try to move the window by holding it with the mouse on the title bar, you will notice that this does not work, and the Terminal behaves against this Windows convention. You can only move it if you place the mouse to the right of the plus symbol.
The plus symbol lets you open a new tab where you can immediately decide whether to run PowerShell Core, Windows PowerShell, or cmd.exe in it. So-called profiles determine the tab configuration, that is, which shell should run in them and what the window appearance should look like.
Configuration by editing a JSON file
If you change a profile's settings, for example, the font size or background color, the terminal will immediately apply the changes so that no restart is required.
You can integrate via your own profiles any other text-mode programs, such as the FTP or Telnet included in Windows. The easiest way to do this is to copy an existing section within the JSON file and adapt it accordingly. Among other things, you must have your own GUID for each profile, which you can easily create via PowerShell.
Running Terminal as administrator
A common requirement with the various shells and command-line tools is that you start them as administrator. Microsoft's decision to implement the Windows Terminal as a Store app has an undesirable effect here.
My attempt to start the Windows Terminal as the default user under a privileged account caused an error message to pop up because I hadn't yet installed the app for this administrative user.
Only after I had done this could I start the Terminal in this privileged context. It then opens all shells as administrator in each new tab.
The alternative approach of starting PowerShell or cmd.exe with elevated privileges using the runas command or PowerShell's Start-Process -NoNewWindow from an existing session always opened an external window with a conventional console.
The extent to which these shortcomings are only symptoms of an early preview will soon become apparent. The number of settings is already greater than the conventional console's, so many Windows Terminal aspects are customizable (albeit by editing a JSON file).
Subscribe to 4sysops newsletter!
Microsoft's approach to making new products available to users at a very early stage also means that they initially have little value. There are currently very few reasons to use the tool.
Want to write for 4sysops? We are looking for new authors.
Nice write-up Wolfgang!
Nice info, Windows terminal is an interesting tool to have a central location for cmd line, PowerShell, and WSL.