Установить заголовок терминала из Mutt?

Установить заголовок терминала из Mutt?

С помощьюОтображение команды в заголовке xtermЯ изменил gnome-terminalзаголовок, чтобы отразить запущенную команду, чтобы я мог видеть, какой терминал Mutt ее запускает. Но что мне действительно хотелось бы, так это поднять мой статус Mutt до заголовка. У меня есть это в моем .muttrc:

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

и я бы с удовольствием перенес весь этот статус в свой gnome-terminalзаголовок. Есть ли способ сделать это в моем .bashrc? Или по-другому?

Обсуждение того, как это сделать с помощью vim, можно найти на сайтеhttp://vim.wikia.com/wiki/Автоматически_установить_название_экранано...это энергично.

решение1

mutt уже может это сделать.

человек 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”.

К сожалению, при выходе из Mutt заголовок не возвращается к исходному состоянию.

решение2

Можно заставить status_format запустить внешний скрипт, который может установить заголовок. Это было описано в списке рассылки mutt несколько лет назадАмит Рамон, используя символ трубы |, которыйзадокументированокак:

Любая строка формата, заканчивающаяся вертикальной чертой («|»), будет расширена и передана через первое слово в строке, используя пробелы в качестве разделителя. Возвращаемая строка будет использоваться для отображения. Если возвращаемая строка заканчивается на %, она будет передана через форматировщик второй раз. Это позволяет фильтру сгенерировать заменяющую строку формата, включающую % expandos.

Примером Рамона была следующая строка:

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

В его примере mutt_statusпредставлен простой скрипт оболочки, который выводит первый параметр на стандартный вывод (и отображается в строке состояния), а второй записывается на устройство /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

В заметке Рамона говорилось, что $my_statusи $my_titleявляются переменными, которые он определил в своей конфигурации (но не давал никаких подробностей, кроме ссылки на документацию Mutt дляstatus_format.

Для вашего примера,

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

будет отправлять одну и ту же информацию в строки статуса и заголовка.

При рассмотрении этого я не заметил ts_enabledи ts_status_format, который @Томас Вайнбреннерописывает. Это было добавлено в mutt всего несколько месяцев назад, вАвгуст 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

Эта функция использует функцию terminfo tsl, которая, согласно terminfo(5), требует параметра:

   to_status_line            tsl    ts   move to status line,
                                         column #1

Однако, заголовок-строка для xterm не принимает параметр. Он в значительной степени игнорируется в ncurses как таковой по этой причине, хотя есть (для обсуждения)xterm+slзапись впервые добавлена ​​в1999. Вы не найдете его в "xterm" terminfo. Скорее, расширение TSбыло рекомендовано как альтернатива с тех пор2012.

За исключением xterm,восстановлениезаголовок после выхода из mutt не поддерживался широко в течение нескольких лет из-за опасений по поводу неправильно сформированных escape-последовательностей. xterm предоставляет запрос/ответ, который по умолчанию отключен в большинстве пакетов. Кроме того, он предоставляет другую управляющую последовательность, которая делает строки заголовкасложенный. GNU screen использует эту функцию (добавленоНоябрь 2009 г.); для большинства других приложений (неправильное) использование tsl/ fslслишком прочно укоренилось, чтобы иметь какое-либо значение для обычного пользователя.

Этот вопрос, по-видимому, являетсярепост из LQв начале 2015 года, что, как ни странно, указывает на более старую дворнягуобъявление о выпуске:

Mutt 1.5.15 был выпущен 6 апреля 2007 года. Эта версия имеет несколько новых и давно существующих исправлений функций, примененных в ожидании заморозки функций к 1.6. Они включают встроенный SMTP, улучшения поддержки flowed mail, обновление заголовка 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). Некоторые упаковщики могли применить этот патч, но функция была переименована, когда она была наконец (более чем через десять лет) включенавдворняга.

Связанный контент