Заметки о консоли. В цвете
На мой взгляд, подбора подходящего шрифта довольно для придания консоли презентабельного вида. Однако при желании можно заняться и ее расцвечиванием (хотя, повторяю, монохромный стиль консоли столь же естественен, как и черно-белая гамма козинцевского “Короля Лира”).
Правда, расцвечивание консоли может иметь и практический смысл — для визуального распознавания виртуальных консолей. Поэтому уделим некоторое внимание этому вопросу.
Для изменения цветовой гаммы используется неоднократно поминавшаяся ранее команда setterm
(из пакета ulil-linux
), для чего в ней имеются опции -foreground [цвет]
и -background [цвет]
, изменяющие цвет текста и фона, соответственно. Значения обеих задаются в 8-цветной палитре — black
, blue
, green
, cyan
, red
, magenta
, yellow
. Кроме того, с помощью опции -reverce
можно “поменять местами” цвет текста и фона, сделать текст мигающим (посредством опции -blink
), выделенным (с опцией -bold
) или, наоборот, “приглушенным” (с опцией -half-bright
). Все опции, определенные для команды setterm
(подробности см. в man (1) setterm
), имеют силу только для текущей виртуальной консоли (почему цвет и используется для их различения; хотя, на мой взгляд, это проще и эффективнее сделать средствами командной оболочки zsh
).
При манипуляциях с цветом консоли следует иметь ввиду следующие обстоятельства. Во-первых, реальное воплощение цветовых значений на экране зависит от монитора и (или) видеокарты, и может быть весьма неожиданным. И, определив для опции -foreground
значение yellow
, можно спокойно получить буквы темно-горчичного цвета на черном фоне, что отнюдь не способствует читабельности текста.
Во-вторых, развитые командные оболочки имеют собственные средства манипуляции цветами, которые (для /bin/bash
, например) задействуются по умолчанию во многих дистрибутивах. А сочетание изменений цветов через setterm
и командную оболочку может привести к совершенно непредсказуемым эффектам, вплоть до полной нечитаемости текста.
И в третьих, многие программы (например, всенародно любимый Midnight Commander) сами по себе изменяют свойства терминала, сбивая настройки setterm
после выхода из них. Чтобы этого не происходило, команду setterm
следует давать с дополнительной опцией -store
, сохраняющей в качестве умолчаний установленный ею набор терминальных атрибутов.
Тем не менее, если результаты цветовых экспериментов показались удачными, измененные цвета фона и текста можно сделать постоянными. Для этого достаточно включить команду setterm
с требуемыми значениями опций в один из стартовых файлов (например, в тот же /etc/sysconfig/i18n
в Red Hat клонах или в /etc/rc.local
— во многих дистрибутивах, использующих BSD-стиль инициализации).
И последнее, что я хотел бы сказать о цветах. Консольный драйвер FreeBSD (syscons
) позволяет менять цвет не только текста и фона, но и бордюра экрана отдельно для каждой виртуальной консоли. Что такое бордюр, помнят, пожалуй, только пользователи старых четырнадцатидюймовиков без средств цифрового управления: это та самая черно-серая кайма между изображением и пластмассой окаёмки дисплея. В старых DOS-русификаторах, помнится, изменение ее цвета использовалось для индикации текущей раскладки клавиатуры (латиницы или кириллицы). Однако на любом современном мониторе бордюр обычно сводят под ноль. Тем не менее, и его можно использовать в мирных целях (например, придав бордюру root-консоли тревожный красный цвет).
В Linux’е штатного средства для этого не имеется. Однако на сайте винницкой
Содержание . . . .