Так что я просто изменил цветовую тему терминала (термита) на solarized(light), но, похоже, это не повлияет alsamixer
. Я хотел бы иметь светлый фон. Я изменил конфигурацию termite
и .Xresources
на solarized color-theme...
решение1
Это потому, что alsamixer
активно устанавливает свой фоновый цвет на черный. С точки зренияEscape-коды ANSIэто означает, что он отправляет ^[[40m
последовательность. Вы можете убедиться в этом, поигравшись с его выводом:
Запустить
alsamixer
, перенаправив вывод в файл:$ alsamixer > alsamixer.ansi
Используйте Escили Ctrl+Cдля выхода. Вы также можете использовать
$ alsamixer | tee alsamixer.ansi
если вы хотите одновременно увидеть результат.
Удалите проблемные части:
$ sed -r -e 's/^[\[40m//g' -e 's/^[\[H^[\[2J.{,80}$//' < am.ansi
первое регулярное выражение удаляет черный фон, а второе удаляет последовательность для очистки экрана при выходе. Обратите внимание, что
^[
на самом деле это один символ ESC, в терминале обычно создается Ctrl+V Esc. Последний экран alsamixer теперь должен отображаться с фоном по умолчанию.
Вы также можете попробовать объединить это в цепочку:
$ alsamixer | sed -u 's/^[\[40m//g'
который в некоторых случаях может время от времени показывать вам alsamixer - проблема здесь в том, что вывод производится в одну строку и, таким образом, sed
начинает обрабатывать ее только после того, как ее внутренний буфер достаточно заполнится. Таким образом, вы можете забыть об интерактивности.
Что касается вашего вопроса: исправление — это либо перекомпиляция, либо фильтр, который удалит последовательности с минимальной буферизацией.