Microsoft have launched a preview of the new Windows Terminal, the terminal is designed to combine the various Windows Shells (CMD, PowerShell 5.1, PowerShell Core) with the available Linux subsystems into one application. Their promise is that with the WSL 2.0 release later this year that Windows Terminal will be your go to for development and system management in mixed OS environments, but how does that really work out?
I work in a mixed environment in what I believe is a fairly typical in this day and Windows for user profiles and authentication with Linux based server for web servers and other open source systems, flicking between Command Prompt, PowerShell, PowerShell core and Bash to get the job done can be frustrating and so I was keen to start using it. However, first and foremost this feels like less of a move to more Linux but a move by Microsoft to get their own Shells in order. By this I mainly mean PowerShell.
PowerShell at its initial introduction on XP felt pretty pointless being that it didn’t add anything to CMD but years of iteration have made it the go to shell for management everything and I often wonder why CMD even exists anymore especially when PowerShell can launch all the same executables that it can however it isn’t that straightforward. PowerShell 5.1 aka: Windows PowerShell aka: the version that comes with Windows 10 and Windows Server is only getting bug and security fixed but its replacement PowerShell 6 (currently 6.2) is not nearly as feature rich as it trades compatibility with Linux and MacOS for Windows Functionality using .net Core. Muddying the already murky water further PowerShell 7 has been announced which is the sequel to 6.2 but 5.1 will continue to exist.
Does the terminal help? Yes and no. It does what it says on the tin I can run a bunch of PowerShell sessions and Debian sessions in one application, but the user experience is at best average. The issues are control and UI.
Opening new windows is not so good, ctrl + shift and a numeric key will allow you to launch your desired shell however it’s not initially clear what you’re going to get with looking at the drop-down menu in the top right. PowerShell 6 will be first on the list if it’s installed with 5.1 being the first app if it isn’t. This makes sense Microsoft are pushing this version. You can change the order by playing around with the settings which is currently (and I assume this will change with time) a json file. You also have the option to just open a new terminal using ctrl + t but frustratingly it only launches the first app in the list, I wish this was context based, if you’re working in Bash why would you want PowerShell? This seems like an odd choice. Add to this the tabs for different terminals all show Tux rather than the operating system symbol means if you’re running WSL you will get multiple tabs that don’t clearly show what operating system they are for. These use cases making the terminal experience a little frustrating and reduce its value.
The only other key command to know is that ctrl + tab will switch between tabs which is fine, but I can imagine will get uncomfortable if you’re using it frequently.
All in all, this software feels rather first pancake, which is fine as it is really Microsoft first stab at this kind of tool, and it feels like it could genuinely be useful if/when Microsoft gets the features and its house in order.