Terminaltitel innerhalb von Mutt festlegen?

Terminaltitel innerhalb von Mutt festlegen?

Mit der Hilfe vonBefehl in der XTerm-Titelleiste anzeigenIch habe gnome-terminalden 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-terminalTitel 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_statushandelt 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/ttyGerä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_statusund $my_titleVariablen 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_enabledund 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+slEintrag erstmals hinzugefügt in1999. Sie werden diese Erweiterung nicht in der Terminfo "xterm" finden. Vielmehr TSist 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/ fslzu 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.

verwandte Informationen