Как установить цвет фона экрана консоли Linux?

Установили ли вы ENABLED="true" в /etc/default/sysstat (он false по умолчанию при установке в Ubuntu и, возможно, других дистрибутивах)?

Тогда вы должны быть в состоянии запустить его с sudo service sysstat restart

1
12.10.2018, 09:30
1 ответ

На виртуальном терминале Linux («консоль»):

Установка цвета фона 1 (красный):

printf %b '\e[41m' '\e[8]' '\e[H\e[J'

Первый escape(setab)устанавливает цвет фона 1, второй escape определяет текущую пару переднего плана -фона как значение по умолчанию , а третий(clear)очищает экран.

Отныне «красный» будет фоном по умолчанию:

printf %b 'World\e[42mWide\e[mWeb\n'

Обратите внимание, что установка зеленого фона с помощьюsetab 2(\e[42)и последующая очистка атрибутов с помощьюsgr0(\e[m)не стирают наши настройки.

Кроме того, вы можете переопределить, какой цвет 0 (фон по умолчанию, черный )означает через «установить палитру» (aka initc= «инициализировать _цвет» )escape:

printf %b '\e[40m' '\e[8]' # set default background to color 0 (black)
printf %b '\e]P0ff0000'    # redefine color 0 as 'red'

Последний принимает аргумент формы nRRGGBB, где n— номер цвета, а RRGGBB— шестнадцатеричная тройка, определяющая цвет.

Этот побег также поддерживается замазкой .

Описание этих и других функций см. в справочных страницах консоли _коды (4 )и terminfo (5 ).

Я тоже не смог:

a )изменить цвет фона экрана, не стирая с него все, с помощью clear.

b )принудительное обновление поля экрана, отличного от -, без переключения назад -и -вперед между виртуальными терминалами с помощью Control -Alt -Fn.

На xterm -как эмуляторы терминала:

Это устанавливает светло-зеленый фон без необходимости очищать экран:

printf %b '\e]11;#ccffcc\a'

Также отлично работает на mlterm, rxvt, gnome-terminal, konsoleи т. д.

Альтернативная форма \e]11;rgb:cc/ff/cc\a(, взятая из здесь ), не поддерживается в konsole(, протестирована с версией 12.16.0 ).

Это не будет работать внутри tmuxили screen.

Все побеги xtermзадокументированы в файле ctlseqs.txt из его исходного кода.

Примечание:

Некоторые побеги (например. \e[8]или\e]11;...\a)не включены в terminfo и вообще не могут использоваться с tput, в то время как другие (, например.initc)слишком неуклюжи, чтобы их можно было использовать в чистом виде.

Доступная для grepping версия базы данных terminfo может быть получена с помощью такой команды, как:find /usr/share/terminfo -type f -printf '%f\n' | xargs -n1 infocmp -0 -A /usr/share/terminfo

9
27.01.2020, 23:23

Теги

Похожие вопросы