tmux set-titoli non funziona?


17

Per iniziare tmuxad ogni accesso alla shell, è stato aggiunto quanto segue ~/.bashrc(sul server):

if [ $TERM != "screen-256color" ] && [  $TERM != "screen" ]; then
    tmux attach || tmux new; exit
fi

Voglio anche cambiare il titolo della finestra in qualcosa di simile user@server(anziché user@localhost) quando ssh in un host. Ecco il mio ~/.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@'

Come puoi vedere, è set-titlesstato impostato su on, ma non funziona come previsto.

Più informazioni:

Al di fuori di tmux:

$ echo $TERM
xterm

All'interno di tmux:

$ echo $TERM
screen

show -g: https://clbin.com/h7oDh

tmux info: http://sprunge.us/XHCB

Ed ecco i registri quando si esegue tmux -vvvvvper un po ':

Se commento le righe in ~/.bashrc, dal mio laptop, ssh al server, la barra del titolo mostra correttamente ( quanta@server), quindi iniziare tmuxda lì funziona anche come previsto.

Ma se voglio iniziare tmuxsubito dopo il login, la barra del titolo rimane quanta@Ubuntudopo ssh.


AGGIORNAMENTO Ven 10 maggio 07:51:23 ICT 2013

Ho cancellato il exitcomando per non chiudere la sessione della shell quando l'ultima tmuxfinestra è chiusa:

if [ $TERM != "screen-256color" ] && [  $TERM != "screen" ]; then
    tmux attach || tmux new
fi

La cosa strana è:

  • ssh al server -> la barra del titolo: quanta@Ubuntu
  • staccare da tmux-> passare alla barra del titoloquanta@server
  • ricollega a tmux-> la barra del titolo viene ancora visualizzata correttamente quanta@server

Non sono sicuro che sia correlato alla PROMPT_COMMANDvariabile di ambiente o meno:

Al di fuori di tmux:

$ echo $PROMPT_COMMAND 
echo -ne "\033]0;${USER}@${HOSTNAME%%.*}:${PWD/#$HOME/~}"; echo -ne "\007"

All'interno di tmux:

$ echo $PROMPT_COMMAND
echo -ne "\033_${USER}@${HOSTNAME%%.*}:${PWD/#$HOME/~}"; echo -ne "\033\\"

Nel caso in cui non sia ovvio in questa domanda. Il suo setup funziona bene, non solo quando tenta di eseguirlo dal suo .bashrc.
slm

Fornisci l'output di tmux info.
slm

Risposte:


15

Problema risolto!

Per abilitare lo scrolling nativo del mouse xterm tmux, un sacco di wiki , sito di domande e risposte , post sul blog suggeriscono di aggiungere una linea come:

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

a ~/.tmux.conf. Ed è il colpevole.

Per consentire i titoli xterm nella finestra del terminale, è anche necessario aggiungere il XTflag, qualcosa del genere:

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

Fonte: http://opennomad.com/content/goodbye-screen-hello-tmux


3
Grazie per il tuo post. Nel mio caso con rxvt, l'impostazione èset -ga terminal-overrides ",rxvt*:XT"
favadi

2
Come ha sottolineato @favadi, la soluzione corretta per questo è usare l' -aopzione con setper aggiungere le sostituzioni di smcup / rmcup. Questo risolverà altri strani problemi, come non essere in grado di impostare correttamente la forma del cursore.
bluato il

2

È arrivato attraverso questo thread dalla mailing list di tmux-users. La discussione era intitolata: set-titoli non funzionava . Ci sono un paio di cose da questo thread da provare. C'è anche una versione più pulita del thread qui.

Risorse XTerm

Per cominciare, l'eventuale correzione consisteva nell'aggiungere la seguente riga al file delle risorse XTerm ~/.Xresources:

XTerm*allowSendEvents: true

Suggerimenti per il debug di tmux

Ci sono stati anche alcuni suggerimenti per il debug in questo thread che potrebbero aiutarti.

tmux dettagliato

  1. chiudi tutte le sessioni di tmux
  2. eseguire il comando: tmux -vvvvv
  3. eseguire il comando: vi foo
  4. salva il file
  5. esci da tmux

Dopo averlo fatto dovresti avere 3 file, qualcosa del genere:

  • tmux-out-21594.log
  • tmux-client-21592.log
  • tmux-server-21594.log

tmux info

$ 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:

Ho già letto quella discussione prima di chiedere qui. XTerm*allowSendEvents: truenon ha funzionato. I file di registro sono stati caricati. Vedi la mia domanda aggiornata.
quanti,

1
In futuro dovresti includere questi tipi di elementi nella tua domanda, in modo da non perdere tempo a ripassare le cose che hai già provato.
slm
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.