Cómo mantener sincronizado el título de la ventana del terminal con la ventana tmux

5

Estoy usando un programa llamado "Tiempo" para hacer un seguimiento de mi tiempo. La sincronización usa el nombre de la ventana actual en iTerm para propósitos de categorización.

Me gustaría configurar el título actual de iTerm para que coincida con el nombre de la ventana tmux activa actualmente.

He configurado un archivo en ~/.config/fish/functions/fish_title.fish con:

function fish_title
  tmux display-message -p '#W'
end

Esto genera con éxito el título de la ventana actual de Tmux en la ventana del terminal cada vez que abro una nueva ventana de terminal. Sin embargo, si cambio el nombre de una ventana tmux, o cambio a una nueva ventana, el terminal no se actualiza.

Se actualiza si uso algo como pwd en fish_title:

function fish_title
  pwd
end

Cualquier idea sobre cómo hacer fish_title agarrar el nombre de la ventana tmux dinámicamente?

scottlabs
fuente

Respuestas:

9

Lo primero que debe señalar es que puede hacerlo a través de tmux completamente independiente de su shell. Agregue lo siguiente a su ~ / .tmux.conf; por ejemplo:

set-option -g set-titles on
set-option -g set-titles-string "#S / #W"

Además, debe asegurarse de que iTerm2 esté configurado para permitir que los programas establezcan el título a través de una secuencia de escape. Consulte la sección "El terminal puede configurar el título de la pestaña / ventana" en https://www.iterm2.com/documentation-one-page.html .

Pero su problema real es que tmux no pasa la secuencia de escape enviada por la función fish_title. Tmux, en cambio, utiliza el valor para establecer el título del panel. Esto se explica, aunque no claramente, en la sección "NOMBRES Y TÍTULOS" de man tmux. Añadir #T al set-titles-string para ver que, de hecho, se establece en el mismo valor que el nombre de la ventana a través de su fish_title función.

Kurtis Rader
fuente
Ah, no lo sabía; Tu primer comentario sobre ~ / .tmux.conf me funcionó muy bien. ¡Gracias!
scottlabs