Wie konfiguriere ich Alacritty, um `tmux` automatisch zu starten?
- Wo befindet sich die Konfigurationsdatei von Alacritty?
- Anpassen der Konfiguration für das automatische Starten von tmux
- Alternativer Ansatz: tmux beim Start der Shell ausführen
- Was passiert, wenn tmux bereits läuft?
- Zusammenfassung
Alacritty ist ein moderner, schneller und ressourcenschonender Terminal-Emulator, der vollständig über eine YAML-Konfigurationsdatei angepasst wird. Wenn du möchtest, dass beim Starten von Alacritty automatisch eine tmux-Sitzung geöffnet wird, musst du die Konfiguration entsprechend anpassen.
Wo befindet sich die Konfigurationsdatei von Alacritty?
Die Standard-Konfigurationsdatei für Alacritty heißt alacritty.yml (oder alacritty.yaml) und befindet sich in der Regel im Benutzer-Home-Verzeichnis unter ~/.config/alacritty/. Falls keine Konfigurationsdatei existiert, kannst du eine vom offiziellen GitHub-Repository herunterladen und anpassen oder mit alacritty --print-events nach dem Start weitere Hinweise einholen.
Anpassen der Konfiguration für das automatische Starten von tmux
Alacritty bietet eine Einstellung namens shell, mit der du die Standard-Shell und deren Argumente definieren kannst, die beim Start eines neuen Terminals ausgeführt werden. Du kannst dies so einstellen, dass statt einfach nur die Shell zu starten, gleich ein Programm wie tmux ausgeführt wird. Der entscheidende Abschnitt in alacritty.yml sieht etwa so aus:
shell: program: /bin/bash args: - --login - -iUm tmux automatisch zu starten, passt du diesen Abschnitt wie folgt an:
shell: program: /usr/bin/tmux args:Je nachdem, wo tmux auf deinem System liegt (z.B. unter /usr/bin/tmux oder /bin/tmux), musst du den Pfad entsprechend anpassen. Du kannst den Pfad mit dem Befehl which tmux herausfinden.
Alternativer Ansatz: tmux beim Start der Shell ausführen
Manchmal möchte man lieber die Shell starten und innerhalb dieser automatisch tmux öffnen, sodass man z.B. auch normale Shell-Sitzungen starten kann, ohne direkt in tmux zu landen. Dazu kannst du die Shell weiter aufrufen und via args ein Kommando übergeben, das tmux startet.
Im Abschnitt shell trägt man dann ein:
shell: program: /bin/bash args: - --login - -c - tmuxHier wird die Shell mit den Argumenten --login und -c tmux gestartet, sodass die Shell nicht nur interaktiv ist, sondern direkt tmux startet.
Was passiert, wenn tmux bereits läuft?
Der einfache Aufruf von tmux startet entweder eine neue Session oder verbindet sich mit einer vorhandenen. Wenn du das anders steuern möchtest (etwa immer verbinden, falls eine Session existiert, sonst neu starten), kannst du tmux attach || tmux ausführen. Das funktioniert jedoch nicht direkt über die shell.args, da hier nur einzelne Argumente übergeben werden können, nicht eine zusammengesetzte Shell-Befehlskette.
Ein Workaround ist, eine kleine Wrapper-Shell-Skriptdatei zu schreiben und diese als Programm zu definieren:
#!/bin/bashtmux attach || tmuxDiese Datei z.B. ~/.local/bin/start_tmux.sh speichern, ausführbar machen (chmod +x ~/.local/bin/start_tmux.sh) und dann in der Alacritty-Konfigurationsdatei angeben:
shell: program: /home/username/.local/bin/start_tmux.sh args:Zusammenfassung
Das automatische Starten von tmux in Alacritty realisierst du am einfachsten durch die Anpassung des shell-Abschnitts in der alacritty.yml-Datei. Dabei gibst du tmux als Programm an, das beim Start direkt gestartet wird. Alternativ kannst du auch eine Shell starten, die dann tmux mitgibt. Für komplexere Startbedingungen sind Wrapper-Skripte sinnvoll.
Nach der Anpassung der Konfiguration musst du Alacritty neu starten, damit die Änderungen wirksam werden.
