tmux set-title ne fonctionne pas?

17

Pour commencer tmuxà chaque connexion au shell, les éléments suivants ont été ajoutés au ~/.bashrc(sur le serveur):

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

Je veux également changer le titre de la fenêtre en quelque chose comme user@server(au lieu de user@localhost) lorsque ssh en hôte. Voici mon ~/.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@'

Comme vous pouvez le voir, a set-titlesété défini sur on, mais cela ne fonctionne pas comme prévu.

Plus d'informations:

En dehors de tmux:

$ echo $TERM
xterm

À l'intérieur de tmux:

$ echo $TERM
screen

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

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

Et voici les journaux lors de l'exécution tmux -vvvvvun peu:

Si je commente les lignes ~/.bashrc, depuis mon ordinateur portable, ssh vers le serveur, la barre de titre s'affiche correctement ( quanta@server), puis commence à tmuxpartir de là fonctionne également comme prévu.

Mais si je veux commencer tmuximmédiatement après la connexion, la barre de titre reste quanta@Ubuntuaprès ssh.


MISE À JOUR ven. 10 mai 07:51:23 ICT 2013

J'ai supprimé la exitcommande afin de ne pas fermer la session shell lorsque la dernière tmuxfenêtre est fermée:

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

La chose étrange est:

  • ssh to server -> la barre de titre: quanta@Ubuntu
  • détacher de tmux-> le commutateur de la barre de titre surquanta@server
  • attacher à tmuxnouveau -> la barre de titre s'affiche toujours correctement quanta@server

Je ne sais pas si c'est lié à la PROMPT_COMMANDvariable d'environnement ou non:

En dehors de tmux:

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

À l'intérieur de tmux:

$ echo $PROMPT_COMMAND
echo -ne "\033_${USER}@${HOSTNAME%%.*}:${PWD/#$HOME/~}"; echo -ne "\033\\"
quanta
la source
Au cas où ce ne serait pas évident dans cette question. Sa configuration fonctionne bien, mais pas lorsqu'il essaie de l'exécuter à partir de son .bashrc.
slm
Veuillez fournir la sortie de tmux info.
slm

Réponses:

15

Problème résolu!

Pour activer le défilement natif de la souris xterm tmux, de nombreux sites wiki , Q & A , blog suggèrent d'ajouter une ligne comme:

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

à ~/.tmux.conf. Et c'est le coupable.

Pour autoriser les titres xterm dans la fenêtre du terminal, vous devez également ajouter le XTdrapeau, quelque chose comme ceci:

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

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

quanta
la source
3
Merci pour votre message. Dans mon cas rxvt, le réglage estset -ga terminal-overrides ",rxvt*:XT"
favadi
2
Comme l'a souligné @favadi, la solution appropriée consiste à utiliser l' -aoption avec setpour ajouter les remplacements smcup / rmcup. Cela corrigera d'autres problèmes étranges, comme le fait de ne pas pouvoir définir correctement la forme du curseur.
blueyed
2

Je suis tombé sur ce fil depuis la liste de diffusion tmux-users. Le fil était intitulé: set-title ne fonctionne pas . Il y a quelques choses à essayer dans ce fil. Il existe également une version plus propre du fil ici.

Ressources XTerm

Pour commencer, le correctif éventuel consistait à ajouter la ligne suivante à votre fichier XTerm Resources ~/.Xresources:

XTerm*allowSendEvents: true

Déboguer les astuces tmux

Il y avait aussi quelques conseils de débogage dans ce fil qui pourraient également vous aider.

tmux verbeux

  1. fermer toutes les sessions tmux
  2. exécutez la commande: tmux -vvvvv
  3. exécutez la commande: vi foo
  4. enregistrez le fichier
  5. quitter tmux

Après cela, vous devriez avoir 3 fichiers, quelque chose comme ceux-ci:

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

info 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:
slm
la source
J'ai déjà lu ce fil avant de demander ici. XTerm*allowSendEvents: truen'a pas fonctionné. Les fichiers journaux ont été téléchargés. Voir ma question mise à jour.
quanta
1
À l'avenir, vous devriez inclure ces types d'éléments dans votre question, afin de ne pas perdre le temps de tout le monde à ressasser les choses que vous avez déjà essayées.
slm