Je serais ravi de pouvoir renommer automatiquement le titre de ma fenêtre tmux en prompt_command, ps1 ou tout simplement le nom d'hôte d'une machine sur laquelle je vais ssh
. avoir 9 fenêtres ouvertes étiquetées "ssh" est vraiment inutile. Faire le travail sysadmin j'ouvre de nouveaux écrans et ssh autour de beaucoup pour les renommer manuellement.
Une chose que j'ai remarquée est la tmux
mise à jour du xterm
titre de la fenêtre, donc j'ai l'impression qu'il faut le savoir.
De l'aide? Je serais même prêt à revenir screen
si je pouvais obtenir cette fonctionnalité.
PROMPT_COMMAND='settitle $HOSTNAME:$PWD'
- car avec le code de @ Mikel, je n'ai reçu aucun nom d'hôte et une-bash: : No such file or directory
erreur avant chaque invite de commande. Il me semble que le$()
ferait essayer à bash d'exécuter n'importe quelsettitle
retour . (Je cours bash sur linux.)tmux rename-window -t${TMUX_PANE} "Title Text"
C'est la bonne façon de définir les titres tmux dans une fenêtre. La variable $ TMUX_PANE est définie par tmux et est utilisée pour différencier les différents volets.
la source
-t${TMUX_PANE}
soit nécessaire (du moins ce n'était pas pour moi).sleep 3
et changez de fenêtre, l'invite émettrait sinon la commande dans la mauvaise fenêtre une fois le sommeil terminé. (C'est la raison pour laquelle je suis venu ici, +1).Juste pour les gens qui sont venus ici en cherchant comment changer le titre d'une session tmux:
Ctrl+ B,$
Cela vous donnera une invite, où vous pourrez renommer la session active.
Pour modifier la fenêtre active, utilisez plutôt komma:
Ctrl+ B,,
voir: Comment renommer une session dans tmux?
la source
En combinant les réponses de Mikel et d'UtahJarhead, j'ai utilisé ce qui suit
.zshrc
pour résoudre ce problème:Le changement de nom de fenêtre automatique est activé par défaut et je ne trouve pas de moyen de le réactiver après avoir quitté l'hôte distant. Ainsi, je quitte tout simplement la fenêtre - pas un problème pour mon flux de travail. Si vous préférez le renommer par exemple en «bash», vous pouvez remplacer la
exit
ligne partmux rename-window "bash"
.la source
hostname -s
après la commande ssh "@ $", il "réinitialise" essentiellement le titre sur ma machine "passerelle".Au lieu de
exit
outmux rename-window "bash"
vous pouvez utiliserCela réactive la fonction normale qui renomme automatiquement la fenêtre pour les commandes suivantes.
Le
if
bloc empêche de (sans lui) renommertmux
la fenêtre courante desssh
commandes utilisées sur d'autres shells (horstmux
).la source
if env | grep -q "TMUX_PANE"; then
au lieu de l'ps -p...
étoffe, mais le même principe.Je sais que cela a été répondu il y a longtemps, mais je pensais que j'ajouterais ce que j'ai tripoté et trouvé (sur la base de la réponse acceptée) .. J'ai ajouté cela au / etc / bashrc de tous mes serveurs (facile à faire avec du tissu, des marionnettes, etc.)
Et il définit automatiquement le nom de la fenêtre dans screen ou tmux.
la source
hostname -s
supprimons les éléments de domaine supplémentaires, de sorte que server1.internal.local apparaisse comme juste server1Une autre solution serait de renommer la fenêtre active en son nom précédent, après la session ssh:
la source
Cela fonctionne pour dans
tmux 2.1
et avec zsh localement et sur les serveurs:J'ai dû désactiver l'option allow-rename manuellement avant de changer le nom de Windows - sinon il a été changé pour le chemin actuel sur la plupart de mes serveurs (également en utilisant zsh là-bas). La bonne chose est: si vous réactivez l'option allow-rename, cela fonctionne immédiatement.
la source
Ajoutez ceci à
.profile
ou.bashrc
la source
Je noterais dans tous ces exemples avec:
Vous voudrez peut-être saisir le code de sortie et quitter la fonction avec, sinon des choses comme:
Renvoie 0.
Quittera ssh avec le code retour du ssh.
la source