Настраиваем LS_COLORS

Те пользователи, кто работал в других дистрибутивах Linux, базирующихся не на deb, скорее всего, для комфорта, настраивали переменную среды LS_COLORS. Причем, делалось это весьма просто, при помощи файлов /etc/DIR_COLORS или ~/.dir_colors. Но в Ubuntu этих файлов нет... Тогда как нам быть? Создание этих файлов вручную нам не поможет.

Сперва стоит напомнить, для чего я использую LS_COLORS. На самом деле, всё просто: с помощью этого параметра я могу менять цветовую схему отображения файлов и каталогов в консоли(терминале) при работе с командой ls. Мне это нужно как для консоли, так и для Gnome Commander, он тоже в определенной мере поддерживает цветовые последовательности LS_COLORS. Хотя в Ubuntu по-умолчанию есть своя цветовая схема - мне она не по душе.

Приступим к настройке.

1. Для начала сохраним дефолтные настройки LS_COLORS в файл .lscolors для последующего изменения

$ dircolors -p > ~/.lscolors

2. Отредактируем настройки

$ nano .lscolors

в открывшемся файле можно поправить цвета по типу операторов.

Список операторов:
TERM terminal-type
Начинает секцию, специфичную для терминала, и указывает, к какому типу терминала она применима. Можно использовать несколько операторов TERM, чтобы создать секцию, применимую к нескольким типам терминалов.
COLOR yes|all|no|none|tty
Указывает, что расцветка должна быть всегда разрешена (yes или all); никогда не разрешена (no или none) или разрешена, только если вывод происходит на терминальное устройство (tty).
EIGHTBIT yes|no
Указывает, разрешены ли по умолчанию восьмибитные символы ISO 8859. Из соображений совместимости можно также указывать 1 (означает yes) или 0 (означает no).
OPTIONS options
Добавляет опцию командной строки к стандартной командной строке ls. Здесь можно указать любую разрешенную опцию команды ls, причем нужно указать начальный знак минус. Заметьте, что dircolors не проверяет, верны ли эти опции.
NORMAL color-sequence
Задает цвет, используемый для нормального (не имя файла) текста.
FILE color-sequence
Задает цвет, используемый для обычного файла.
DIR color-sequence
Задает цвет, используемый для каталогов.
LINK color-sequence
Задает цвет, используемый для символьных ссылок.
ORPHAN color-sequence
Задает цвет, используемый для сломанной символьной ссылки (указывающей на несуществующий файл). Если этот цвет не задан, то ls будет использовать вместо него цвет LINK.
MISSING color-sequence
Задает цвет, используемый для пропавшего файла (несуществующего файла, на который указывает символьная ссылка). Если этот цвет не задан, то ls будет использовать вместо него цвет FILE.
FIFO color-sequence
Задает цвет, используемый для FIFO (именованного канала).
SOCK color-sequence
Задает цвет, используемый для сокета.
BLK color-sequence
Задает цвет, используемый для специального файла блочного устройства.
CHR color-sequence
Задает цвет, используемый для специального файла символьного устройства.
EXEC color-sequence
Задает цвет, используемый для файла с установленным атрибутом выполнения.
LEFTCODE color-sequence
Задает левый код для не-ISO 6429 терминалов.
RIGHTCODE color-sequence
Задает правый код для не-ISO 6429 терминалов.
ENDCODE color-sequence
Задает конечный код для не-ISO 6429 терминалов.
*extension color-sequence
Задает цвет, используемый для файлов, чьи имена заканчиваются на заданное расширение extension.
.extension color-sequence
То же самое, что и *.extension. Задает цвет, используемый для файлов, чьи имена заканчиваются на .extension. Заметьте, что точка входит в состав расширения, и из-за этого невозможно указать расширение, не начинающееся с точки, например ~ для резервных копий.

Список цветовых последовательностей:
Эти последовательности составлены из последовательности чисел, разделенных точками с запятой. Самые распространенные коды таковы:

00 восстановление цвета по умолчанию
01 включить яркие цвета
04 подчеркнутый текст
05 мигающий текст
--
30 черный текст
31 красный текст
32 зеленый текст
33 желтый (или коричневый) текст
34 синий текст
35 фиолетовый текст
36 cyan текст
37 белый (или серый) текст
--
40 черный фон
41 красный фон
42 зеленый фон
43 желтый (или коричневый) фон
44 синий фон
45 фиолетовый фон
46 cyan фон
47 белый (или серый) фон

Более подробно про операторы и цветовые последовательности можете почитать в мануале по DIR_COLORS.
К примеру чтобы файлы flash video(.flv) выделялись синим цветом, были ярко подсвечены и отображались на желтом фоне, добавляем в файл строку:

.flv 01;34;43

После настройки необходимых цветовых последовательностей не забываем сохраниться.

3. Теперь сделаем, чтобы при любом обращении к bash применялись наши настройки. Для этого отредактируем файл ~/.bashrc

$ nano ~./bashrc

и добавим в конец файла строку:

eval "`dircolors -b $HOME/.lscolors`"

Все, теперь для проверки откройте терминал и выполните команду ls. Вывод этой команды должен быть расцвечен в ваши цвета.

4. Теперь мы добрались до Gnome Commander.
Активируется поддержка LS_COLORS следующим образом: Настройки -> Параметры -> Расположение и активируем чекбокс Окрашивать файлы в соответствии с переменной среды LS_COLORS.
Но если вы теперь запустите Gnome Commander, то увидите, что программа использует цвета, которые идут в Ubuntu по-умолчанию. Чтобы применить созданную нами цветовую схему, можно постоянно запускать коммандер из консоли, но сами посудите - это не совсем удобно.

4.1. Для себя я проделал следующее (вы можете сделать это по другому).
Переименовал запускающий файл gnome-commander в gnome-commander2

$ sudo mv /usr/bin/gnome-commander /usr/bin/gnome-commander2
вывел на экран данные ~/.lscolors с помощью dircolors

$ dircolors ~/.lscolors

Из выданного списка скопировал все, кроме последней строки: export LS_COLORS.
Создал файл gnome-commander, взамен старого

$ sudo nano /usr/bin/gnome-commander

и вставил туда скопированное ранее + добавил еще пару строк. Должно получиться, что-то типа этого:

#!/bin/sh
export LS_COLORS='no=00;37:fi=00;37:di=01;36:ln=04;36:pi=40;33:so=01;35:do=01;35:bd=40;33;01:cd=40;33;01:or=40;31;01:su=37;41:sg=30;43:tw=30;42:ow=34;42:st=37;44:ex=00:*.cmd=01;31:*.exe=01;31:*.com=01;31:*.btm=01;31:*.bat=01;31:*.sh=01;31:*.run=01;31:*.tar=33:*.tgz=33:*.arj=33:*.taz=33:*.lzh=33:*.zip=33:*.z=33:*.Z=33:*.gz=33:*.bz2=33:*.deb=33:*.rpm=33:*.jar=33:*.rar=33:*.jpg=32:*.jpeg=32:*.gif=32:*.bmp=32:*.pbm=32:*.pgm=32:*.ppm=32:*.tga=32:*.xbm=32:*.xpm=32:*.tif=32:*.tiff=32:*.png=32:*.mov=34:*.mpg=34:*.mpeg=34:*.avi=34:*.fli=34:*.flv=34:*.3gp=34:*.mp4=34:*.divx=34:*.gl=32:*.dl=32:*.xcf=32:*.xwd=32:*.flac=35:*.mp3=35:*.mpc=35:*.ogg=35:*.wav=35:*.m3u=35:';
/usr/bin/gnome-commander2

Сохранился и сделал файл исполняемым:

$ sudo chmod +x /usr/bin/gnome-commander

Все, теперь я могу пользоваться gnome-commander как и раньше, но теперь он у меня будет с моей цветовой схемой.

Способ конечно не изящный, если кто может посоветовать лучше, с удовольствием почитаю.

Нужна бесплатная консультация юриста? Получите ее на сайте svem.ru

Опубликовано 14.02.2007в 21:44. В рубриках: Optimize, Ubuntu. Вы можете следить за ответами к этой записи через RSS 2.0. Вы можете оставить свой отзыв или трекбек со своего сайта.

Оставьте свой комментарий