2016-02-18 19:44:58

Раскрашиваем MC на удаленном сервере

В мемориз Linux

Переехав на Elementary OS, столкнулся с тем, что в ее родном терминале штатный раскас mc крайне не читабелен. Озадачившись вопросом смены окраса накопал следующие полезные вещи:

MC умеет скины и они у него есть в комплекте, хранятся в

/usr/share/mc/skins

Попробовать скин можно коммандой

mc -S skinname

Скины бывают обычные и высококачественные, для 256 цветов, например мне полюбился xoria256 (на картинке выше), который и захотелось использовать везде. Везде - это везде куда я прихожу по ssh.

Для того, чтоб избавиться от длинной команды можно установить переменную окружения MC_SKIN, чтоб не набирать каждый раз. Ну а раз можно так, то значит можно пробросить эту переменную через ssh.


Передача скина MC по SSH

Момент первый, чтоб использовать 256-цветовые скины, нужно убедиться, что наш терминал поддерживал 256 цветов. Если вам понравилась обычная, не 256-цветовая шкура, то смело опускайте момент про TERM.

В большинстве случаев ssh передает TERM=xterm при установке соединения, для реализации 256 цветов нам надо передавать TERM=xterm-256color.

Для начала правим свой ~/.bashrc, добавляем туда

export TERM=xterm-256color
export MC_SKIN=xoria256

Потом правим/создаем файл ~/.ssh/environment (можно и глобальный для всех в /etc/ssh), в нем пишем

TERM=xterm-256color
MC_SKIN=xoria256

Далее правим конфиг ~/.ssh/config (аналогично можно и глобальный в /etc/ssh), туда в начало дописываем

Host *
    SendEnv MC_SKIN

Пробуем подключиться и запустить mc, если все сразу получилось, то нам повезло :)

Если же нет, то переходим к серверной части

Конфигурация сервера

Для того чтоб принять переменную MC_SKIN от клиента идем на сервере в /etc/ssh/sshd_config и добавляем в него

AcceptEnv MC_SKIN

Обычно там уже есть большой блок с AcceptEnv, добавляем к нему.

Ну и на закуску нужно перезапустить sshd на сервере, да так чтоб от него не отвалиться, для этого есть несколько способов

service sshd reload

или

/etc/init.d/sshd reload

или

ps ax | grep sshd
kill -HUP процесс

Для того, чтоб передались новые переменные на свервер, нужно отколючить ВСЕ сесси и подключить заново, если оставить активную сессию и начать параллельно новую, ничего не получится.

И на последок, если пользуетесь sudo, то для того чтоб после sudo su не терялся скин у МС, нужно в /etc/sudoers добавить строчку в соответсвующем месте

Defaults    env_keep += "MC_SKIN"

Все :)