Redefine a paleta de cores do terminal 256 para os valores padrão

2

Digamos que algo quebre a paleta de 256 cores padrão. Por exemplo, escolha a cor 108:

printf "3]4;108;rgb:ff/00/003\"

Como faço para desfazer isso? Eu pesquisei todas as questões atuais de "reset terminal" e tentei:

reset # You can't see this in the screenshot as it clears the screen
tput init
tput sgr0
printf '\e[0m'

Usando um padrão de teste podemos ver claramente que a cor # 108 ainda é b0rken:

Estou executando o terminal do GNOME.

Eu não quero fazer algo como gconftool --recursive-unset /apps/gnome-terminal , pois isso irá mexer com a configuração geral do terminal (por exemplo, fontes) para todos os /gnome-terminal s abertos / novos. É muito pincelada larga.

Como eu, da linha de comando dentro do terminal :

  1. Restaurar uma determinada cor da paleta para o padrão?
  2. Restaurar TODAS as cores da paleta ao padrão?

Como o problema pode ser criado com a emissão de um código de controle, espero que ele possa ser resolvido com um também.

    
por Tom Hale 11.09.2016 / 08:02

1 resposta

3

Em vez de 4, use 104 para redefinir uma cor específica, por ex. número de cor 108 como no seu exemplo:

printf "3]104;1083\"

Omita o número da cor para redefinir a paleta inteira (todas as 256 cores):

printf "3]1043\"

Nota: O Terminal GNOME (na verdade, VTE) usa dois "níveis" para cores. As cores definidas através da API do VTE (ou no caso do GNOME Terminal, as primeiras 16 cores escolhidas na caixa de diálogo Preferências e armazenadas em gsettings / dconf, o resto são padrões embutidos no VTE) têm menor precedência. Para cada slot, uma possível seqüência de escape tem maior precedência e temporariamente substitui esse valor. A seqüência de escape acima com o "104" parâmetro "resets", que é limpa o valor especificado via seqüência de escape "4" e, portanto, reverte para o valor especificado no diálogo de preferências do Terminal GNOME (ou padrão VTE para a paleta de 256 cores estendida) . Devido a este design, não há absolutamente nenhuma maneira de um comando gsettings ou dconf poder reverter o efeito de uma seqüência de escape de mudança de cor. Outros emuladores de terminal não baseados em VTE podem seguir uma abordagem diferente, ou podem não suportar essas sequências de escape.

    
por egmont 11.09.2016 / 17:18