¿Puedo establecer un título predeterminado para una ventana tmux?

38

En este momento, el título predeterminado es reattach-to-user-namespace(OS X), lo cual es bastante molesto. ¿Hay alguna opción que pueda poner en mi tmux.confpara obtener otro título predeterminado?

Si no, ¿cómo haría un enlace de teclas que creara una nueva ventana y luego me pidiera un nombre?

js-codificador
fuente
Vea la respuesta aquí superuser.com/questions/306028/…
Fredrik Pihl el
Se trata de deshabilitar el cambio de nombre automático (que ya hice), no de los nombres predeterminados, ¿verdad?
js-coder
Supongo que tienes razón, lo siento!
Fredrik Pihl el
Yo uso set-option -g default-command "reattach-to-user-namespace -l zsh", y la mayoría de las veces terminan con una ventana llamada zsh, según lo deseado. Por razones desconocidas, a veces el nombre no cambia y se llama a la ventana reattach-to-user-namespace. Todavía no he notado un patrón de cuándo / por qué sucede esto, pero parece que puede haber un error sutil o algo en mi configuración.
Jim Stewart el
¿Cuál es la mejor manera de poner el número de la ventana en el nombre?
DanCat

Respuestas:

43

No hay un nombre de ventana predeterminado global que se aplique a todas las ventanas nuevas; ellos predeterminan (parte de) la primera "palabra" del comando (o el shell predeterminado si no hay un comando). Es probable que sus ventanas estén predeterminadas reattach-to-user-namespaceporque es la primera parte interesante de su default-commandvalor.

Sería un poco indirecto, pero podría poner su comando predeterminado en un script de shell y señalarlo default-commanda ese script. Con esa configuración, el nombre predeterminado de la ventana (para las ventanas creadas sin un comando explícito) sería el nombre que le dé al script de shell.

De lo contrario, hay varias formas de nombrar / renombrar manualmente una ventana:

  • En el momento de la creación con -n:

    new-window -n 'some name'
    

    Puede volver a vincular c(la clave predeterminada utilizada para crear una ventana) para incorporar un "nombre predeterminado" de su elección:

    bind-key c new-window -n 'default name'
    
  • Cambiar el nombre de una ventana existente:

    rename-window 'new name'
    

    También hay un enlace predeterminado (Prefijo ,) que le solicitará un nuevo nombre y cambiará el nombre de la ventana.

  • Cambie el nombre de una ventana a través de una "secuencia de escape" enviada al tty de un panel:

    # E.g. in a shell:
    printf '\033kWINDOW_NAME\033\\'
    

Su "pedirme un nombre para una nueva ventana" se puede hacer de esta manera (preguntando antes o después de crear la ventana):

bind-key C command-prompt -p "Name of new window: " "new-window -n '%%'"

bind-key C new-window \; command-prompt -p "Name for this new window: " "rename-window '%%'"
Chris Johnsen
fuente
2
Wow, esta es una respuesta realmente épica, ¡muchas gracias! :)
js-coder
77
Encontré una manera de establecer un título predeterminado: set-option -g default-command "tmux rename-window base; reattach-to-user-namespace -l zsh"establece un título predeterminado de base. Es posible que desee agregar esto a su respuesta. :)
js-coder
su solución rompe los administradores de tmux como tmuxinator. En ese caso, las pestañas no cambian de nombre
SystematicFrank
4

tmux elige el primer comando como el nombre de la ventana.

Digamos que quieres que "i" sea el título predeterminado, puedes engañarlo así.

set-option -g default-command "i > /dev/null 2>&1; reattach-to-user-namespace -l bash"

Esto es mejor que

set-option -g default-command "tmux rename-window i; reattach-to-user-namespace -l bash"

porque si crea un panel después de configurar manualmente el título de una ventana, el título cambiará de nuevo a "i" nuevamente.

David
fuente
1

Además de la respuesta de Chris al configurar el título de la ventana usando new window -n 'somename', también puede proporcionar una cadena vacía ''como el nombre de una ventana. De esta manera, puedo usar el acceso directo predeterminado (prefijo + c) y no necesito encontrar un nombre para ventanas temporales, pero aún así puedo cambiarles el nombre cuando sea necesario:

bind-key c new-window -n ''

Ferdy
fuente
1

No es realmente una respuesta más que un truco:

Creé un enlace simbólico con

sudo ln -s /usr/local/bin/reattach-to-user-namespace /usr/local/bin/pbash

Y ahora se muestra pbashcomo el título predeterminado.

Marco Aurelio
fuente