Microsoft Terminal

Keine Shell, keine Konsole und keine CLI

Microsoft hat vor einiger Zeit eine Applikation mit Namen “Windows Terminal” vorgestellt. Dazu hat es bereits viele Berichte geben. So lag es nahe sich in dieses Thema einzuarbeiten.

Nach Visual Studio Code die zweite OpenSource Applikation die weit über die Microsoft Welt mit Begeisterung genutzt wird.

Details

Unterschiede zu einer Shell oder Konsole

Was ist ein Terminal? Wozu werden Applikationen dieses Types verwendet? Ein Terminal ist keine Shell oder Kommandline (CLI). In der Software Welt ist eine Konsole, dasselbe wie ein Terminal. Konsolen stammen aus der Welt der Grosscomputer. Sie sind direkt mit dem Computer verbunden. Eine Shell ist ein Interpeter, der über die Kommandline als Interface die Ein- und Ausgabe realisiert.

Ein Terminal ist ein Wrapper. Es vermittelt zwischen einer Shell, wo der Benutzer die Ein- und Ausgabe abwickelt mit dem Betriebssytem.

Installation

GitHub releases page

Microsoft Store

Chocolatey:

choco install microsoft-windows-terminal

Windows Package Manager CLI (aka winget):

winget install --id=Microsoft.WindowsTerminal -e

Profile

Nach der Installation wird Terminal mit einem Tab, welches PowerShell als Standardprofil verwendet, geöffnet. Jede installierte Shell wird als Profil in der App integriert. Nach jedem erneuten Start von Windows Terminal werden diese Profile aktualisiert. D.h. wenn in der Zwischenheit eine neue Shell installiert wurde, dann wird dafür ein Profil erstellt.

Ein Profil ist nichts weiter als ein Abschnitt der Konfigurationsdatei “settings.json” und besteht minimal aus diesen Zeilen:

{ "guid": "{07b52e3e-de2c-5db4-bd2d-ba144ed6c273}", "hidden": false, "name": "Ubuntu-20.04", "source": "Windows.Terminal.Wsl" }

Das Komma, dass einzelne Profile nach der schliessenden Klammer haben, trennt lediglich die gleichen Elemente auf einer Ebene ab. D.h. das letzte Profil hat kein Komma mehr.

Diese automatisch erstellten Profile werden als “dynamische Profile” bezeichnet. “CMD” und “Powershell” sind keine dynamischen Profile. Das erstellen der dynamischen Profile kann in den globalen Settings der JSON Datei unterbunden werden.

Referenz:

Farben

Die Windows Shell lässt auf vielfältige Weise das einfärben vieler ihrer Objekte zu. Man kann z.B. ein Tab direkt mit der rechten Maustaste anklicken und die Farbe bestimmen.

Spannender sind die Schemen. In einem Schema sind die Farbanweisungen für verschiedene Elemente zusmamengefasst. Man kann die einzelnen, vorinstallierten Schemen in der Konfiguration, Abschnitt “Color Schemes” anschauen und anpassen.

Im Abschnitt “Profiles” können diese Schemata einzelnen Profilen zugewiesen werden.

Natürlich ist es effizienter, ein Schema direkt in der Json Datei anzupassen bzw. zu erstellen:

{
"background": "#0C0C0C",
"black": "#0C0C0C",
"blue": "#0037DA",
"brightBlack": "#767676",
"brightBlue": "#3B78FF",
"brightCyan": "#61D6D6",
"brightGreen": "#16C60C",
"brightPurple": "#B4009E",
"brightRed": "#E74856",
"brightWhite": "#F2F2F2",
"brightYellow": "#F9F1A5",
"cursorColor": "#FFFFFF",
"cyan": "#3A96DD",
"foreground": "#CCCCCC",
"green": "#13A10E",
"name": "Campbell",
"purple": "#881798",
"red": "#C50F1F",
"selectionBackground": "#FFFFFF",
"white": "#CCCCCC",
"yellow": "#C19C00"
}

Auf der Website Windowsterminalthemes.dev kann man die JSON Definitionen weiterer Schemata (“Themen”) downloaden. Über den “Get theme” Button wird die Json Definition in die Zwischenablage kopiert. Danach muss sie nur noch in die Konfigurationsdatei “settings.json” einfügen. Auch Terminalsplash.com ist eine beliebte Anlaufstelle.

Bekannte Spezialisten publizieren Ihre Konfigurationen auch im Internet:

Microsoft Referenz

Die verschiedenen Shells haben natürlich auch eigene Möglichkeiten, sich heraus zu putzen. Für Powershell und viele anderen Shells z.B. mit dem Modul “Oh My Posh”. Auch das Modul “Terminal-Icons” wertet die Arbeit in der PS auf.

Verschiedenes

Im Abschnitt “actions” der Datei “settings.json” kann die Tastaturbelegung definiert werden. Tastaturkürzel / Shortcuts hat Martin Thogersen in einem Cheat Sheet (PDF) festgehalten.

“Windows Terminal” kann über die Kommandozeile einer Shell gesteuert werden. Details findet man in diesem Microsoft Dokument.

Quellen

  1. GitHub Repository:

  2. MS Docs: Informationen zu Windows Terminal

  3. Windows Pro: Windows Terminal: Microsofts Konsole für alle Kommandozeilen

  4. Scott Hanselman: A new Console for Windows - It’s the open source Windows Terminal

  5. Scott Hanselman: What’s the difference between a console, a terminal, and a shell?

  6. Scott Hanselman: It’s time for you to install Windows Terminal

  7. Windows Terminal Preview 1.11 Release

  8. MS Devblogs: Windows Command-Line: Backgrounder

  9. [Microsoft Docs: Informationen zu Zeichenmodusanwendungen}(https://docs.microsoft.com/de-de/windows/console/about-character-mode-applications)

  10. Thomas Maurer: Install Windows Terminal on Windows Server 2022

Written on October 11, 2021