Con la ayuda deMostrar comando en la barra de título de xtermHe cambiado gnome-terminal
el título para reflejar el comando en ejecución, de modo que pueda ver en qué terminal Mutt lo está ejecutando. Pero lo que realmente me gustaría es llevar mi estatus de Mutt al título. Tengo esto en mi .muttrc
:
set status_format = "%n new | %M in %f [%v]."
y me encantaría llevar todo ese estatus a mi gnome-terminal
título. ¿Hay alguna manera de hacer eso en mi .bashrc
? ¿O de otra manera?
Hay una discusión sobre cómo hacer esto desde vim enhttp://vim.wikia.com/wiki/Automatically_set_screen_titlepero... eso es vital.
Respuesta1
Mutt ya puede hacer esto.
hombre muttrc
ts_enabled Type: boolean Default: no Controls whether mutt tries to set the terminal status line and icon name. Most terminal emulators emulate the status line in the window title. ts_status_format Type: string Default: “Mutt with %?m?%m messages&no messages?%?n? [%n NEW]?” Controls the format of the terminal status line (or window title), provided that “$ts_enabled” has been set. This string is identical in formatting to the one used by “$status_format”.
Desafortunadamente, no vuelve a cambiar el título cuando sales de mutt.
Respuesta2
Es posible hacer que status_format ejecute un script externo que pueda establecer el título. Esto fue descrito en la lista de correo de perros callejeros hace varios años porAmit Ramón, usando un símbolo de tubería |
, que esdocumentadocomo:
Cualquier cadena de formato que termine en una barra vertical (“|”) se expandirá y se canalizará a través de la primera palabra de la cadena, utilizando espacios como separador. La cadena devuelta se utilizará para la visualización. Si la cadena devuelta termina en %, pasará por el formateador por segunda vez. Esto permite que el filtro genere una cadena de formato de reemplazo que incluya % expandos.
El ejemplo de Ramón fue esta cadena:
set status_format="mutt_status \"$my_status\" \"$my_title\"|"
En su ejemplo, mutt_status
hay un script de shell simple que repite el primer parámetro en la salida estándar (y se muestra en la línea de estado), mientras que el segundo se escribe en el /dev/tty
dispositivo (y se muestra en la barra de título de xterm):
#!/bin/sh
# Demonstration of format string pipes. Sets the xterm title to the 2nd argument,
# and returns the first unchanged.
#
# this sets the title
printf "\033]0;$2\007" > /dev/tty
echo "$1"
# end of script
La nota de Ramón decía eso $my_status
y $my_title
son variables que definió en su configuración (pero no dio detalles más allá de señalar la documentación de Mutt parastatus_format
.
Por tu ejemplo,
set status_format = "mutt_status \"%n new | %M in %f [%v].\" \"%n new | %M in %f [%v].\"|"
enviaría la misma información tanto a la línea de estado como a la de título.
Al revisar esto, no me di cuenta ts_enabled
y ts_status_format
, cual @Thomas Weinbrennerdescribe. Eso se añadió a Mutt hace apenas unos meses, enagosto 2015:
1.5.24 (2015-08-31):
+ terminal status-line (TS) support, a.k.a. xterm title. see the
following variables: $ts_enabled, $ts_icon_format, $ts_status_format
Esa característica utiliza la característica terminfo tsl
, que según terminfo(5) requiere un parámetro:
to_status_line tsl ts move to status line,
column #1
Sin embargo, la cadena de título de xterm no acepta un parámetro. Por esta razón se ignora en gran medida en las maldiciones como tales, aunque existe (para efectos de discusión) unaxterm+sl
entrada agregada por primera vez en1999. No encontrará eso usado en la terminfo "xterm". Más bien, la extensión TS
ha sido la alternativa recomendada desde2012.
Excepto xterm,restaurandoEl título después de la salida de Mutt no ha recibido un amplio apoyo durante varios años, debido a preocupaciones sobre secuencias de escape mal formadas. xterm proporciona una consulta/respuesta que está deshabilitada de forma predeterminada en la mayoría de los paquetes. Además, proporciona otra secuencia de control que hace que las cadenas de títuloapilados. La pantalla GNU usa esta característica (agregadanoviembre de 2009); para la mayoría de las demás aplicaciones, el (mal) uso de tsl
/ fsl
está demasiado arraigado como para marcar alguna diferencia para el usuario típico.
Esta pregunta parece ser unarepublicando desde LQa principios de 2015, lo que curiosamente apunta a un perro callejero mayoranuncio de lanzamiento:
Mutt 1.5.15 se lanzó el 6 de abril de 2007. Esta versión tiene varios parches de funciones nuevos y de larga data aplicados en anticipación de una congelación de funciones hacia 1.6. Estos incluyen SMTP integrado, mejoras en la compatibilidad con correo fluido, actualización de títulos de xterm, mejoras en el juego de caracteres, compatibilidad con GPG PKA, etc.Registro de cambiospara más detalles.
Sin embargo,esoparece referirse a unparche:
2007-03-14 14:45 -0700 Brendan Cully <[email protected]> (35b8facdbdda)
* contrib/Makefile.am, contrib/mutt_xtitle, muttlib.c: Add demo
mutt_xtitle script
que ya conocía desdediscusión anterior(e ignorado porque no se incorporó al propio chucho). Es posible que algunos empaquetadores hayan aplicado este parche, pero la función cambió de nombre cuando finalmente se incorporó (aproximadamente más de diez años)enchucho.