tmux set-title не працює?


17

Для початку 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трохи:

Якщо я коментую рядки ~/.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\\"

У випадку, якщо це не очевидно в цьому питанні. Його налаштування працює добре, тільки не тоді, коли він намагається запустити його зі свого .bashrc.
slm

Укажіть, будь ласка, вихід з tmux info.
slm

Відповіді:


15

Проблема вирішена!

Щоб увімкнути прокручування нативної миші xterm tmux, багато вікі , веб-сайт Q & A , публікація в блозі пропонують додати рядок типу:

set -g terminal-overrides 'xterm*:smcup@:rmcup@'

до ~/.tmux.conf. І це винуватець.

Щоб дозволити заголовки xterm у вікні терміналу, вам також потрібно додати XTпрапор, приблизно такий:

set -g terminal-overrides "xterm*:XT:smcup@:rmcup@"

Джерело: http://opennomad.com/content/goodbye-screen-hello-tmux


3
Дякуємо за ваш пост. У моєму випадку rxvt, налаштування єset -ga terminal-overrides ",rxvt*:XT"
favadi

2
Як зазначав @favadi, правильним виправленням для цього є використання -aпараметра з setможливістю додавання змін над smcup / rmcup. Це дозволить виправити інші дивні проблеми, наприклад, не в змозі правильно встановити форму курсору.
синюватий

2

Потрапив через цю нитку зі списку розсилки користувачів tmux. Нитка отримала назву: set-title не працює . Можна спробувати кілька речей із цієї теми. Тут також є більш чиста версія теми .

Ресурси XTerm

Для початку можливим виправленням було додати наступний рядок у файл XTerm Resources ~/.Xresources:

XTerm*allowSendEvents: true

Поради щодо налагодження tmux

У цій темі були також поради щодо налагодження, які також можуть вам допомогти.

багатослівний tmux

  1. закрити всі сеанси tmux
  2. запустіть команду: tmux -vvvvv
  3. запустіть команду: vi foo
  4. збережіть файл
  5. вихід tmux

Після цього у вас має бути 3 файли, приблизно такі:

  • tmux-out-21594.log
  • tmux-client-21592.log
  • tmux-сервер-21594.log

tmux інформація

$ tmux info
tmux 1.4, pid 22182, started Fri May 10 04:00:37 2013
socket path /var/run/tmux/tmux-500/default, debug level 0
system is Linux 2.6.35.14-106.fc14.x86_64 #1 SMP Wed Nov 23 13:07:52 UTC 2011 x86_64
configuration file is /home/saml/.tmux.conf
protocol version is 6

Clients:
 0: /dev/pts/12 (8, 11): 0 [132x24 xterm] [flags=0x1/0x38, references=0]

Sessions: [5/10]
 0: 0: 1 windows (created Fri May 10 04:00:37 2013) [132x23] [flags=0x0]
   0: bash [132x23] [flags=0x8, references=1, last layout=-1]
     0: /dev/pts/48 22183 13 1/23, 135 bytes; UTF-8 0/23, 0 bytes

Terminals:
xterm [references=1, flags=0x0]:
 1: acsc: (string) ``aaffggiijjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~
 0: AX: (flag) true
 2: bel: (string) \007
 ...
 ...
144: smul: (string) \033[4m
145: vpa: (string) \033[%i%p1%dd
146: xenl: (flag) true

Jobs:

Я вже читав цю тему, перш ніж тут запитати. XTerm*allowSendEvents: trueне працювало. Файли журналу завантажено. Дивіться моє оновлене запитання.
кванта

1
Надалі вам слід включити такі питання у своє запитання, щоб не витрачати час на переосмислення речей, які ви вже пробували.
slm
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.