Для початку tmux
кожного входу в оболонку до ~/.bashrc
(на сервері) було додано наступне :
if [ $TERM != "screen-256color" ] && [ $TERM != "screen" ]; then
tmux attach || tmux new; exit
fi
Я також хочу змінити назву вікна на щось на зразок user@server
(замість user@localhost
), коли ssh в хост. Ось моє ~/.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@'
Як бачите, set-titles
було встановлено on
, але це не працює так, як очікувалося.
Більше інформації:
Поза tmux:
$ echo $TERM
xterm
Всередині tmux:
$ echo $TERM
screen
show -g
: https://clbin.com/h7oDh
tmux info
: http://sprunge.us/XHCB
І ось журнали, коли ви працюєте tmux -vvvvv
трохи:
- tmux-client-8441.log: https://clbin.com/eFwFF
- tmux-out-8443.log: https://clbin.com/MSKZv
- tmux-server-8443.log: https://clbin.com/JXwRN
Якщо я коментую рядки ~/.bashrc
з мого ноутбука, ssh до сервера, рядок заголовка відображається правильно ( quanta@server
), то запуск tmux
звідти також працює як очікувалося.
Але якщо я хочу розпочати tmux
відразу після входу, рядок заголовка залишається quanta@Ubuntu
після ssh.
ОНОВЛЕННЯ Пт 10 травня 07:51:23 ІКТ 2013
Я видалив exit
команду, щоб не закривати сеанс оболонки, коли останнє tmux
вікно закрите:
if [ $TERM != "screen-256color" ] && [ $TERM != "screen" ]; then
tmux attach || tmux new
fi
Дивна річ:
- ssh на сервер -> рядок заголовка:
quanta@Ubuntu
- відключити від
tmux
-> перемикання рядка заголовка наquanta@server
- приєднати до
tmux
знову -> заголовок все ще відображається правильноquanta@server
Я не впевнений, пов’язаний він із PROMPT_COMMAND
змінною середовища чи ні:
Поза tmux
:
$ echo $PROMPT_COMMAND
echo -ne "\033]0;${USER}@${HOSTNAME%%.*}:${PWD/#$HOME/~}"; echo -ne "\007"
Всередині tmux
:
$ echo $PROMPT_COMMAND
echo -ne "\033_${USER}@${HOSTNAME%%.*}:${PWD/#$HOME/~}"; echo -ne "\033\\"
tmux info
.