So kann man tmux so einstellen, dass es mit gnome-terminal gestartet wird :
- Gnome-Terminal starten
- Menü> Bearbeiten> Profileinstellungen> Titel und Befehl (Tab)
- Aktivieren Sie Einen benutzerdefinierten Befehl anstelle meiner Shell ausführen
- Füllen Sie benutzerdefinierten Befehl aus mit tmux
Diese Anweisungen funktionieren für mich unter Ubuntu 11.04. Das Äquivalent sollte für gnome-terminal für jede Linux-Variante funktionieren.
Alles von .zshenv
aus starten ist definitiv der falsche Ansatz. Diese Datei wird von jeder Instanz von zsh
ausgeführt , auch wenn ein Skript ausgeführt wird. Verwenden Sie .zshrc
für Dinge, die in interaktiven Shells erledigt werden sollten, und .profile
(oder .zprofile
, wenn Sie zsh als Login-Shell festgelegt haben) für Dinge, die beim Einloggen erledigt werden sollen.
Wenn Sie tmux in jedem Terminal haben möchten, starten Sie tmux direkt unter dem Terminal, z. B. gnome-terminal -e tmux
(Ändern Sie Ihren GUI-Launcher, um diese Argumente zu übergeben). Sie können Argumente sogar mit -e
übergeben (obwohl beim Zitieren vorsichtig sein), z. gnome-termminal -e 'tmux -s ~/.alternate.tmux.conf'
.
Wenn Sie auch tmux starten möchten, wenn Sie sich über ssh anmelden, müssen Sie es von Ihrem ~/.profile
starten . Tun Sie dies nur, wenn der übergeordnete Prozess der Login-Shell sshd
ist :
parent_process_name=$(ps -o comm= -p $PPID`)
case ${parent_process_name##*/} in
sshd) type tmux >/dev/null 2>/dev/null && exec tmux;;
esac
Ein anderer Ansatz zum Starten von tmux über ssh wäre das Abrufen eines Sitzungsnamens aus der Umgebung. Auf diese Weise können Sie an eine vorhandene Sitzung anhängen. Am einfachsten ist es serverseitig ein kleines Skript zu schreiben, z.B. ~/bin/tmux-login-session
:
#!/bin/sh
if tmux has-session -t "$1"; then
exec tmux attach-session -t "$1"
else
. ~/.profile
exec tmux new-session -s "$1"
fi
Verwenden Sie dann einen ssh-Befehl wie den folgenden:
ssh -t hostname.example.com bin/tmux-login-session SESSION_NAME
Führen Sie die folgenden Befehle am Terminal aus, um tmux zu erhalten jedes Mal auszuführen, wenn Sie gnome-terminal starten :
gconftool --type string --set /apps/gnome-terminal/profiles/Default/custom_command "tmux"
gconftool --type bool --set /apps/gnome-terminal/profiles/Default/use_custom_command "true"
Diese Befehle veranlassen gnome-terminal, tmux beim Start des Terminals zu starten.
- Dies führt dazu, dass gnome-terminal beendet wird, wenn Sie tmux beenden.
- Es wird ssh oder die Anmeldung sowieso nicht beeinträchtigen, da es sich um eine Gnome-Terminal-Einstellung handelt.
- Außerdem können Sie alle Verknüpfungen von gnome-terminal verwenden, die Sie auf dem Desktop angeheftet haben, und es von der Befehlszeile aus starten, während tmux ausgeführt wird, sodass Sie für dieses Verhalten keine benutzerdefinierte Verknüpfung erstellen müssen.