Existe alguma maneira de alterar a cor de fundo de uma sessão rxvt-unicode em tempo real? Como com Ctrlchave?
Eu tenho várias janelas do Urxvt e gostaria de colorir algumas dinamicamente para me ajudar a distingui-las. Mas, novamente, quero dizer em tempo real ...
Respostas:
urxvt
2.6 em 2004 adicionou suporte ao recurso de cores dinâmicas do xterm . Nas XTerm Control Sequences , isso éOSC
11.OSC
10 define a cor do texto padrão. O changelog mencionou parte da mudança:mas o código-fonte conta a história, como sempre:
O manual
rxvt(7)
não fornece informações úteis:Este exemplo simples define as cores padrão de primeiro plano (texto) e de plano de fundo :
Assim
xterm
, essas cores padrão podem ser substituídas temporariamente por cores "ANSI".O recurso pode ser desativado ao
xterm
usar odynamicColors
recurso. Ao contrárioxterm
,urxvt
não possui configuração de recurso para o recurso.O VTE também implementa o recurso e também não o documenta.
urxvt
pelo menos começou com a documentação derxvt
. Para o VTE, você precisa ler o código fonte. O recurso relevantevteseq.cc
é assim:Esse código data de 2003 (quando foi escrito em C):
Leitura adicional:
fonte
Eu adicionei o seguinte ao meu
~/.Xresources
arquivo para mudar para cores rapidamente pressionando Ctrle 7ou 8ou 9.Se você deseja definir as cores de primeiro e segundo plano ao mesmo tempo, concatene os comandos (algumas cores são definidas por nomes):
Você pode testar suas cores com um
echo
comando simples , como este:Atenção
Usei o código 11 para a cor de fundo e o código 10 para a cor de primeiro plano . As definições para Urxvt citadas por Thomas Dickey indicam o uso de 49 e 39 (que eu testei e também trabalho).
fonte
Cores dinâmicas é um exemplo de mudança dinâmica de cores. Começa com o uso desses dois .Xresources:
xterm*dynamicColors: true urxvt*dynamicColors: on
Apesar do chumbo, ainda não consegui mudar a cor trabalhando com o urxvt! Essa técnica funciona muito bem com o xterm. O Dynamic Colors chama essas "sequências de escape do OSC" que alteram o terminal; o exemplo para tornar o fundo vermelho é:
echo -e "\03echo -e "\033]11;#ff0000\007"3]11;#ff0000\007"
fonte
echo -e "\033]11;#ff0000\007"
Eu tenho o seguinte em meus Xresources para troca rápida (sim, é baseado em cores dinâmicas).
Você também pode procurar outra abordagem aqui: https://github.com/sos4nt/dynamic-colors
fonte
Eu escrevi uma extensão chamada urxvt-theme que adiciona essa funcionalidade ao rxvt-unicode (com um menu de contexto simples) usando recursos X e cores dinâmicas.
fonte