Mit der Hilfe vonBefehl in der XTerm-Titelleiste anzeigenIch habe gnome-terminal
den Titel geändert, um den laufenden Befehl widerzuspiegeln, damit ich sehen kann, auf welchem Terminal Mutt ihn ausführt. Aber was ich wirklich möchte, ist, meinen Mutt-Status in den Titel zu bringen. Ich habe Folgendes in meinem .muttrc
:
set status_format = "%n new | %M in %f [%v]."
und ich würde diesen Status gerne in meinen gnome-terminal
Titel aufnehmen. Gibt es eine Möglichkeit, das in meinem zu tun .bashrc
? Oder eine andere Möglichkeit?
Es gibt eine Diskussion darüber, wie man dies mit vim macht unterhttp://vim.wikia.com/wiki/Bildschirmtitel_automatisch_festlegenaber ... das ist vim.
Antwort1
mutt kann das schon.
Mann 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”.
Leider wird der Titel nicht zurückgeändert, wenn Sie Mutt beenden.
Antwort2
Es ist möglich, status_format durch ein externes Skript ausführen zu lassen, das den Titel festlegen kann. Dies wurde vor einigen Jahren auf der Mutt-Mailingliste beschrieben vonAmit Ramon, mit einem Pipe-Symbol |
, dasdokumentiertals:
Jede Formatzeichenfolge, die mit einem senkrechten Strich („|“) endet, wird erweitert und durch das erste Wort in der Zeichenfolge geleitet, wobei Leerzeichen als Trennzeichen verwendet werden. Die zurückgegebene Zeichenfolge wird für die 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 %-Erweiterungen 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 an die Standardausgabe ausgibt (und in der Statuszeile angezeigt wird), während der zweite auf das /dev/tty
Gerät geschrieben wird (und in der Titelleiste von xterm 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 (er gab jedoch keine Einzelheiten an, außer dass er auf die Mutt-Dokumentation fürstatus_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 an sowohl die Status- als auch die Titelzeile senden.
Bei der Überprüfung dieser, habe ich nicht bemerkt ts_enabled
und ts_status_format
, die @Thomas Weinbrennerbeschreibt. Das wurde erst vor ein paar Monaten zu mutt hinzugefügt, inAugust 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
Diese Funktion verwendet die Terminfo-Funktion tsl
, die gemäß Terminfo(5) einen Parameter erfordert:
to_status_line tsl ts move to status line,
column #1
Der Titelstring für xterm akzeptiert jedoch keinen Parameter. Aus diesem Grund wird er in ncurses als solcher weitgehend ignoriert, obwohl es (der Diskussion halber) einenxterm+sl
Eintrag erstmals hinzugefügt in1999. Sie werden diese Erweiterung nicht in der Terminfo "xterm" finden. Vielmehr TS
ist die Erweiterung seit2012.
Außer xterm,WiederherstellungDer Titel nach dem Beenden von Mutt wird seit mehreren Jahren nicht mehr allgemein unterstützt, da Bedenken hinsichtlich fehlerhafter Escape-Sequenzen 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 erstellt werdengestapelt. GNU screen verwendet diese Funktion (hinzugefügtNovember 2009); bei den meisten anderen Anwendungen ist der (Fehl-)Gebrauch von tsl
/ fsl
zu fest verankert, um für den typischen Benutzer einen Unterschied zu machen.
Diese Frage scheint eineerneutes Posten von LQAnfang 2015, was interessanterweise auf einen älteren Köter hindeutetRelease-Ankündigung:
Mutt 1.5.15 wurde am 6. April 2007 veröffentlicht. Diese Version enthält mehrere neue und seit langem vorhandene Feature-Patches, die im Vorgriff auf einen Feature-Freeze für 1.6 angewendet wurden. Dazu gehören integriertes SMTP, Verbesserungen bei der Unterstützung von Flowed Mail, Aktualisierung von Xterm-Titeln, Verbesserungen bei den Zeichensätzen, GPG PKA-Unterstützung usw. Weitere Informationen finden Sie in derÄnderungsprotokollfür alle Einzelheiten.
Jedoch,Dasbezieht sich offenbar auf einePatch:
2007-03-14 14:45 -0700 Brendan Cully <[email protected]> (35b8facdbdda)
* contrib/Makefile.am, contrib/mutt_xtitle, muttlib.c: Add demo
mutt_xtitle script
die ich bereits kannte ausfrühere Diskussion(und ignoriert, da es nicht in Mutt selbst integriert wurde). Einige Paketierer haben diesen Patch möglicherweise angewendet, aber die Funktion wurde umbenannt, als sie schließlich (nach mehr als zehn Jahren) integriert wurde.hineinKöter.