Avec l'aide de la command Display dans la barre de titre de xterm j'ai le gnome-terminal
changeant le titre pour refléter la command d'exécution, de sorte que je puisse voir quel terminal Mutt l'exécute. Mais ce que j'aimerais vraiment, c'est pousser mon statut Mutt jusqu'au titre. J'ai ceci dans mon .muttrc
:
set status_format = "%n new | %M in %f [%v]."
et j'aimerais pousser ce statut entier à mon titre gnome-terminal
. Y at-il un moyen de le faire dans mon .bashrc
? Ou une autre façon?
Il y a une discussion sur la façon de le faire à partir de w / in vim sur http://vim.wikia.com/wiki/Automatically_set_screen_title mais … c'est vim.
Mutt peut déjà le faire.
homme muttrc
ts_enabled Type: boolean Default: no Controls whether mutt sortinges to set the terminal status line and icon name. Most terminal emulators emulate the status line in the window title. ts_status_format Type: ssortingng 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 ssortingng is identical in formatting to the one used by “$status_format”.
Malheureusement, il ne change pas le titre en arrière, quand vous quittez Mutt.
Il est possible de faire exécuter à status_format un script externe qui peut définir le titre. Cela a été décrit sur la list de diffusion de Mutt il y a plusieurs années par Amit Ramon , en utilisant un symbole de pipe |
, qui est documenté comme:
Toute string de format se terminant par une barre verticale ("|") sera étendue et canalisée à travers le premier mot de la string, en utilisant des espaces comme séparateur. La string renvoyée sera utilisée pour l'affichage. Si la string renvoyée se termine en%, elle sera transmise à travers le formateur une deuxième fois. Cela permet au filter de générer une string de format de rlocation incluant% expandos.
L'exemple de Ramon était cette string:
set status_format="mutt_status \"$my_status\" \"$my_title\"|"
Dans son exemple, mutt_status
est un script shell simple qui fait écho au premier paramètre à la sortie standard (et est affiché dans la ligne d'état), tandis que le second est écrit dans le périphérique /dev/tty
(et affiché dans la barre de titre xterm ):
#!/bin/sh # Demonstration of format ssortingng 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 note de Ramon dit que $my_status
et $my_title
sont des variables qu'il a définies dans sa configuration (mais n'a donné aucune précision au-delà du pointage vers la documentation Mutt pour status_format
.
Pour votre exemple,
set status_format = "mutt_status \"%n new | %M in %f [%v].\" \"%n new | %M in %f [%v].\"|"
enverrait la même information aux lignes de statut et de titre.
En examinant ceci, je n'ai pas remarqué ts_enabled
et ts_status_format
, que Thomas Weinbrenner décrit. Cela a été ajouté à Mutt il y a quelques mois, en août 2015 :
1.5.24 (2015-08-31): + terminal status-line (TS) support, aka xterm title. see the following variables: $ts_enabled, $ts_icon_format, $ts_status_format
Cette fonctionnalité utilise la fonction terminfo tsl
qui, selon terminfo (5), requirejs un paramètre:
to_status_line tsl ts move to status line, column #1
Cependant, la string de titre pour xterm n'accepte pas de paramètre. Il est largement ignoré dans les ncurses en tant que tels pour cette raison, bien qu'il existe (pour les besoins de la discussion) une input xterm+sl
ajoutée pour la première fois en 1999 . Vous ne findez pas cela utilisé dans le terminfo "xterm". Plutôt, l'extension TS
a été l'alternative recommandée depuis 2012 .
À l'exception de xterm, la restauration du titre après la sortie de Mutt n'a pas été largement supscope depuis plusieurs années, en raison de préoccupations concernant les séquences d'échappement malformées. xterm fournit une requête / réponse qui est désactivée par défaut dans la plupart des packages. En outre, il fournit une autre séquence de contrôle qui emstack les strings de titres. L'écran GNU utilise cette fonctionnalité (ajoutée en novembre 2009 ); pour la plupart des autres applications, l'utilisation (erronée) de fsl
/ fsl
est trop fortement ancrée pour faire une différence pour l'user type.
Cette question semble être une réprinting de LQ au début de 2015, ce qui fait ressortir assez bien une annonce de sortie plus ancienne:
Mutt 1.5.15 a été libéré le 6 avril 2007. Cette version a plusieurs nouvelles patches de fonctionnalités de longue date appliquées en prévision d'un gel des fonctionnalités vers 1.6. Il s'agit notamment du SMTP embedded, des améliorations apscopes au support de courrier, de la mise à jour du titre xterm, des améliorations du jeu de caractères, du support PPG GPG, etc. Reportez-vous au ChangeLog pour plus de détails.
Cependant, cela semble se référer à un patch :
2007-03-14 14:45 -0700 Brendan Cully <[email protected]> (35b8facdbdda) * consortingb/Makefile.am, consortingb/mutt_xtitle, muttlib.c: Add demo mutt_xtitle script
que je connaissais déjà de la discussion précédente (et ignoré parce qu'il n'a pas été incorporé dans Mutt lui-même). Certains packagers ont peut-être appliqué ce patch, mais la fonctionnalité a été renommée quand elle a finalement été incorporée dans Mutt (plus de dix ans).