tmux: Befehl an Fenster senden

Tmux verwende ich inzwischen täglich. Ich habe mir mit tmuxinator ein Setup gebaut, wo ich verschiedene Fenster haben um bestimmte Befehle und Kontexte zu trennen. So habe ich zum Beispiel ein Radio Window. Dort läuft der VLC Player und spielt mein lieblings Radio als Webstream ab.

So schön so gut. Nun habe ich aber oft die Situation, dass ich da Radio an- bzw abschalten muss, weil ein Call rein kommt. Ich muss dann erst in das Fenster wechseln und dann den Process beenden. Und wenn der Call vorbei ist wechsel ich wieder in das Fenster und starte das Radio erneut. Das muss doch einfacher gehen!

Und tatsächlich man kann Befehle direkt an ein bestimmtes tmux Window schicken. Egal wo man ist.

tmux send-keys -t SESSION:WINDOW "echo Hello World" C-m

Damit habe ich mir 2 Aliase gebaut um einfach das Radio in dem Fenster zu kontrollieren:

# ~/.dotfiles/zsh/aliases.zsh
alias on='tmux send-keys -t Work:Radio "radio" C-m'
alias off='tmux send-keys -t Work:Radio C-z'

Meine tmux Session heißt Work und das Fenster habe ich Radio genannt. Ich hab einen Alias radio der mir den Webstream aufruft und im VLC Player abspielt.

Mit C-m wird der Befehl im Fenster auch ausgeführt. Wenn man das weg lässt wird der Befehl lediglich im Terminal eingetippt. C-z sendet ein SIGSTOP und beendet den Prozess und das Radio hört auf zu spielen.

Perfekte kleine Helfer. So kann ich nun von überall mit on und off das Radio kontrollieren.

Quelle: stackoverflow.com

Veröffentlicht von Hans-Helge

Der studierte Informatiker arbeitet als Entwickler und Trainer bei ChurchTools und betreut neben eigenen Projekten einige andere Webseiten u.A. im ehrenamtlichen Bereich.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert