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

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


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:

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
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.