4 Punkte von GN⁺ 2024-08-13 | 1 Kommentare | Auf WhatsApp teilen

Erfahrungen mit WezTerm

Bevor es losgeht

  • WezTerm muss installiert sein
  • macOS-Nutzer können es mit Homebrew installieren ($ brew install wezterm)

Erklärung zu Lua

  • Die Konfiguration von WezTerm wird in Lua definiert
  • Lua ist anderen dynamischen Programmiersprachen ähnlich und daher leicht zu lesen
  • Für komplexe Konfigurationen empfiehlt es sich, Lua eingehender zu lernen

Konfigurationsdatei und Feedback-Loop

  • Die Konfigurationsdatei befindet sich unter $XDG_CONFIG_HOME/wezterm/wezterm.lua
  • Änderungen an der Konfigurationsdatei werden automatisch neu geladen
  • Logs können über das Debug-Overlay (CTRL + SHIFT + L) eingesehen werden

Erscheinungsbild konfigurieren

Farbschema

  • WezTerm bietet mehr als 1.000 Farbschemata
  • Beispiel: config.color_scheme = 'Tokyo Night'

Dynamische Farbschemata

  • Es wird Beispielcode bereitgestellt, der bei jedem Öffnen eines neuen Fensters das Farbschema zufällig ändert

System-Erscheinungsbild berücksichtigen

  • Das Farbschema wird je nach Erscheinungsmodus des Systems automatisch geändert
  • Dafür wird nach dem Erstellen der Datei appearance.lua eine Konfiguration vorgenommen

Schriftart konfigurieren

  • Die Standardschriftart ist JetBrains Mono
  • Beispiel: config.font = wezterm.font({ family = 'Berkeley Mono' })

Fenster-Styling

  • Transparenz und Blur für den Fensterhintergrund konfigurieren
  • Beispiel: config.window_background_opacity = 0.9

Statusleiste konfigurieren

  • Rechts in der Tab-Leiste wird eine Statusleiste im Powerline-Stil hinzugefügt
  • Dabei wird die Event-API von WezTerm verwendet

Tastenkonfiguration

Standard-Tastenzuordnungen

  • Die Standard-Tastenzuordnungen können beibehalten oder deaktiviert werden (config.disable_default_key_bindings = true)

Beispiele für Tastenzuordnungen

  • Option + Left Arrow und Option + Right Arrow werden der Navigation zwischen Wörtern zugeordnet
  • Ein Shortcut zum Öffnen der Konfigurationsdatei wird eingerichtet (CMD + ,)

Multiplexing-Funktionen

  • Nutzung der Multiplexing-Funktionen von WezTerm
  • Ein Shortcut zum Aufteilen von Fenstern wird eingerichtet (CTRL + SHIFT + P)

Leader-Key konfigurieren

  • Der Leader-Key wird auf CTRL + A gesetzt
  • Der Shortcut zum Aufteilen von Fenstern wird zusammen mit dem Leader-Key verwendet

Zwischen Fenstern wechseln

  • Tastenzuordnungen für die Navigation zwischen Fenstern werden eingerichtet (mit vim-Richtungstasten)

Fenstergröße anpassen

  • Eine Key-Table zum Anpassen der Fenstergröße wird eingerichtet
  • Zusammen mit dem Leader-Key kann so die Fenstergröße angepasst werden

Projekt-Workspaces

Workspaces erstellen und wechseln

  • Nach dem Erstellen der Datei projects.lua wird eine Funktion zum Wechseln zwischen Projekten hinzugefügt
  • Beim Auswählen eines Projekts wird ein neuer WezTerm-Workspace erstellt

Zusammenfassung von GN⁺

  • WezTerm ermöglicht dank der flexiblen Konfiguration mit Lua umfangreiche Anpassungen
  • Durch automatisches Neuladen und das Debug-Overlay lassen sich Konfigurationsänderungen leicht vornehmen
  • Die Multiplexing-Funktionen und die Workspace-Verwaltung sind stark, und verschiedene Tastenzuordnungen können die Produktivität steigern
  • Terminals mit ähnlichen Funktionen sind unter anderem Alacritty und kitty

1 Kommentare

 
GN⁺ 2024-08-13
Hacker-News-Kommentare
  • Ich bin vor Kurzem zu WezTerm gewechselt und sehr zufrieden. Zuvor habe ich kitty benutzt und mochte die Konfiguration und Einfachheit von iTerm2. WezTerm bietet von Haus aus deutlich bessere Funktionen. Meine Terminal-Konfiguration ist kurz genug, um komplett auf einen Editor-Bildschirm zu passen. Seitdem muss ich mich nicht mehr um das Terminal kümmern

    • Mit kitty hatte ich oft Probleme und versuchte, Funktionen aus iTerm2 nachzubauen, war aber enttäuscht von den schroffen und herablassenden Kommentaren des Maintainers von kitty
    • Zum Beispiel bekam ich auf die Frage „Wie richte ich tmux in kitty ein?“ die Antwort „Gar nicht, tmux ist dumm.“ Irgendwann habe ich aufgegeben
  • WezTerm reagiert sehr schnell auf GitHub-Issues und behebt Probleme normalerweise innerhalb von ein oder zwei Tagen. Abgesehen von einem kleinen Problem mit Modifier-Tasten über SSH ist die Funktionalität nahezu perfekt. Schnell und gut

    • Früher war ich ein großer Alacritty-Fan, brauchte aber bessere Modifier-Unterstützung für entferntes emacs
  • Beim Wechsel von Kubuntu zu Ubuntu wollte ich einige Funktionen von Konsole zurückhaben (unendlicher Scrollback, Suche im Scrollback), aber statt Konsole zu installieren, habe ich WezTerm installiert. WezTerm hat mir sofort gefallen, allerdings sind viele Funktionen nicht leicht zu entdecken. Die Dokumentation ist sehr gut, und der Autor ist sehr engagiert und hilfsbereit

    • Zum Beispiel habe ich einmal herausgefunden, wie man nur mit der Tastatur große Textblöcke auswählt, es dann aber schnell wieder vergessen und stattdessen wieder mit der Maus Text markiert. Das ist schneller, als die Doku-Seite erneut zu durchsuchen
    • Zur Referenz: Die gesuchte Seite war https://wezfurlong.org/wezterm/copymode.html
  • Ich habe Mac Terminal, iTerm2, Kitty, Warp und andere ausprobiert, bin aber bei WezTerm geblieben. Es ist leicht zu konfigurieren, schnell und sieht gut aus. Ich habe sogar ein Theme erstellt

  • Was ist der Vorteil von WezTerm? WezTerm unterstützt vollständig mehrere Betriebssysteme und läuft unter Linux, macOS und Windows. Ich teile dieselbe Terminal-Konfiguration über mehrere Betriebssysteme hinweg

  • Ich nutze WezTerm seit ungefähr einem Jahr und unterstütze Wez auf GitHub. WezTerm ist ein großartiges Terminal, und der Entwickler ist ebenfalls großartig. Ich nutze häufig Fast Copy und andere Copy-Modi

    • Auf meinem MacOS-Laptop verwende ich so etwas wie mosh+tmux zu einer Linux-Arbeitsmaschine. Ich halte ständig eine Sitzung offen, sodass ich vom Mac aus auf der Arbeitsmaschine arbeiten kann. Es bietet wiederverbindbare Sitzungen, Panels und Tabs
  • Ich bleibe wegen der Funktion „Edit->Selection Respects Soft Boundaries“ bei iTerm2. Diese interpretiert Pipe-Zeichen | als Panel-Trenner, wodurch sich die Auswahl entsprechend umbricht

  • Ich stimme den anderen hier zu. Ich nutze macOS nun seit fast 10 Jahren und habe die ganze Zeit iTerm2 verwendet. In letzter Zeit ist es langsam geworden. Bei cmd-tab musste ich über eine Sekunde warten, bis das Terminal erschien

    • Ich habe mehrere Alternativen ausprobiert, aber keine mochte ich. Ein Terminal verlangte ein Konto/Login, ein anderes war in {Java,Type}Script geschrieben und sogar einfache Befehle gingen wegen Problemen mit asynchronen Streams kaputt
    • WezTerm ist sehr schnell, gut konfigurierbar und bringt standardmäßig das Theme OneDark (base16) mit
    • Bei der Ersteinrichtung musste ich cmd-left und cmd-right zur Lua-Konfiguration hinzufügen
  • Wez wird ein Buch über Systemprogrammierung in Rust veröffentlichen

  • OT: Am meisten freue ich mich auf Ghostty, das vom HashiCorp-Gründer entwickelt wurde