Definir o título do terminal no Mutt?

Definir o título do terminal no Mutt?

Com a ajuda deComando de exibição na barra de título do xtermAlterei gnome-terminalo título para refletir o comando em execução, para que eu possa ver qual terminal Mutt está executando. Mas o que eu realmente gostaria é de elevar meu status de vira-lata até o título. Eu tenho isso no meu .muttrc:

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

e eu adoraria levar todo esse status ao meu gnome-terminaltítulo. Existe uma maneira de fazer isso no meu .bashrc? Ou de outra maneira?

Há uma discussão sobre como fazer isso no vim emhttp://vim.wikia.com/wiki/Automaticamente_set_screen_titlemas... isso é vim.

Responder1

mutt já pode fazer isso.

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

Infelizmente, isso não altera o título quando você sai do vira-lata.

Responder2

É possível fazer com que o status_format execute um script externo que possa definir o título. Isto foi descrito na lista de discussão do vira-lata há vários anos porAmit Ramon, usando um símbolo de barra vertical |, que édocumentadocomo:

Qualquer string de formato que termine em uma barra vertical (“|”) será expandida e canalizada através da primeira palavra da string, usando espaços como separador. A string retornada será usada para exibição. Se a string retornada terminar em %, ela será passada pelo formatador uma segunda vez. Isso permite que o filtro gere uma string de formato de substituição incluindo % expandos.

O exemplo de Ramon foi esta string:

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

Em seu exemplo, mutt_statushá um script de shell simples que ecoa o primeiro parâmetro na saída padrão (e é exibido na linha de status), enquanto o segundo é gravado no /dev/ttydispositivo (e é exibido na barra de título do 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

A nota de Ramon dizia que $my_statuse $my_titlesão variáveis ​​que ele definiu em sua configuração (mas não deu detalhes além de apontar para a documentação do Mutt parastatus_format.

Para o seu exemplo,

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

enviaria as mesmas informações para as linhas de status e de título.

Ao revisar isso, não percebi ts_enablede ts_status_format, qual @Thomas Weinbrennerdescreve. Isso foi adicionado ao vira-lata há apenas alguns meses, emAgosto de 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

Esse recurso usa o terminfo feature tsl, que de acordo com terminfo(5) requer um parâmetro:

   to_status_line            tsl    ts   move to status line,
                                         column #1

No entanto, a string de título para xterm não aceita um parâmetro. É amplamente ignorado em ncurses como tal por esta razão, embora haja (para fins de discussão) umaxterm+slentrada adicionada pela primeira vez em1999. Você não encontrará isso usado no terminfo "xterm". Pelo contrário, a extensão TStem sido a alternativa recomendada desde2012.

Exceto para xterm,restaurandoo título após a saída do vira-lata não tem sido amplamente apoiado há vários anos, devido a preocupações com sequências de fuga malformadas. xterm fornece uma consulta/resposta que está desabilitada por padrão na maioria dos pacotes. Além disso, fornece outra sequência de controle que torna as strings de títuloempilhado. A tela GNU usa esse recurso (adicionadoNovembro de 2009); para a maioria das outras aplicações, o (mau) uso de tsl/ fslestá firmemente arraigado para fazer qualquer diferença para o usuário típico.

Esta questão parece ser umarepostando do LQno início de 2015, o que curiosamente aponta para um vira-lata mais velhoanúncio de lançamento:

Mutt 1.5.15 foi lançado em 6 de abril de 2007. Esta versão tem vários patches de recursos novos e de longa data aplicados em antecipação ao congelamento de recursos em direção ao 1.6. Isso inclui SMTP integrado, melhorias no suporte a fluxo de correio, atualização de títulos do xterm, melhorias no conjunto de caracteres, suporte a GPG PKA, etc.Registro de alteraçõespara obter detalhes completos.

No entanto,queparece referir-se a umcorreção:

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

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

que eu já conhecia desdediscussão anterior(e ignorado porque não foi incorporado ao próprio vira-lata). Alguns empacotadores podem ter aplicado esse patch, mas o recurso foi renomeado quando foi finalmente (cerca de mais de dez anos) incorporadoemvira-lata.

informação relacionada