Как сбросить системные цвета

7

Я использую Linux Mint, MATE версия. У меня странная проблема, которая возникает довольно часто при прокрутке файлов журналов в терминале: машина останавливается на секунду или две, и когда она возвращается, мои системные цвета были зашифрованы. То есть все цвета ANSI смешаны - красный думает, что он желтый, желтый думает, что он зеленый и т. Д. Это влияет не только на терминалы, но и на некоторые другие настольные приложения: Caja (замена nautilus), Geany (текстовый редактор) и Gedit ,

Назначение цвета кажется случайным и иногда приводит к непригодным для использования комбинациям, например, замена белого на черный (бесполезно на черном фоне). Мне нужно перезагрузиться, чтобы вернуть цвета.

Я предполагаю, что происходит то, что некоторые строки символов в файле журнала не экранированы должным образом и что-то попадают в систему, но я недостаточно техническая, чтобы попытаться отладить это. Есть ли какая-нибудь команда, которую я мог бы ввести, чтобы сбросить все цвета обратно, кто-нибудь знает?

Благодарен за любой совет, макс

РЕДАКТИРОВАТЬ - прикрепленный скриншот enter image description here

РЕДАКТИРОВАТЬ - я использую MATE Terminal 1.2.1

Max Williams
источник
ты пробовал командовать reset в терминале?
mnmnc
Проблема сохраняется, если вы открываете новый терминал?
terdon
@mnmnc - да, без эффекта. terdon - да, это сохраняется, если я открываю новый терминал. Он просто сделал это снова впервые за последние годы.
Max Williams

Ответы:

10

Ввод двоичных символов на экран терминала опасен, так как некоторые управляющие последовательности интерпретируются как команды, которые изменяют режим терминала, а не только для цветов. Это связано с тем, что терминал Linux эмулирует антикварную консоль VT100 (с дополнениями). Увидеть эта почта для хорошего объяснения проблемы.

Для очистки вашего tty используйте одну или несколько из следующих команд:

  • reset
  • stty sane
  • tput init
  • tput reset

Более верным способом может быть использование команда stty чтобы сохранить и сбросить все настройки сразу:

  1. использование stty -g распечатать текущие настройки в удобочитаемом формате
  2. Скопируйте полученную строку
  3. Добавьте в свой файл инициализации оболочки (.bashrc или любой другой) псевдоним (s для здравомыслящего) как:
    alias s='stty <output string from step 2>'
  4. Теперь, когда возникает путаница, просто введите: s Войти
harrymc
источник
Спасибо, я попробую это в следующий раз, когда это произойдет, и прокомментирую, чтобы вы знали.
Max Williams
Хорошо, это просто случилось! Я перепробовал все команды в вашем списке, а также более длинный четырехэтапный процесс, который вы описали. Неудачно.
Max Williams
Кстати, я использую MATE Terminal 1.2.1
Max Williams
У меня нет опыта работы с MATE Terminal, извините.
harrymc
Я должен попробовать другой терминал, я думаю ...
Max Williams
2

Правильный ответ (по крайней мере, это сработало в моем случае):

tput sgr0

Из документации:

tput sgr0 - отключить все атрибуты

Ľuboš Katrinec
источник