Es ist möglich, das status_format ein externes Skript ausführen zu lassen, das den Titel festlegen kann. Dies wurde vor einigen Jahren von Amit Ramon auf der Mutt-Mailingliste unter Verwendung eines Pipe-Symbols beschrieben |
, das wie folgt dokumentiert ist :
Jede Formatzeichenfolge, die in einem vertikalen Balken („|“) endet, wird erweitert und durch das erste Wort in der Zeichenfolge geleitet, wobei Leerzeichen als Trennzeichen verwendet werden. Die zurückgegebene Zeichenfolge wird zur Anzeige verwendet. Wenn die zurückgegebene Zeichenfolge mit% endet, wird sie ein zweites Mal durch den Formatierer geleitet. Dadurch kann der Filter eine Ersatzformatzeichenfolge mit% expandos generieren.
Ramons Beispiel war diese Zeichenfolge:
set status_format="mutt_status \"$my_status\" \"$my_title\"|"
In seinem Beispiel mutt_status
handelt es sich um ein einfaches Shell-Skript, das den ersten Parameter in die Standardausgabe überträgt (und in der Statuszeile angezeigt wird), während der zweite in das /dev/tty
Gerät geschrieben wird (und in der xterm-Titelleiste angezeigt wird):
#!/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
Ramons Notiz besagte, dass $my_status
und $my_title
Variablen sind, die er in seiner Konfiguration definiert hat (gab aber keine Einzelheiten an, außer auf die Mutt-Dokumentation für zu verweisen status_format
.
Für Ihr Beispiel
set status_format = "mutt_status \"%n new | %M in %f [%v].\" \"%n new | %M in %f [%v].\"|"
würde die gleichen Informationen sowohl an Status- als auch an Titelzeilen senden.
Bei der Überprüfung habe ich nicht bemerkt ts_enabled
und ts_status_format
, was @ Thomas Weinbrenner beschreibt. Das wurde Mutt erst vor wenigen Monaten im August 2015 hinzugefügt :
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
Diese Funktion verwendet die terminfo-Funktion tsl
, für die gemäß terminfo (5) ein Parameter erforderlich ist:
to_status_line tsl ts move to status line,
column #1
Die Titelzeichenfolge für xterm akzeptiert jedoch keinen Parameter. Aus diesem Grund wird es in Flüchen als solches weitgehend ignoriert, obwohl (zur Diskussion) ein xterm+sl
Eintrag hinzugefügt wurde, der erstmals 1999 hinzugefügt wurde . Sie werden das in der Terminfo "xterm" nicht finden. Vielmehr ist die Erweiterung TS
hat sich seit der empfohlene Alternative gewesen 2012 .
Mit Ausnahme von xterm wird die Wiederherstellung des Titels nach dem Verlassen von mutt seit einigen Jahren nicht mehr umfassend unterstützt, da Bedenken hinsichtlich fehlerhafter Fluchtsequenzen bestehen. xterm bietet eine Abfrage / Antwort, die in den meisten Paketen standardmäßig deaktiviert ist. Außerdem bietet es eine weitere Steuersequenz, mit der Titelzeichenfolgen gestapelt werden . Der GNU-Bildschirm verwendet diese Funktion (hinzugefügt im November 2009 ). Für die meisten anderen Anwendungen ist die (falsche) Verwendung von tsl
/ fsl
zu fest verankert, um für den typischen Benutzer einen Unterschied zu machen.
Diese Frage scheint eine Neuveröffentlichung von LQ Anfang 2015 zu sein, die interessanterweise auf eine Ankündigung einer älteren Mutt- Veröffentlichung hinweist :
Mutt 1.5.15 wurde am 6. April 2007 veröffentlicht. In dieser Version wurden mehrere neue und langjährige Feature-Patches angewendet, um ein Einfrieren der Features in Richtung 1.6 zu erwarten. Dazu gehören integriertes SMTP, Verbesserungen der Flow- Mail-Unterstützung, Aktualisierung des xterm-Titels, Verbesserungen des Zeichensatzes, GPG-PKA-Unterstützung usw. Ausführliche Informationen finden Sie im ChangeLog .
Jedoch , dass scheint einen Bezug zu nehmen Patch :
2007-03-14 14:45 -0700 Brendan Cully <brendan@kublai.com> (35b8facdbdda)
* contrib/Makefile.am, contrib/mutt_xtitle, muttlib.c: Add demo
mutt_xtitle script
was ich bereits aus früheren Diskussionen wusste (und ignorierte, weil es nicht in Mutt selbst enthalten war). Einige Packager haben diesen Patch möglicherweise angewendet, aber die Funktion wurde umbenannt, als sie schließlich (ungefähr mehr als zehn Jahre) in Mutt integriert wurde.
xterm_set_titles
aber genau dort. Fabelhaft.