Com a ajuda deComando de exibição na barra de título do xtermAlterei gnome-terminal
o 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-terminal
tí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_status
há 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/tty
dispositivo (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_status
e $my_title
sã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_enabled
e 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+sl
entrada adicionada pela primeira vez em1999. Você não encontrará isso usado no terminfo "xterm". Pelo contrário, a extensão TS
tem 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
/ fsl
está 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.