OpenWay|POSIX-saga|FreeBSD etc.|All Linux|Apps|POSIX-live|SiteMap
Пользовательские приложения
(C) Указанные авторы, 2004, отныне и вовек
Links|Shell|X etc.|Text|Web|Test|Hard

Раскрась командира

Алексей Корельский

Существует расхожее мнение, что открытые системы хороши в том числе и тем, что все в них можно настроить под себя. Однако, если судить по внешнему Midnith Comander'а, который знаком, пожалуй, каждому пользователю *nix систем, то может показаться, что далеко не все так радужно. В самом деле, везде мы видим одни и те же сине-белые панели, знакомые еще по ДОС'у с его командиром Нортоном (Norton Comander).

Конечно, традиции это хорошо, но лично меня подобное цветовое оформление всегда вызывало напряжение и быструю утомляемость глаз. А ведь способ исправить ситуацию есть! И скрыт он в документации к Midnith Comander'у, достаточно только дать команду: man mc Оригинально, не правда ли? :)

Первый, лежащий на поверхности способ, это запустить mc в черно-белом режиме, для чего служит ключик -b Вот так выглядит результат исполнения комманды mc -b:

Не слишком впечатляет... Тем не менее, иногда и такой хак может оказаться полезным. Но все же душа просит большего. Поэтому углубляемся в чтения мана, и обнаруживаем искомое! Ниже приведен мой вариант перевода куска ман страницы, где как-раз и описываеться методика управления цветовым оформлением файлового менеджера.

{начало переведенного фрагмента}

Midnight Commander предоставляет возможность изменять цветовое оформление. Цветовая схема конфигурируется при помощи переменной окружения MC_COLOR_TABLE или с использованием секции Colors в конфигурационном файле.

В секции Colors цветовая раскладка по умолчанию загружается из переменной base_color, но вы можете задать альтернативную раскладку для терминала используя название этого терминала в качесстве ключа. Пример:

[Colors]
base_color=xterm=menu=magenta:marked=,magenta:markselect=,red

Формат для определения цветовой раскладки следующий:

[ключевое слово]=[цвет переднего плана],[цвет заднего плана]:[ключевое слово]= ...

Цвета нужно выбирать из списка "разрешенных" цветов, а ключевыми словами могут быть: normal, selected, marked, markselect, errors, input, reverse, gauge. За цветовое конфигурирование меню используеться ключевые слова: menu, menusel, menuhot, menuhotsel. Для конфигурирования диалогов: dnormal, dfocus, dhotnormal, dhotfocus. За хелпы отвечают: helpnormal, helpitalic, helpbold, helplink, helpslink. Для просмоторщика: viewunderline. Для цветовой подсветки содержимого панелей: executable, directory, link, stalelink, device, special, core. И для редактора: editnormal, editbold, editmarked.

input - определяет цвет используемый для строки ввода в диалогах и запросах. gauge - определяет цвет заполненой части "progress bar'а", который используется чтобы показывать пользователю состояние процесса выполнения файловых операций, например, копирования.

Для меню используется аналогичная схема, только вместо dnormal - menu, вместо dfocus - menusel, dhotnormal - menuhot и dhotfocus - menuhotsel, соответственно.

Ключевые слова для хелпов: helpnormal - для обычного текста, helpitalic - для текста, который выделен наклонным начертанием в страницах помощи, helpbold - для текста, который выделен жирным начертанием в страницах помощи, helplink - для выделения невыбранной, а helpslink - для выбранной выбранной гипер-ссылок.

Ключевые слова для специальной цветовой подсветки: directory - используется для определения цветов каталогов и символических сссылок на каталоги, executable - для исполняемых файлов, link - для символических сссылок на все объекты, кроме каталогов, stalelink - для неверных ссылок, special - для специальных файлов, тиких как сокеты и "трубопроводы" (pipes) и core [затрудняюсь перевести]

Возможные цвета: black (черный), gray (серый), red (красный), brightred (ярко-красный), green (зеленый), brightgreen (ярко-зеленый), brown (коричневый), yellow (желтый), blue (синий), brightblue (ярко-синий), magenta (пурпуный), brightmagenta (ярко-пурпурный), cyan (голубой), brightcyan (ярко-голубой), lightgray (светло-серый) и white (белый). Пример:

[Colors]
base_color=normal=white,default:marked=magenta,default

{конец переведенного фрагмента} Таким образом, пользуясь, приведенными рекомендациями я сконструировал следующую цветовую схему:

[Colors]
base_color=normal=brown,black:directory=cyan,black:executable=green,black:link=brown,black:stalelink=red,black:special=grey,black:marked=magenta,black:editnormal=brown,black:editmarked=black,lightgray

Вот парочка примеров этой цветовой раскладки в действии:

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


Обсуждение проекта