tmux set-títulos não funciona?


17

Para iniciar tmuxem cada login do shell, foi adicionado o seguinte no ~/.bashrc(no servidor):

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

Também quero alterar o título da janela para algo como user@server(em vez de user@localhost) quando ssh em um host. Aqui está o meu ~/.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@'

Como você pode ver, set-titlesfoi definido como on, mas não funciona conforme o esperado.

Mais informações:

Fora do tmux:

$ echo $TERM
xterm

Dentro do tmux:

$ echo $TERM
screen

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

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

E aqui estão os logs quando rodando tmux -vvvvvum pouco:

Se eu comentar as linhas ~/.bashrcdo meu laptop, ssh para o servidor, a barra de título será exibida corretamente ( quanta@server) e, a tmuxpartir daí, também funcionará conforme o esperado.

Mas se eu quiser iniciar tmuximediatamente após o login, a barra de título permanecerá quanta@Ubuntuapós o ssh.


ATUALIZAÇÃO Sexta 10 de maio 07:51:23 ICT 2013

Eu apaguei o exitcomando para não fechar a sessão do shell quando a última tmuxjanela for fechada:

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

O estranho é:

  • ssh para servidor -> a barra de título: quanta@Ubuntu
  • desanexar de tmux-> a barra de título alterna paraquanta@server
  • anexar tmuxnovamente -> a barra de título ainda aparece corretamente quanta@server

Não tenho certeza se está relacionado à PROMPT_COMMANDvariável de ambiente ou não:

Fora de tmux:

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

Dentro de tmux:

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

Caso isso não seja óbvio nesta questão. Sua configuração funciona bem, mas não quando ele tenta executá-la a partir do seu .bashrc.
Slm

Forneça a saída de tmux info.
slm

Respostas:


15

Problema resolvido!

Para ativar a rolagem nativa do mouse xterm tmux, muitos sites wiki , perguntas e respostas , as postagens do blog sugerem a adição de uma linha como:

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

para ~/.tmux.conf. E é o culpado.

Para permitir títulos xterm na janela do terminal, você também precisa adicionar a XTflag, algo como isto:

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

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


3
Obrigado pelo seu post. No meu caso, com rxvt, a definição éset -ga terminal-overrides ",rxvt*:XT"
favadi

2
Como o @favadi apontou, a correção adequada para isso é usar a -aopção com setpara acrescentar as substituições smcup / rmcup. Isso resolverá outros problemas estranhos, como não conseguir definir a forma do cursor corretamente.
blueyed 5/11/14

2

Encontrei esse tópico na lista de discussão tmux-users. O segmento foi intitulado: set-títulos não está funcionando . Há algumas coisas neste tópico para tentar. Também há uma versão mais limpa do tópico .

Recursos XTerm

Para iniciantes, a correção eventual era adicionar a seguinte linha ao seu arquivo XTerm Resources ~/.Xresources:

XTerm*allowSendEvents: true

Dicas para depuração do tmux

Havia também algumas dicas de depuração neste tópico que também podem ajudá-lo.

tmux detalhado

  1. fechar todas as sessões do tmux
  2. execute o comando: tmux -vvvvv
  3. execute o comando: vi foo
  4. Salve o arquivo
  5. exit tmux

Depois de fazer isso, você deve ter três arquivos, algo como estes:

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

informações 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:

Eu já li esse tópico antes de perguntar aqui. XTerm*allowSendEvents: truenão funcionou. Os arquivos de log foram enviados. Veja minha pergunta atualizada.
Quanta 10/10

1
No futuro, você deve incluir esses tipos de itens na sua pergunta, para não perder o tempo de todo mundo refazendo as coisas que você já tentou.
slm
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.