Muttで端末のタイトルを設定しますか?

Muttで端末のタイトルを設定しますか?

の助けを借りてxterm タイトルバーにコマンドを表示gnome-terminalMuttが実行中の端末を確認できるように、実行中のコマンドを反映するようにタイトルを変更しました。しかし、私が本当に欲しいのは、雑種の地位をタイトルに上げることです。私のもの.muttrc

set status_format = "%n new | %M in %f [%v]."

gnome-terminal全体のステータスを私のタイトルに適用したいです。私の環境でこれを行う方法はありますか.bashrc?それとも別の方法で?

vimでこれを行う方法についての議論があります。http://vim.wikia.com/wiki/Automatically_set_screen_titleしかし…それはvimです。

答え1

muttはすでにこれを行うことができます。

マンムテック

  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”.

残念ながら、muttを終了してもタイトルは変わりません。

答え2

ヘッダーを設定できる外部スクリプトを実行するようにStatus_formatを作成できます。これは数年前にmuttメーリングリストに記載されています。アミット・ラモン、パイプ記号を使用する|、つまりファイルに書き込むように:

パイプ("|")で終わるすべてのフォーマット文字列は、スペースを区切り文字として使用して、文字列の最初の単語を介して拡張およびパイプされます。返された文字列は表示に使用されます。返された文字列が%で終わる場合は、フォーマッタを再度通過します。これにより、フィルタは%Expandosを含む代替書式文字列を生成できます。

Ramonの例は次の文字列です。

set status_format="mutt_status \"$my_status\" \"$my_title\"|"

彼の例では、mutt_status最初の引数を標準出力に反映し(ステータスバーに表示され)、2番目の引数がデバイスに書き込まれ/dev/tty(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

Ramonのコメントによると、$my_statussum$my_titleは彼が設定で定義した変数です(しかし、Muttドキュメントを指す以外は詳細は提供しません)。status_format

あなたの例では、

set status_format = "mutt_status \"%n new | %M in %f [%v].\" \"%n new | %M in %f [%v].\"|"

同じ情報がステータス行とヘッダ行に送信されます。

これを検討しながら私は気づかなかったts_enabledts_status_format@トーマスウェインブレナー説明する。わずか数ヶ月前にmuttに追加されました。2015年8月:

    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

tslこの関数は、terminfo(5)に従って1つの引数を必要とするterminfo関数を使用します。

   to_status_line            tsl    ts   move to status line,
                                         column #1

ただし、xtermのタイトル文字列は引数を受け入れません。このため(議論の目的で)ncursesではほとんど無視されます。xterm+slに最初に追加された項目1999年。 "xterm" terminfo には見つかりません。代わりに、拡張機能はそれ以降にTS推奨される代替案でした。2012年

xtermに加えて、また覆うmutt の終了後のタイトルは、誤ったエスケープシーケンスに関する懸念のため、長年にわたり広くサポートされていません。 xtermは、ほとんどのソフトウェアパッケージでデフォルトで無効になっているクエリ/応答を提供します。また、タイトル文字列を有効にする別の制御シーケンスも提供します。積み上げ。 GNU画面はこの機能を使用します(追加2009年11月)他のほとんどのアプリケーションと同様に、tsl「/」の(誤った)使用はfsl一般ユーザーに影響を与えるには根強すぎます。

問題は次のとおりです。LQで再公開2015年初めに興味深いことに、これはより古いたわごとを示しました。発表する:

Mutt 1.5.15は2007年4月6日にリリースされました。このバージョンは、バージョン1.6の機能凍結に対応して、いくつかの新しく古い機能パッチを適用します。これには、組み込みSMTP、ストリーミングメールサポートの改善、xtermヘッダーの更新、文字セットの改善、GPG PKAのサポートなどが含まれます。より変更ログ詳細を確認してください。

しかし、それを参照しているようです。修理する:

2007-03-14 14:45 -0700  Brendan Cully  <[email protected]>  (35b8facdbdda)

    * contrib/Makefile.am, contrib/mutt_xtitle, muttlib.c: Add demo
    mutt_xtitle script

私はすでに知っています以前の議論(そしてmutt自体にマージされないので無視されます)。一部のパッケージャではこのパッチを適用した可能性がありますが、最終的にマージされたときに機能名が変更されました(一部は10年以上前)。入力するばか。

関連情報