Como redefinir as cores do sistema

7

Estou usando o Linux Mint, versão MATE. Eu tenho um problema estranho que ocorre com bastante freqüência quando a rolagem para baixo através de arquivos de log no terminal: a máquina faz uma pausa por um segundo ou dois, e quando voltar minhas cores do sistema foram scrambed. Ou seja, as cores ANSI foram todas misturadas - vermelho acha que é amarelo, amarelo pensa que é verde etc. Isso afeta não apenas o terminal, mas vários outros aplicativos da área de trabalho: Caja (o substituto do nautilus), Geany (editor de texto) e Gedit .

A atribuição de cores parece aleatória e às vezes resulta em combinações inutilizáveis, como o branco sendo substituído por preto (não útil em um fundo preto). Preciso reiniciar para recuperar as cores.

O que eu suponho que está acontecendo é que algumas cadeias de caracteres no arquivo de log não estão sendo escapadas corretamente e estão atingindo algo no sistema, mas eu não sou técnico o suficiente para tentar depurar isso. Existe algum comando que eu poderia entrar que redefiniria todas as cores de volta, alguém sabe?

Grato por qualquer conselho, max

EDIT - captura de tela anexada

EDIT - Estou usando o Terminal MATE 1.2.1

    
por Max Williams 21.12.2012 / 12:07

2 respostas

10

A emissão de caracteres binários para a tela do terminal é arriscada, já que algumas seqüências de controle são interpretados como comandos que mudam o modo de terminal, e não apenas para cores. Isso ocorre porque o terminal Linux emula o antigo console VT100 (com acréscimos). Veja este post para uma boa explicação do problema.

Para limpar seu tty, use um ou vários dos seguintes comandos:

  • reset
  • stty sane
  • tput init
  • tput reset

Uma maneira mais segura seria usar o comando stty para salvar e redefinir todas as configurações de uma só vez:

  1. Use stty -g para imprimir as configurações atuais no formato legível
  2. Copie a string resultante
  3. Adicione ao seu arquivo init do shell (.bashrc ou qualquer outro) o alias (s para sane) como:% alias s='stty <output string from step 2>'
  4. Agora, quando ocorrer confusão, basta digitar: s Enter
por 07.01.2013 / 13:01
2

Resposta correta é (pelo menos funcionou no meu caso):

tput sgr0

Da documentação:

tput sgr0 - Desativa todos os atributos

    
por 23.03.2017 / 13:11