tmux set-title no funciona?


17

Para comenzar tmuxen cada inicio de sesión de shell, se agregó lo siguiente a ~/.bashrc(en el servidor):

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

También quiero cambiar el título de la ventana a algo así user@server(en lugar de user@localhost) cuando ssh en un host. Aquí está mi ~/.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 puede ver, set-titlesse configuró en on, pero no funciona como se esperaba.

Más información:

Fuera de tmux:

$ echo $TERM
xterm

Dentro de tmux:

$ echo $TERM
screen

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

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

Y aquí están los registros cuando se ejecuta tmux -vvvvvun poco:

Si comento las líneas en ~/.bashrc, desde mi computadora portátil, ssh al servidor, la barra de título se muestra correctamente ( quanta@server), luego comenzar tmuxdesde allí también funciona como se esperaba.

Pero si quiero comenzar tmuxinmediatamente después de iniciar sesión, la barra de título permanece quanta@Ubuntudespués de ssh.


ACTUALIZACIÓN Vie 10 de mayo 07:51:23 ICT 2013

He eliminado el exitcomando para no cerrar la sesión de shell cuando tmuxse cierra la última ventana:

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

Lo extraño es:

  • ssh al servidor -> la barra de título: quanta@Ubuntu
  • separarse de tmux-> la barra de título cambie aquanta@server
  • adjuntar de tmuxnuevo -> la barra de título todavía se muestra correctamente quanta@server

No estoy seguro de si está relacionado con la PROMPT_COMMANDvariable de entorno o no:

Fuera 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\\"

En caso de que no sea obvio en esta pregunta. Su configuración funciona bien, solo que no cuando intenta ejecutarla desde su .bashrc.
slm

Proporcione la salida de tmux info.
slm

Respuestas:


15

¡Problema resuelto!

Para habilitar el desplazamiento nativo del mouse xterm tmux, muchos sitios de wiki , preguntas y respuestas , publicaciones de blog sugieren agregar una línea como:

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

a ~/.tmux.conf. Y es el culpable.

Para permitir títulos xterm en la ventana de terminal, también debe agregar el XTindicador, algo como esto:

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

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


3
Gracias por tu publicación. En mi caso con rxvt, la configuración esset -ga terminal-overrides ",rxvt*:XT"
favadi

2
Como señaló @favadi, la solución adecuada para esto es usar la -aopción setpara agregar las anulaciones smcup / rmcup. Esto solucionará otros problemas extraños, como no poder establecer la forma del cursor correctamente.
azulado

2

Encontré este hilo de la lista de correo tmux-users. El hilo se tituló: los títulos de conjunto no funcionan . Hay un par de cosas de este hilo para probar. Aquí también hay una versión más limpia del hilo .

Recursos XTerm

Para empezar, la solución final fue agregar la siguiente línea a su archivo de recursos XTerm ~/.Xresources:

XTerm*allowSendEvents: true

Depuración de consejos de tmux

También hubo algunos consejos de depuración en este hilo que también pueden ayudarlo.

tmux detallado

  1. cerrar todas las sesiones de tmux
  2. ejecuta el comando: tmux -vvvvv
  3. ejecuta el comando: vi foo
  4. guarda el archivo
  5. salir de tmux

Después de hacerlo, debe tener 3 archivos, algo así:

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

Ya leí ese hilo antes de preguntar aquí. XTerm*allowSendEvents: trueno funcionó Los archivos de registro han sido cargados. Ver mi pregunta actualizada.
quanta

1
En el futuro, debe incluir este tipo de elementos en su pregunta, a fin de no perder el tiempo de todo el mundo repitiendo cosas que ya ha intentado.
slm
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.