Me encantaría poder cambiar el nombre de mi ventana tmux automáticamente a prompt_command, ps1 o simplemente el nombre de host de una máquina a la que iré ssh
. tener 9 ventanas abiertas con la etiqueta "ssh" es realmente inútil. Al hacer el trabajo de administrador del sistema, abro nuevas pantallas y ssh alrededor para cambiarles el nombre manualmente.
Una cosa que noté es que tmux
actualiza el xterm
título de la ventana, así que siento que tiene que saberlo.
¿Alguna ayuda? Incluso estaría dispuesto a volver screen
si pudiera obtener esta función.
PROMPT_COMMAND='settitle $HOSTNAME:$PWD'
, ya que con el código de @ Mikel no obtuve un nombre de host y un-bash: : No such file or directory
error antes de cada símbolo del sistema. Me parece que$()
haría que bash intente ejecutar lo que sea quesettitle
devuelva . (Estoy ejecutando bash en Linux.)tmux rename-window -t${TMUX_PANE} "Title Text"
Esta es la forma correcta de configurar títulos tmux en una ventana. La variable $ TMUX_PANE es establecida por tmux y se usa para diferenciar entre diferentes paneles.
fuente
-t${TMUX_PANE}
sea necesario (al menos no fue para mí).sleep 3
y cambia de ventana, el mensaje emitiría el comando a la ventana incorrecta cuando finalice el modo de suspensión. (Esta es la razón por la que vine aquí, +1).Solo para las personas que vinieron aquí buscando cómo cambiar el título de una sesión tmux:
Ctrl+ B,$
Esto le dará un aviso, donde puede cambiar el nombre de la sesión activa.
Para cambiar la ventana activa, use komma en su lugar:
Ctrl+ B,,
ver: ¿Cómo cambio el nombre de una sesión en tmux?
fuente
Combinando las respuestas de Mikel y UtahJarhead, utilicé lo siguiente
.zshrc
para resolver este problema:Tengo el cambio de nombre automático de la ventana habilitado de forma predeterminada, y no puedo encontrar una manera de volver a habilitarlo después de salir del host remoto. Por lo tanto, solo salgo de la ventana por completo, no es un problema para mi flujo de trabajo. Si prefiere cambiarle el nombre, por ejemplo, 'bash', puede reemplazar la
exit
línea contmux rename-window "bash"
.fuente
hostname -s
después del comando ssh "@ $", básicamente "restablece" el título de mi máquina "gateway".En lugar de
exit
otmux rename-window "bash"
puedes usarEsto reactiva la función normal que renombra automáticamente la ventana para los siguientes comandos.
El
if
bloque impide (sin él) renombrartmux
la ventana actual de losssh
comandos utilizados en otros shells (fuera detmux
).fuente
if env | grep -q "TMUX_PANE"; then
lugar de lasps -p...
cosas, pero el mismo principio.Sé que esto ha sido respondido hace mucho tiempo, pero pensé que agregaría lo que he manipulado y encontrado (basado en la respuesta aceptada). He agregado esto al / etc / bashrc de todos mis servidores (fácil de hacer con tela, marioneta, etc.)
Y establece el nombre de la ventana automáticamente en pantalla o tmux.
fuente
hostname -s
elimina el material de dominio adicional, de modo que server1.internal.local aparece como solo server1Otra solución sería cambiar el nombre de la ventana activa a su nombre anterior, después de la sesión ssh:
fuente
Esto funciona para
tmux 2.1
y con zsh localmente y en servidores:Tuve que deshabilitar la opción de cambio de nombre manualmente antes de cambiar el nombre de Windows; de lo contrario, se cambió a la ruta actual en la mayoría de mis servidores (también usando zsh allí). Lo bueno es que si vuelve a habilitar la opción permitir-renombrar, funciona de inmediato.
fuente
Agregue esto a
.profile
o.bashrc
fuente
Me gustaría señalar en todos estos ejemplos con:
Es posible que desee tomar el código de salida y salir de la función con él, de lo contrario, cosas como:
Devolverá 0.
Saldrá de ssh con el código de retorno de ssh.
fuente