Na een eerste onthulling tijdens ontwikkelaarsconferentie Build begin mei, heeft Microsoft vorige week een vroege preview van de nieuwe Windows Terminal beschikbaar gemaakt als gratis download in de Microsoft Store. We installeerden de terminal en startten hem op voor een testrit.
De nieuwe Windows Terminal is een UWP-applicatie (Universal Windows Platform) en volledig opensource. De code werd onmiddellijk na de introductie op Build via GitHub vrij beschikbaar gemaakt, samen met de code van Console Windows Host (conhost.exe).
Conhost is het onderliggend proces dat ervoor zorgt dat de originele command-line-interface van Windows normaal functioneert. Wanneer je Cmd of Powershell opstart, wordt de applicatie gekoppeld aan een instantie van Conhost.
Het proces implementeert de opdrachtregelinfrastructuur van Windows en is verantwoordelijk voor het hosten van de Windows Console-API, invoer-engine, rendering-engine en gebruikersvoorkeuren. Je kan het kort door de bocht zien als een soort mini-besturingssysteem waarin consoletoepassingen zoals Cmd, PowerShell of Bash kunnen draaien.
Het primaire doel van Conhost is om achterwaartse compatibiliteit te garanderen met bestaande consoletoepassingen. Hoewel Microsoft de laatste jaren delen van de code heeft gemoderniseerd, bleef de introductie van radicale nieuwe functionaliteit om die reden uit. Daarom werd Windows Terminal ontwikkeld, dat weliswaar een aantal componenten gemeenschappelijk heeft, maar meer bewegingsvrijheid biedt voor nieuwe functionaliteit.
“Windows Terminal wordt geïnstalleerd naast de bestaande Windows Console-toepassing.”
“Windows Terminal wordt geïnstalleerd en uitgevoerd naast de bestaande ingebouwde Windows Console-toepassing”, verduidelijkt Kayla Cinnamon, Program Manager voor Windows Terminal, Console & Command-Line. “Als je Cmd/PowerShell/etc. rechtstreeks opent, zullen ze op dezelfde manier worden gekoppeld aan een traditionele console-instantie als vandaag. Op deze manier blijft achterwaartse compatibiliteit intact terwijl je de mogelijkheid krijgt om Windows Terminal te ervaren als je dat wilt. Windows Console zal nog tientallen jaren worden geleverd binnen Windows om legacy-applicaties en -systemen te ondersteunen.”
Als gebruiker ben je dus vrij om Windows Terminal al dan niet te gebruiken. In wat volgt gaan we in op enkele van de features die Microsoft reeds aan de nieuwe Windows Terminal heeft toegevoegd. Wil je zelf met de terminal aan de slag? Je vindt de preview in de Microsoft Store. Eén mogelijke beperking is dat de Windows 10 mei 2019 update op je systeem geïnstalleerd moet zijn om de applicatie te gebruiken.
Tabbladen
De toevoeging van tabbladfunctionaliteit was volgens Microsoft een veelgehoorde vraag uit de community. Windows Terminal laat toe om meerdere instanties van dezelfde toepassing of verschillende toepassingen naast elkaar te openen in hetzelfde venster.
Via het plusteken bovenaan het venster kies je uit een dropdownmenu welke applicatie in een nieuw tabblad moet openen. Of je gebruikt de sneltoetscombinatie Ctrl+Shift+1, 2, … om rechtstreeks een nieuwe instantie van de overeenkomstige toepassing (PowerShell, Cmd, Linux Bash…) te starten.
JSON-bestand
Verder is Windows Terminal ook bijzonder aanpasbaar. Gebruikers kunnen het terminalvenster helemaal naar eigen smaak personaliseren, van verschillende tekstkleuren tot zelfs geanimeerde gif’s als achtergrond. Microsoft voorziet daarvoor geen instellingenmenu, maar een JSON-bestand dat je zelf kan aanpassen. Het is momenteel niet duidelijk of dat alleen voor deze vroege preview het geval is, of deze methode behouden blijft.
Hoe dan ook, wil je momenteel aanpassingen uitvoeren dan moet je dus het betreffende JSON-bestand openen in een teksteditor. Ga opnieuw naar het dropdownmenu en kies deze keer voor ‘Settings’. Selecteer vervolgens een editor, zoals bijvoorbeeld Kladblok, waarmee je het bestand wil bewerken.
Thema veranderen
Windows Terminal bevat verschillende thema’s waarmee je onder meer de tekstkleur, achtergrondkleur, en de kleur en vorm van de cursor kan aanpassen. Je kan deze thema’s afzonderlijk aanpassen voor elke consoletoepassing.
Om het thema van een toepassing aan te passen, ga je eerst op zoek naar het bijhorende profiel in het JSON-bestand. Scroll daarvoor een eindje naar beneden tot je de sectie profiles tegenkomt. Daaronder vind je meerdere blokken code (zie voorbeeld hieronder), die telkens op één toepassing betrekking hebben.
{ "acrylicOpacity" : 0.75, "closeOnExit" : true, "colorScheme" : "Campbell", "commandline" : "cmd.exe", "cursorColor" : "#FFFFFF", "cursorShape" : "bar", "fontFace" : "Consolas", "fontSize" : 10, "guid" : "{0caa0dad-35be-5f56-a8ff-afceeeaa6101}", "historySize" : 9001, "icon" : "ms-appx:///ProfileIcons/{0caa0dad-35be-5f56-a8ff-afceeeaa6101}.png", "name" : "cmd", "padding" : "0, 0, 0, 0", "snapOnInput" : true, "startingDirectory" : "%USERPROFILE%", "useAcrylic" : true }
Bovenstaande code hoort bij de Cmd-toepassing (“commandline” : “cmd.exe”). We willen ter illustratie het kleurschema aanpassen, dus vervangen we bij “colorScheme” Cambell door het lichtere Solarized Light.
Microsoft introduceerde al in 2017 de Windows Console Colortool om het kleurschema van de console aan te passen. Dezelfde standaardthema’s van die tool komen terug in Windows Terminal: Campbell, One Half Dark, One Half Light, Solarized Dark en Solarized Light. Het JSON-bestand bevat een sectie schemes waar je al deze thema’s zelf kan aanpassen of je eigen kleurschema’s kan toevoegen.
We gaan nog even verder met personaliseren en verhogen de transparantie van ons terminalvenster naar 25 procent, veranderen het lettertype naar Courier New met grootte 12 en wisselen de cursor van een witte bar naar een fuschia filledBox (andere opties zijn emptyBox, underScore en vintage). De code voor onze Cmd-toepassing ziet er nu als volgt uit:
{ "acrylicOpacity" : 0.25, "closeOnExit" : true, "colorScheme" : "Solarized Light", "commandline" : "cmd.exe", "cursorColor" : "#FF00FF", "cursorShape" : "filledBox", "fontFace" : "Courier New", "fontSize" : 12, "guid" : "{0caa0dad-35be-5f56-a8ff-afceeeaa6101}", "historySize" : 9001, "icon" : "ms-appx:///ProfileIcons/{0caa0dad-35be-5f56-a8ff-afceeeaa6101}.png", "name" : "cmd", "padding" : "0, 0, 0, 0", "snapOnInput" : true, "startingDirectory" : "%USERPROFILE%", "useAcrylic" : true }
Achtergrond toevoegen
Wil je nog verder gaan, dan kan je zelfs een eigen achtergrondafbeelding toevoegen. Dat kan een png, jpg of zelfs een bewegende gif zijn. Om de afbeelding te kunnen gebruiken, moet je ze op een locatie bewaren die Windows Terminal kan interpreteren, meer bepaald:
%LOCALAPPDATA%PackagesMicrosoft.WindowsTerminal_8wekyb3d8bbweRoamingState
Dat is de locatie waar ook het JSON-bestand wordt bewaard. Plaats hier je afbeelding en Windows Terminal kan ze als achtergrond gebruiken. Daarvoor moeten we een paar regels code toevoegen aan het profiel van de applicatie in kwestie:
"backgroundImage" : "ms-appdata:///roaming/tz-icon.png", "backgroundImageOpacity" : 0.25, "backgroundImageStrechMode" : "fill",
De eerste regel verwijst naar de locatie van de afbeelding. Pas hier tz-icon.png aan naar de correcte bestandsnaam. Let er op dat alle regels in een sectie, behalve de laatste, eindigen met een komma.
Nieuw profiel toevoegen
Standaard biedt Windows Terminal een profiel voor Cmd en voor PowerShell. Je kan evenwel eenvoudig nieuwe profielen toevoegen, zowel voor aangepaste instanties van deze applicaties, als voor nieuwe toepassingen. Wij willen graag een profiel toevoegen voor Ubuntu.
Om een nieuw profiel toe te voegen, kopieer je een bestaand profiel in het JSON-bestand en verander je minstens volgende parameters: name, commandline en guid. We kiezen in ons voorbeeld ‘ubuntu’ als naam, geven ubuntu.exe als toepassing op bij commandline en genereren een nieuwe GUID.
Ons profiel ziet er als volgt uit:
{ "acrylicOpacity" : 0.75, "closeOnExit" : true, "colorScheme" : "Campbell", "commandline" : "ubuntu.exe", "cursorColor" : "#FFFFFF", "cursorShape" : "bar", "fontFace" : "Consolas", "fontSize" : 10, "guid" : "{40169596-35c1-4c57-b426-bf9052c3ddf3}", "historySize" : 9001, "icon" : "ms-appx:///ProfileIcons/{0caa0dad-35be-5f56-a8ff-afceeeaa6101}.png", "name" : "ubuntu", "padding" : "0, 0, 0, 0", "snapOnInput" : true, "startingDirectory" : "%USERPROFILE%", "useAcrylic" : true }
Ubuntu is onmiddellijk beschikbaar als derde profiel in Windows Terminal en klaar voor gebruik. Optioneel kan je de toepassing nog verder personaliseren door een uniek icoon toe te voegen of het kleurschema aan te passen.
Sneltoetsen aanpassen
Een laatste element dat je kan wijzigen, zijn de standaard sneltoetscombinaties. Afhankelijk van je toetsenbordindeling, pas je sommige daarvan misschien liever aan. De sneltoetscombinaties vind je helemaal bovenaan het JSON-bestand, onder de sectie keybindings.
De sneltoetscombinaties hebben hoofdzakelijk betrekking tot het openen en sluiten van, en schakelen tussen verschillende tabbladen. De standaard sneltoetscombinatie om ons Ubuntu-profiel in Windows Terminal te openen is Ctrl+Shift+3 (newTabProfile2). We passen het aan naar het eenvoudig te onthouden Ctrl+u.
{ "command" : "newTabProfile2", "keys" : [ "ctrl+u" ] }
Deze eerste Store-versie van Windows Terminal is nog een vroege preview. Nog niet alle functionaliteit is aanwezig, maar het is wel al een bruikbaar product. Microsoft laat weten dat het Terminal-team werkt aan een “consistent schema dat regelmatige previews en frequentere builds biedt voor degenen die toegang willen krijgen tot de nieuwste functies zodra ze arriveren”. Windows Terminal 1.0 zou dan deze winter nog in de Microsoft Store moeten verschijnen.