Цветовой skin для mc в стиле mc-light

Очень давно, обновление за обновлением я тянул за собой файловый менеджер для FreeBSD Midnight Commander (проект mc-light). У него был ряд особенностей, присущих именно ему. Это и часы на главном окне экрана и цветовая расцветка и подсветка строк во внутреннем редакторе.

Именно эти подсветки меня привлекли, код писался вполне приемлемо, конфигурационные файлы были читабельными, стандартная же расцветка mc ну никак не подходила.

И так я тянул очень долго, и после того, как проект mc-light был закрыт. Однако же появились новые функции в mc, я потратил много времени на то, чтобы найти возможность сделать mc таким-же удобным и привычным, как раньше. На многих англо/русскоязычных форумах множество людей были расстроены тем, что mc-light больше не поддерживается, но теперь они смогут вернуть себе потерянное. Чтобы сделать mc более чем на 95.9% похожим на своего сородича, нужно использовать мой skin и syntaxis.

Как выглядит стандартный mc:

mc

Как выглядел mc-light:

mc-light
mc-light2

В последних версиях в mc появилась возможность выбора skins, это помогло создать то, что мне нужно.

После создания нового скина практически все подсветки были внесены в новый скин в неизменном виде. С часами в правом верхнем углу правда пришлось попрощаться, однако же этот недостаток восполняется многими другими нововведениями новой версии mc.

В итоге получился более сочный и живой mc в привычной расцветке. Если вы не пользовались mc-light, можете просто поставить себе этот скин для разнообразия, может быть он прийдется вам по вкусу.

Также внесены некоторые изменения, которых не было в mc, но были в mc-light. Одни из этих вещей — это подсветка IP и MAC адресов, считаю это очень удобным.

Что получилось:

mc-nastya

mc-nastya2

mc-nastya3

Итак, как этого удалось добиться и что нужно сделать, чтобы установить этот скин.

Так как я пользуюсь шелом /bin/sh было неприятной новостью то, что mc-4.8.24 не работает в 12.1-RELEASE-p3 FreeBSD.

После установки из портов или из пакетов, он не работает в этом шеле. Помогает mc -u, но это не то, что нам нужно.

Потому пришлось сменить шел, если для root:
chsh -s /bin/csh root

Скины сами лежат в /usr/local/share/mc/skins/

Их можно было править и там, но это был бы хак и security audit сообщал бы вам об изменении файлов, потому мы делаем все правильно, а именно, скачиваем skin nastya-mc-light.

Копируем файл nastya256.ini в папку пользователя (для рута):
/root/.local/share/mc/skins, папку skins создаем самостоятельно.

Так как используется терминал в 256 цветов, в ~root/.cshrc добавляем строку типа:
setenv TERM xterm-256color

открываем mc

Идем в меню Options -> Appearance и выбираем скин nastya256.

nastya

Ура, половина пути пройдена.

Кстати, там вы можете выбрать для себя какой-то другой понравившийся skin.

Skin желательно устанавливать именно так, или не из другого редактора поправить файл /root/.config/mc/ini на предмет skin=nastya256. Если сделать это через редактор mc, изменения не будут сохранены, пока вы не отключите автосохранение. Проще и удобнее установить skin через меню самого mc.

Осталось подправить только вывод цветов в редакторе, для этого пришлось переделать и добавить некоторые изменения в файл Syntax, sh.syntax и unknown.syntax.

Эти файлы лежат в /usr/local/share/mc/syntax

Чтобы не менять исходников, мы копируем эти три файла в папку ~/.config/mc/mcedit из скачанного вами архива и в принципе все, при следующем запуске mc, редактор подхватит нужные цвета.

Так как в mc-light не было скинов, там все выводилось одной стандартной схемой, в mc же стоит автоопределение файла, который вы открываете на редактирование. К сожалению автоопределение работает не всегда хорошо, и идет выбор синтаксиса unknown.syntax.

Чтобы исправить это недоразумение оба этих файла, и sh.syntax и unknown.syntax я сделал одинаковыми.
При желании вы можете сами подправить цветовую гамму или ссылку на нужный вам синтаксис.

В файле ~/.config/mc/mcedit/Syntax находится ссылка на нужную вам подборку.

Если вы захотите внести изменения вручную, то вносятся они следующим образом:

file .\* unknown
include /root/.config/mc/mcedit/unknown.syntax

Ссылку на unknown.syntax вы можете заменить ссылкой на все тот же sh.syntax. В таком случае, вам будет достаточно одного файла.

Самое важное, что теперь вы можете пользоваться новым скином и правильными подсветками в стиле старого доброго mc-light. В свое время я потратил много времени на поиски, надеюсь кому-то это будет полезно.
Теги:
mc, mc-light, skins, syntax, misc

Данная статья не подлежит комментированию, поскольку её автор ещё не является полноправным участником сообщества. Вы сможете связаться с автором только после того, как он получит приглашение от кого-либо из участников сообщества. До этого момента его username будет скрыт псевдонимом.