devAlice
← Windows

Windows Terminal Setup — Tabs · Splits · WSL/PowerShell + Oh My Posh

Windows Terminal wie macOS iTerm anfühlen lassen. Profile / Keybindings / Theme in einer settings.json festhalten.

Windows-Entwicklung beginnt mit Windows Terminal. WSL, PowerShell und die Eingabeaufforderung als Tabs und Splits in einem Fenster bündeln und die gesamte Konfiguration in einer einzelnen JSON-Datei (settings.json) einfrieren. Mit einem guten Setup erhält man eine Arbeitsumgebung, die macOS iTerm + tmux nahezu ebenbürtig ist.

Ich glaube, was Windows Terminal heute von der alten cmd.exe unterscheidet, ist nicht nur das moderne Aussehen, sondern die Tatsache, dass die gesamte Konfiguration in einer einzigen JSON-Datei liegt — weil das bedeutet, dass man die Terminal-Einrichtung als Code behandeln kann, statt sie auf jedem neuen Gerät von Hand zusammenzuklicken. Früher war das Windows-Terminal das schwächste Glied im Dev-Workflow-Vergleich mit macOS; heute ist es ein vollwertiger Ersatz, da WSL-Integration und JSON-Konfiguration den Abstand deutlich verringert haben.

Dieser Leitfaden richtet sich an Windows 11 / Windows Terminal 1.21+. Er ist der abschließende Terminal-Einrichtungsschritt nach der Windows-Ersteinrichtung und dem WSL-Tuning.

TL;DR

  1. Windows Terminal aus dem Microsoft Store installieren (in Win11 eingebaut)
  2. Strg+, (oder ▼ → Einstellungen) → JSON-Bearbeitungsmodus
  3. Die settings.example.json dieses Leitfadens herunterladen und für die eigene Maschine anpassen
  4. JetBrains Mono Font + dunkles Theme + Acryl-Transparenz
  5. Oh My Posh zur Verschönerung des PowerShell-Prompts

Voraussetzungen

  • Windows 11 (10 funktioniert auch; einige Acryl-Effekte unterscheiden sich)
  • WSL2 installiert — WSL-Tuning
  • (Optional) PowerShell 7 (winget install Microsoft.PowerShell)

settings.json herunterladen

Die von devAlice empfohlene Basiskonfiguration — GUIDs von der eigenen Maschine einfügen und fertig.

settings.json
# 1. Herunterladen
Invoke-WebRequest `
  -Uri https://devalice.jaceclub.com/assets/windows/windows-terminal-setup/settings.example.json `
  -OutFile settings.json
 
# 2. SHA-256 prüfen (Windows PowerShell)
Get-FileHash settings.json -Algorithm SHA256
# Erwartet (Hash): BBDEBB16B68F5BBD9041DBE4FEFEC8BA5F30B497325F2A11B922C1DAEDB8525F
# (kleinschreibung: bbdebb16b68f5bbd9041dbe4fefec8ba5f30b497325f2a11b922c1daedb8525f)
 
# 3. Inspizieren
notepad settings.json
 
# 4. An tatsächlichen Ort kopieren (Windows Terminal Stable)
$dst = "$env:LOCALAPPDATA\Packages\Microsoft.WindowsTerminal_8wekyb3d8bbwe\LocalState\settings.json"
Copy-Item settings.json $dst -Force

⚠️ Die vier guid-Felder durch die Maschinenwerte ersetzen. Windows Terminal einmal öffnen und die automatisch generierten GUIDs im Menü nachsehen.


1. Windows Terminal installieren — 1 Min.

In Win11 eingebaut. Andernfalls:

winget install Microsoft.WindowsTerminal

Mit Win + T oder Startmenü → „Terminal" öffnen.

Standard-Shortcuts (vor der Anpassung)

TasteAktion
Strg+,Einstellungen
Strg+Umschalt+TNeuer Tab
Strg+TabNächster Tab
Strg+Umschalt+WTab schließen
Alt+Umschalt++Rechts teilen
Alt+Umschalt+-Unten teilen

2. settings.json direkt bearbeiten — 5 Min.

Die GUI hat Grenzen. Direkt JSON verwenden.

Strg+, (Einstellungen) → unten links ⚙ JSON-Datei öffnen → settings.json öffnet sich im Standard-Editor.

Pfad:

%LOCALAPPDATA%\Packages\Microsoft.WindowsTerminal_8wekyb3d8bbwe\LocalState\settings.json

Windows Terminal Preview verwendet denselben Pfad unter Microsoft.WindowsTerminalPreview_.... Eine andere Datei.

Fünf wichtige Einstellungen

{
  "$schema": "https://aka.ms/terminal-profiles-schema",
 
  // Standardprofil (GUID)
  "defaultProfile": "{2c4de342-...}",  // z.B. Ubuntu WSL
 
  // Beim Markieren kopieren — iTerm-Stil
  "copyOnSelect": true,
  "copyFormatting": "none",  // nur Klartext (keine Farbe/Format)
 
  // Theme
  "theme": "dark"
}

3. Profile — WSL + PowerShell 7 + Ausgeblendet — 10 Min.

3.1 Ubuntu (WSL)-Profil

{
  "guid": "{2c4de342-38b7-51cf-b940-2309a097f518}",  // Maschinenwert
  "name": "Ubuntu (WSL)",
  "source": "Windows.Terminal.Wsl",
  "commandline": "wsl.exe -d Ubuntu",
  "startingDirectory": "//wsl$/Ubuntu/home/%USERNAME%",
  "colorScheme": "One Half Dark",
  "icon": "ms-appx:///ProfileIcons/{9acb9455-ca41-5af7-950f-6bca1bc9722f}.png"
}

startingDirectory auf das WSL-Home zeigen lässt jeden neuen Tab bei ~/ öffnen.

3.2 PowerShell 7-Profil

{
  "guid": "{574e775e-4f2a-5b96-ac1e-a2962a402336}",  // Maschinenwert
  "name": "PowerShell 7",
  "commandline": "pwsh.exe -NoLogo",
  "startingDirectory": "%USERPROFILE%",
  "colorScheme": "Campbell Powershell",
  "icon": "ms-appx:///ProfileIcons/pwsh.png"
}

-NoLogo blendet das PowerShell-Willkommensbanner aus. Muss man nicht jedes Mal sehen.

3.3 Nicht verwendete Profile ausblenden

Wenn man die Eingabeaufforderung, Azure Cloud Shell oder Windows PowerShell (5.1) nicht verwendet:

{
  "guid": "{61c54bbd-c2c6-5271-96e7-009a87ff44bf}",
  "name": "Windows PowerShell",
  "hidden": true
}

4. Font + Theme — 5 Min.

4.1 JetBrains Mono installieren

winget install JetBrains.JetBrainsMono
# Oder: scoop bucket add nerd-fonts; scoop install JetBrainsMono-NF

Nach der Installation ab- und anmelden (Font-Cache-Aktualisierung).

4.2 Font-Standardeinstellungen anwenden

"profiles": {
  "defaults": {
    "fontFace": "JetBrains Mono",
    "fontSize": 12,
    "fontWeight": "normal",
    "useAcrylic": true,
    "acrylicOpacity": 0.85,
    "cursorShape": "filledBox",
    "antialiasingMode": "cleartype",
    "padding": "10",
    "scrollbarState": "hidden",
    "snapOnInput": true,
    "historySize": 50000
  },
  // Liste...
}

defaults gilt für jedes Profil; profilspezifische Überschreibungen sind möglich.

4.3 Zusätzliche Themes (optional)

Paletten zum schemes-Array hinzufügen. JSON von Windows Terminal Themes kopieren.


5. Keybindings — Mac-Standard nachahmen — 5 Min.

Zu actions hinzufügen. Das herunterladbare Asset enthält bereits:

"actions": [
  { "command": "find",                                       "keys": "ctrl+shift+f" },
  { "command": "paste",                                       "keys": "ctrl+shift+v" },
  { "command": "copy",                                        "keys": "ctrl+shift+c" },
  { "command": { "action": "splitPane", "split": "right" }, "keys": "alt+shift+plus" },
  { "command": { "action": "splitPane", "split": "down"  }, "keys": "alt+shift+minus" },
  { "command": "closePane",                                   "keys": "ctrl+shift+w" },
  { "command": { "action": "moveFocus", "direction": "left"  }, "keys": "alt+left" },
  { "command": { "action": "moveFocus", "direction": "right" }, "keys": "alt+right" },
  { "command": { "action": "newTab" },                       "keys": "ctrl+shift+t" },
  { "command": { "action": "nextTab" },                      "keys": "ctrl+tab" }
]

Eine natürliche Zuordnung für Umsteiger von iTerm / Terminal.app.


6. Oh My Posh — PowerShell-Prompt aufwerten — 10 Min.

PS C:\Users\u> ist informationsarm. Git-Branch, Exit-Code, verkürzte Pfade hinzufügen.

6.1 Installation

winget install JanDeDobbeleer.OhMyPosh

Neues Terminal öffnen.

6.2 Im PowerShell-Profil anwenden

notepad $PROFILE
# Falls fehlend: New-Item -Path $PROFILE -ItemType File -Force

Inhalt:

oh-my-posh init pwsh --config "$env:POSH_THEMES_PATH\jandedobbeleer.omp.json" | Invoke-Expression

Sofortige Wirkung in einem neuen PowerShell-Fenster.

6.3 Theme wechseln

Get-PoshThemes              # alle Themes vorschauen
oh-my-posh init pwsh --config "$env:POSH_THEMES_PATH\powerlevel10k_rainbow.omp.json" | Invoke-Expression

Das gewählte Theme in $PROFILE speichern, um es dauerhaft zu machen.

6.4 Auf bash/zsh in WSL anwenden (optional)

# Innerhalb von WSL bash/zsh
curl -s https://ohmyposh.dev/install.sh | bash -s
echo 'eval "$(oh-my-posh init bash --config ~/.poshthemes/jandedobbeleer.omp.json)"' >> ~/.bashrc

7. Tägliche Muster

7.1 Schnelles Teilen + anderer Befehl

Alt+Umschalt++ zum rechts Teilen → neues Fenster führt wsl -d Ubuntu aus. Links ist PowerShell, rechts ist WSL — Mac-iTerm + tmux-Feeling.

7.2 tmux innerhalb von WSL

Windows Terminal teilt nur Fenster — echte Sitzungsverwaltung (Trennen/Wiederverbinden) lebt in tmux innerhalb von WSL:

# In WSL bash
sudo apt install tmux
tmux new -s dev          # neue Sitzung
# Arbeiten, dann Strg+B → D (trennen)
tmux attach -t dev       # wiederverbinden

Das Schließen von Windows Terminal beendet die tmux-Sitzung nicht.

7.3 settings.json in Git halten

$src = "$env:LOCALAPPDATA\Packages\Microsoft.WindowsTerminal_8wekyb3d8bbwe\LocalState\settings.json"
$dst = "$HOME\dotfiles\windows-terminal\settings.json"
mkdir "$HOME\dotfiles\windows-terminal" -ErrorAction SilentlyContinue
Copy-Item $src $dst -Force
cd "$HOME\dotfiles"
git add windows-terminal/settings.json
git commit -m "feat: windows terminal settings"

Das Kopieren auf einer neuen Maschine umkehren für sofortige Synchronisierung.


8. Fehlerbehebung

Font nicht angewendet

Font-Cache muss nach der JetBrains Mono-Installation aktualisiert werden. Ab- und anmelden oder neu starten.

Acryl-Transparenz fehlt

Windows 11 deaktiviert Acryl im Akkuschonmodus oder wenn Transparenzeffekte deaktiviert sind. Einstellungen → Personalisierung → Farben → Transparenzeffekte aktivieren.

WSL-Profil startingDirectory ignoriert

Muss mit //wsl$/... beginnen (zwei Schrägstriche). \\wsl$\\... bricht in einigen Umgebungen.

PowerShell 7-Prompt-Glyphen defekt

Einige Oh My Posh-Themes benötigen einen Nerd Font. Font auf eine Nerd-Variante wechseln:

winget install JetBrains.JetBrainsMono   # Basis
# Nerd Font-Variante über https://www.nerdfonts.com/ oder scoop

Was kommt als Nächstes

Referenzen

Changelog

  • 2026-05-12 — Erster Entwurf (devAlice M2 Seed-Erweiterung)