Zellij: Moderner Terminal-Multiplexer

Terminal-Workspace mit Layouts, Plugins und intuitivem Session-Management

Zellij: Moderner Terminal-Multiplexer

Da habe ich lange nicht mehr mit tmux gearbeitet und muss heute wieder auf einem Server in der Cloud Änderungen vornehmen, zu dem ich aber nur eine einzige ssh-Session aufbauen darf. Klar. Da werde ich einfach die Session mit tmux vor Ort in viele Text-Fenster aufteilen. Doch wie waren doch gleich wieder die Tastenkombinationen dafür?

Was ist Zellij?

Zellij ist ein Terminal-Workspace, der über die Funktionen klassischer Terminal-Multiplexer wie tmux oder screen hinausgeht. Die zugrundeliegende Philosophie ist es, Mächtigkeit nicht auf Kosten der Einfachheit zu opfern. Das Ergebnis ist ein Werkzeug, das standardmäßig eine angenehme Benutzererfahrung bietet, gleichzeitig aber tiefgreifende Anpassungen und Automatisierungen durch Layouts und ein Plugin-System ermöglicht.

Der Name "Zellij" (arabisch: الزليج) leitet sich von einer marokkanischen Mosaik-Kachelkunst ab, bei der individuell gefertigte Kacheln zu komplexen geometrischen Mustern zusammengesetzt werden. Diese Analogie spiegelt die Flexibilität und Anpassbarkeit des Tools wider, mit dem Benutzer ihren Arbeitsbereich individuell gestalten können.

Erste Schritte mit Zellij: Installation und Start

Zellij kann direkt aus dem Web gestartet werden:

bash <(curl -L https://zellij.dev/launch)

Im Falle einer Installation wird eine neue Zellij-Session einfach mit dem Befehl zellij gestartet.
Um eine laufende Session zu verlassen (detach), wird die Tastenkombination Ctrl+o gefolgt von d verwendet. Eine bestehende Session kann mit zellij attach (oder kurz zellij a) wiederaufgenommen werden, falls man sich per ssh mal ausgeloggt haben sollte und kehrt später wieder zurück.

Was mir im Vergleich zu screen und tmux besonders gefällt, ist die Plausibilität der Shorcuts. Sie sind immer am unteren Bildrand zu sehen. Etwas, was ich bei tmux sehr vermisst habe.

Die Macht der Panes: Organisation im Terminal

Panes sind die fundamentalen Bausteine eines Zellij-Workspaces. Sie ermöglichen es, mehrere Terminal-Instanzen oder spezielle Funktionsbereiche innerhalb eines Tabs zu organisieren.

Neue Panes öffnen
Die grundlegendste Funktionalität ist das Aufteilen des Terminals in verschiedene Panes:

  • Ctrl+p, dann d: Teilt das aktuelle Pane horizontal und öffnet ein neues Pane darunter.
  • Alt+n: Öffnet ein neues Pane im größten verfügbaren Bereich.
    Die Navigation zwischen den Panes erfolgt beispielsweise mit Alt + Pfeiltasten oder durch Klicken mit der Maus.

Scrollback bearbeiten
Eine besonders nützliche Funktion ist die Möglichkeit, den Scrollback-Puffer eines Panes mit dem eigenen $EDITOR (z.B. vim, nano) zu bearbeiten:

Ctrl+s, dann e: Öffnet den Scrollback des aktuellen Panes im Editor.
Im Editor können dann beispielsweise irrelevante Zeilen gelöscht oder wichtige Informationen extrahiert und in einer neuen Datei gespeichert werden.
Ein Beispiel für Vim, um alle Zeilen zu löschen, die nicht das Wort "error" enthalten:

:%g!/error/d

Anschließend kann das Ergebnis z.B. mit :w /tmp/gefilterter_output.txt gespeichert werden.

Zellij über die Kommandozeile steuern (CLI)

Zellij bietet eine Kommandozeilenschnittstelle, über die verschiedene Aktionen direkt von einem Terminal – auch innerhalb einer Zellij-Session – ausgeführt werden können. Dies ermöglicht ein mächtiges Scripting von Zellij-Funktionen.

Beispiele:
  • Sessions auflisten: zellij list-sessions
  • Eine Session löschen: zellij delete-session <session_name>

Einen Tab nach links oder rechts verschieben:

zellij action move-tab left
zellij action move-tab right

Fazit

Zellij etabliert sich als eine leistungsstarke und benutzerfreundliche Alternative im Bereich der Terminal-Workspaces und -Multiplexer. Durch seine intuitive Herangehensweise an Panes, Layouts, Session-Management und das Plugin-System bietet es sowohl Einsteigern einen leichten Zugang als auch Power-Usern die Tiefe und Flexibilität, die sie für komplexe Arbeitsabläufe benötigen.