Come ripristinare i colori di sistema


7

Sto usando Linux Mint, versione MATE. Ho uno strano problema che si verifica abbastanza frequentemente quando si scorrono i file di registro nel terminale: la macchina si ferma per un secondo o due, e quando ritorna i colori del sistema sono stati codificati. Cioè, i colori ANSI sono stati tutti mescolati - il rosso pensa che sia giallo, il giallo pensa che sia verde ecc. Questo riguarda non solo il terminale ma anche molte altre app desktop: Caja (la sostituzione nautilus), Geany (editor di testo) e Gedit .

L'assegnazione dei colori sembra casuale e talvolta si traduce in combinazioni inutilizzabili, come il bianco che viene sostituito con il nero (non utile su uno sfondo nero). Devo riavviare per recuperare i colori.

Quello che presumo stia accadendo è che alcune stringhe di caratteri nel file di log non vengono scappate correttamente e stanno colpendo qualcosa nel sistema, ma non sono abbastanza tecnico da provare a eseguire il debug di questo. C'è un comando che potrei inserire che ripristinerebbe tutti i colori, qualcuno lo sa?

Grato per ogni consiglio, max

MODIFICA - screenshot allegato enter image description here

EDIT - Sto usando MATE Terminal 1.2.1


hai provato a comandare reset nel terminale?
mnmnc

Il problema persiste se apri un nuovo terminale?
terdon

@mnmnc - sì, nessun effetto. terdon - sì, persiste se apro un nuovo terminale. Lo ha fatto di nuovo per la prima volta da secoli.
Max Williams

Risposte:


10

L'emissione di caratteri binari sullo schermo del terminale è rischiosa, come alcune sequenze di controllo interpretati come comandi che cambiano la modalità terminale e non solo per i colori. Questo perché il terminale Linux emula l'antica console VT100 (con aggiunte). Vedere questo post per una buona spiegazione del problema.

Per disinfettare il tuo tty usa uno o più dei seguenti comandi:

  • reset
  • stty sane
  • tput init
  • tput reset

Un modo più sicuro potrebbe essere usare il comando stty per salvare e ripristinare tutte le impostazioni contemporaneamente:

  1. Uso stty -g per stampare le impostazioni correnti in formato stty-leggibile
  2. Copia la stringa risultante
  3. Aggiungi al tuo file init della shell (.bashrc o qualsiasi altra cosa) l'alias (s per sane) come:
    alias s='stty <output string from step 2>'
  4. Ora, quando si verifica la confusione, digita semplicemente: S accedere

Grazie, proverò la prossima volta che accadrà e commenterò per farti sapere.
Max Williams

Ok, è appena successo! Ho provato tutti i comandi nella tua lista e anche il processo in 4 fasi più lungo che descrivi. Senza fortuna.
Max Williams

A proposito, sto usando MATE Terminal 1.2.1
Max Williams

Non ho esperienza con il terminale MATE, mi dispiace.
harrymc

Dovrei provare un terminale diverso, penso ...
Max Williams

2

La risposta corretta è (almeno ha funzionato nel mio caso):

tput sgr0

Dalla documentazione:

tput sgr0 - Disattiva tutti gli attributi

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.