Um tmux
bei jedem Shell-Login zu starten , wurde dem ~/.bashrc
(auf dem Server) Folgendes hinzugefügt :
if [ $TERM != "screen-256color" ] && [ $TERM != "screen" ]; then
tmux attach || tmux new; exit
fi
Ich möchte auch den Fenstertitel in so etwas wie user@server
(anstelle von user@localhost
) als SSH in einen Host ändern . Hier ist mein ~/.tmux.conf
:
set -g prefix C-a
unbind C-b
bind C-a send-prefix
set -g set-titles on
set -g set-titles-string "#T"
bind-key o split-window -v
bind-key e split-window -h
bind-key w kill-pane
set -g terminal-overrides 'xterm*:smcup@:rmcup@'
Wie Sie sehen, set-titles
wurde festgelegt on
, aber es funktioniert nicht wie erwartet.
Mehr Informationen:
Außerhalb von tmux:
$ echo $TERM
xterm
Innerhalb von tmux:
$ echo $TERM
screen
show -g
: https://clbin.com/h7oDh
tmux info
: http://sprunge.us/XHCB
Und hier sind die Protokolle, wenn Sie tmux -vvvvv
ein bisschen laufen :
- tmux-client-8441.log: https://clbin.com/eFwFF
- tmux-out-8443.log: https://clbin.com/MSKZv
- tmux-server-8443.log: https://clbin.com/JXwRN
Wenn ich die Zeilen in ~/.bashrc
, von meinem Laptop, ssh zum Server auskommentiere, wird die Titelleiste korrekt angezeigt ( quanta@server
), dann tmux
funktioniert der Start von dort auch wie erwartet.
Aber wenn ich tmux
sofort nach dem Login starten möchte, bleibt die Titelleiste quanta@Ubuntu
nach ssh.
UPDATE Fr 10 Mai 07:51:23 ICT 2013
Ich habe den exit
Befehl gelöscht , um die Shell-Sitzung beim Schließen des letzten tmux
Fensters nicht zu schließen :
if [ $TERM != "screen-256color" ] && [ $TERM != "screen" ]; then
tmux attach || tmux new
fi
Das Merkwürdige ist:
- SSH zum Server -> die Titelleiste:
quanta@Ubuntu
- trennen von
tmux
-> die Titelleiste wechseln zuquanta@server
tmux
Erneut anhängen -> Die Titelleiste wird weiterhin korrekt angezeigtquanta@server
Ich bin nicht sicher, ob es mit der PROMPT_COMMAND
Umgebungsvariablen zusammenhängt oder nicht:
Außerhalb von tmux
:
$ echo $PROMPT_COMMAND
echo -ne "\033]0;${USER}@${HOSTNAME%%.*}:${PWD/#$HOME/~}"; echo -ne "\007"
Innerhalb von tmux
:
$ echo $PROMPT_COMMAND
echo -ne "\033_${USER}@${HOSTNAME%%.*}:${PWD/#$HOME/~}"; echo -ne "\033\\"
tmux info
.