Автор — Lucas Westermann

После публикации моей статьи в прошлом месяце о том, как настраивать строки запроса и оболочки, я подумал, что было бы неплохо показать, как можно настроить цвета для терминала. Это будет хорошим знакомством с файлом «.Xdefaults», который предоставляет большое количество средств контроля настроек для каждого пользователя. Его можно использовать для установки курсора мыши, urxvt-специфических параметров, настроек терминала, количества DPI, сглаживания и других свойств шрифтов X, тем для xscreensaver и др. На сайте Аарона Гриффина (Aaron Griffin, ведущий разработчик ОС Arch Linux) есть много примеров схем раскраски терминала: http://phraktured.net/terminal-colors/. Сегодня я опишу процесс создания собственной цветовой схемы для терминала. Он состоит из нескольких этапов:

  • Понимание синтаксиса раскраски в файле «.Xdefaults»
  • Нахождение шестнадцатеричных значений цветов, подбор сочетающихся цветов
  • Вывод результатов применения цветовой схемы в тестовом режиме

Я буду использовать привычные для меня методы, но это ни в коем случае не значит, что это — единственный путь создания цветовой схемы. Первое, что надо сделать, — проверить текущую цветовую схему, если она есть, чтобы понять, с чем предстоит работать. Для этого я настоятельно рекомендую использовать сценарий Даниэля Крисмана (Daniel Crisman), ссылка на который приведена в начале раздела «Читайте также» в самом конце веб-страницы. Чтобы его использовать, просто скопируйте приведённый код сценария в файл, а потом примените к нему команду «chmod +x». Например:

vim colors

<после вставки сценария и выхода из vim>

sudo chmod +x colors

Выполнение сценария:

./colors

В результате получим что-то наподобие приведённого ниже.

Второй шаг для меня — подбор базового цвета, от которого зависит выбор остальных, так как нужен набор гармоничных цветов. Можно выбрать базовым зелёный, например. Затем можно открыть палитру цветов: с помощью приложения gcolor2 (если предпочитаете только палитру), или воспользоваться палитрой GIMP. Единственное, что нам сейчас нужно, — шестнадцатеричное значение выбранного цвета. После выбора базового цвета остаётся подобрать подходящие ему цвета. Если вы, так же как и я, испытываете с этим затруднение, то можете воспользоваться поиском на http://www.colourlovers.com: введите шестнадцатеричное значение цвета для подбора палитры подходящих цветов. Подобрав 16 цветов (а учитывая цвет текста и фона, в итоге получим 18), можно приступать к занесению их в файл «.Xdefaults». Формат задания цветов для всех терминалов одинаков:

!---- Terminal Colours
*background: 	#000000
*foreground: 	#ffffff
*color0:		#000000
*color1: 		#9e1828
*color2: 		#aece92
*color3: 		#968a38
*color4: 		#414171
*color5: 		#963c59
*color6: 		#418179
*color7: 		#bebebe
*color8: 		#666666
*color9: 		#cf6171
*color10: 		#c5f779
*color11: 		#fff796
*color12: 		#4186be
*color13: 		#cf9ebe
*color14: 		#71bebe
*color15:		#ffffff

Первая запись — формат комментария в файле «.Xdefaults». Можно установить цветовую схему только для определённого терминала, добавив имя приложения перед звёздочкой («*»). Пример той же схемы, только для urxvt:

urxvt*background: [70]	#000000
urxvt*foreground: 		#ffffff
urxvt*color0: 		#000000
urxvt*color1: 		#9e1828
urxvt*color2: 		#aece92
urxvt*color3: 		#968a38
urxvt*color4: 		#414171
urxvt*color5: 		#963c59
urxvt*color6: 		#418179
urxvt*color7: 		#bebebe
urxvt*color8: 		#666666
urxvt*color9: 		#cf6171
urxvt*color10: 		#c5f779
urxvt*color11: 		#fff796
urxvt*color12: 		#4186be
urxvt*color13: 		#cf9ebe
urxvt*color14: 		#71bebe
urxvt*color15: 		#ffffff

В этом примере значение в квадратных скобках задаёт прозрачность для фона (70% видимости, или 30% прозрачности). Такого поведения можно добиться только в тех терминалах, которые поддерживают прозрачность, и в системах, использующих композитные менеджеры окон (xcompmgr, cairo-compmgr, compiz, mutter и т. д.) с поддержкой прозрачности.

После добавления цветовой схемы в файл «.Xdefaults», вам наверняка захочется тут же проверить результат без перезагрузки графического окружения. К счастью, это возможно благодаря одной маленькой хитрости командной стоки:

xrdb -merge ~/.Xdefaults

в результате чего xrdb (X Resource Database Manager) в принудительном порядке задействует настройки из «.Xdefaults». Повторный запуск сценария «colors» позволит убедиться в наличии новой цветовой схемы.

Вот и всё, что требуется сделать. Придётся немного попотеть, чтобы добиться желаемых результатов, но ведь в этом вся соль. Да и те две ссылки для более детального ознакомления с «.Xdefaults» основаны на Arch, так как мне не удалось разыскать материал для Ubuntu. Впрочем, инструкции были бы почти такие же. Приведённые выше примеры цветовых схем я и сам использую. В их основе, скорее всего, чей-то .Xdefaults-файл, найденный мною где-то в интернете. От оригинала мало что осталось, но, полагаю, обязан упомянуть, что не всё это я сделал сам. Как всегда, любые вопросы, предложения или отзывы можно присылать на «lswest34@gmail.com». Я так же попрошу всех, кто мне пишет, указывать в теме «FCM – C&C», чтобы я не пропустил ваше письмо. Было бы приятно увидеть содержимое ваших .Xdefaults-файлов, некоторые из которых я с удовольствием продемонстрирую в следующей «Покоряй и властвуй», если вы пришлёте мне скриншот и соответствующие .Xdefaults- настройки.


Читайте дальше:

  1. http://tldp.org/HOWTO/Bash-Prompt-HOWTO/x329.html - сценарий «colourscheme.sh» Даниэля Крисмана (Daniel Crisman)
  2. http://wiki.archlinux.org/index.php/Xdefaults - страница «.Xdefaults» на Arch-вики с несколькими примерами и ссылками
  3. http://bbs.archlinux.org/ viewtopic.php?id=51818&p=1 - тема на форуме Arch с примерами цветовых схем для терминала
  4. http://www.colourlovers.com/ - colourLovers (для цветовых палитр)

Для того чтобы вставить в Vim без автоматических отступов, выполните «:set paste», нажмите «i» для вставки в режиме «из буфера» и вставьте сценарий в файл. Для отмены режима «из буфера» установите «:set nopaste». Обе команды выполняются в обычном режиме и без кавычек.