Консоль FreeBSD. Займёмся расцветкой

А теперь поговорим еще об одном резерве для украшения консоли -- ее расцветке.
Изменение которой тоже осуществляется программой vidcontrol в форме

$vidcontrol цвет_текста цвет_фона

Ранее по умолчанию
всегда устанавливался темный фон при светлом тексте, для получения же
обратной картины требовалась опция -r (reverce). Ныне в этом нет необходимости (хотя использовать эту опцию никто не запрещает).

Список доступных цветов определяется командой

$vidcontrol show

и включает пары: black-grey, blue-lightblue, green-lightgreen и т.д.

В отличие от загрузки шрифтов, изменение расцветки текста и фона не распространяется на все виртуальные консоли, подобно изменению видеорежима. Однако, отличие от последнего, смена расцветки, во-первых, не имеет обратной силы (то есть для ранее введенного текста она сохраняется той же, что и была). А во-вторых, вывод команды смены расцветки направляется на стандартный вывод сообщения об ошибках. По умолчанию таковым является текущая консоль, но вывод этот может быть перенаправлен определенным образом, если есть желание закрепить определенные сочетания цветов за тем или иным терминалом. Ведь это - один из тех самых способов зримого различения консолей, о которых я упоминал ранее.

Я не нашел в документации указаний, в какой из стартовых файлов следует вносить изменения для смены расцветки. Однако методом ползучего эмпиризма пришел к выводу, что самое подходящее для этого место -- файл /etc/rc.syscons. Куда можно вписать строки вида, например,

vidcontrol white blue > /dev/ttyv# 2>&1

что придаст консоли вид, привычный многим по Norton Commander'у с его
Editor'ом (и по их многочисленным клонам). Последний оператор (2>&1) как раз и означает перенаправление вывода сообщения об ошибках (цифра 2) на
стандартный вывод терминала /dev/ttyv#, где # -- его номер, а 1 -- цифра, зарезервированная за стандартным его выводом (напомню для справки, что число 0 соответствует стандартному вводу).

При переопределении расцветки консоли следует иметь ввиду, что это, возможно, потребует изменения настроек некоторых программ. Одной из них, почти наверняка, окажется команда ls, которая, будучи запущена с определенными опциями, выводит информацию о файлах и каталогах в цветах (об этом будет говориться в разделе о командных оболочках). И вполне возможно, что эти цвета потеряются на новом фоне -- именно так и будет, если использовать пример с Norton-подобной расцветкой консоли.

Это -- одна из причин, почему изменение цвета фона и текста -- не самое удобное средство для различения консолей (вторая причина -- мне просто не нравятся любые их цвета, кроме "умолчальных"). Но с этой целью можно использовать еще одну особенность syscons -- возможность изменения цвета рамки монитора -- т.н. бордюра (border). Пользователи Windows на современных мониторах, возможно, даже не знают, что это такое. Но заставшие старые поганые четырнадцатидюймовики помнят, что рамка эта подчас отхватывала по пол-пальца с каждой стороны экрана. Ныне, конечно, соответствующим настройками ее можно свести к нулю. А можно -- просто утоньшить и заставить выполнять полезную функцию. Что делается командой

vidcontrol -b цвет

где опция -b, как легко догадаться, происходит от слова border, а цвет
берется из того же vidcontrol show. Ну а увековечивание изменений -- опять же через редактирование /etc/rc.syscons, куда можно вписать что-либо вроде

vidcontrol -b red > /dev/ttyv# 2>&1

как и для изменения расцветки консоли. Я, например, сделал красный бордюр (на моем мониторе он имеет устрашающе-багряный оттенок) для той единственной консоли, с которой позволяю входить себе в качестве root-оператора, консолям для мониторинга и запуска mpeg-файлов придал, напротив, рамки жизнерадостных цветов, а основным рабочим -- спокойно-нейтральные. Получается очень наглядно.

Теоретически рассуждая, изменению цвета рамки можно придать и иные функции, например, индицирования раскладки клавиатуры (латинской/русской), как это делалось в старых DOS'овских русификаторах. Хотя включение индикатора CapsLock по умолчанию во FreeBSD делает это не очень актуальным.


Содержание

. .