Про EOS и виртуальные консоли

Содержание
  1. Вступление: кому лень — можно и не читать
  2. Два притопа, три прихлопа: экранный вывод и клавиатурный ввод
  3. Второй притоп: клавиатурный ввод
  4. Третий прихлоп: служба консольной мыши

Дистрибутив EOS, как и почти все современые дистры общего назначения, кроме узкоспециальных, по умолчанию грузится в графическом режиме с выбранным при инсталляции рабочим столом (в нашем случае KDE). Но, разумеется, никуда не девались и виртуальные консоли, обычно называемые текстовыми. Что не совсем верно, но для определённости будем использовать это название.

Вступление: кому лень — можно и не читать

Переключиться в консольный режим можно по комбинации клавиш Atl+Control+F2F6, по Atl+F1 — возврат в графический режим умолчального десктопа. То есть доступно пять виртуальных консолей. Хотя поначалу радости от них мало: во-первых, буковки там маленькие и некрасивые, во-вторых, при русской локали ru_RU.UTF-8 вместо символов кириллицы, имеющихся, например, в приглашении командной строки, будут видны светлые квадратики:

Скриншот 1. Квадратики вместо кириллицы

Если же на экран файл с большим количеством русскоязычных вкраплений (например, мой конфиг оболочки ~/.zshrc), зрелище будет вообще душераздирающим:

Скриншот 2. Кириллический текст

А о вводе русских букв с клавиатуры пока и говорить не приходится.

Если читатель подумает, что это безобразие — уникальная особенность EOS, то он сильно ошибётся: вот уже многие годы майнтайнеры всех дистрибутивов, которые мне довелось видеть, не утруждают себя настройкой консоли вообще, и кириллической консоли в частности. Даже наш Atl не будет исключением. А ведь он издревле (заслуженно) гордился образцовой русификацией всего и вся, с конца прошлого тысячелетия, когда звался ещё Mandrake Linux Russian Edition, и выпускался IPLabs Linux Team.

Такое пренебрежение консолью и её русификацией нынче объяют обычно тем, что она не нужна: обращаться к консольному приходится очень редко, и только при сбоях режима графического. для борьбы с чем и вражьей мовы достаточно.

Некоторые резоны в этом есть, хотя в принципе это не верно. Однако спорить по этому поводу я не буду, так как в опровержение в скажу точно в развитие известного высказывания АнтонПалыча Чехова:

У человека всё должно быть прекрасно: и операционка, и её дистр, и рабочая среда. И даже консоль.
© Моё

А, надеюсь, никому не придёт в голову называть прекрасными серые квадратики вместо русских букв. Разве что записному русофилу, полагающему прекрасным всё русское. Или, напротив, отъявленному русофобу, считающему: чем всё русское хуже — тем лучше. Ведь противоположности сходятся, не так ли?

Но мы-то, товарищи, знаем, что

…нет ничего слюнявее и плюгавее
Русского безбожия и православия.
©

Потому как

…если они не сходятся в теории вероятности,
То сходятся в неопрятности.
©

А вот побороть неопрятность в консоли — это вполне в наших силах.

Конечно, применителям deb based систем здесь совсем просто: у них есть утилита dpkg-reconfigure, способная решить проблему в «два притопа, три прихлопа», о чём здесь и далее некогда рассказывал кот Мануал.

Для более иных систем такого универсального решения нет — широкое внедрение systemd и спровоцированное им развитие иных стилей инициализации (таких, как openRC, runit, Dinit, S6, Suite66, Shepherd) существенно осложнили ситуацию. Возвращая нас на 20 лет назад и заставляя читать соответствующую документацию (что, скажу вам по секрету, надоело хуже… любой редьки, редиски и прочих овощей; не говоря уж о том, о чём подумали все испорченные мальчики).

Так что и я не претендую на универсальность решения, предлагаемого для EOS. Однако кажется, что может работать в ряде Arch based систем, к коим эта дистра принадлежит. Хотя разработчики «головного» Arch’а вроде бы отказались от использования каких-либо схем инициализации по умолчанию.

Два притопа, три прихлопа: экранный вывод и клавиатурный ввод

Этот раздел описывает кириллизацию консоли в EOS. Поэтому страдающим от болезни печени и избытка грамотности можно начинать чтение прямо с него.

Так вот, в нашем случае два притопа, то есть обеспечение экранного вывода кириллицы и её же ввода с клавиатуры достигаются редактированием (от имени администратора) одного и того же файла, например, так:

~/ sudo nano /etc/vconsole.conf

По умолчанию в моём случае он содержит единственную строку типа

KEYMAP=ru

которая ничему не соответствует и ничего не даёт. Её можно смело удалить (или, скажем, политкорректней, закомментировать). И вместо неё прописать две строки:

  • с описанием пути к имени шрифтового файла вывода (разумеется, и самого файла тоже), и
  • с тем же самым для файла раскладки клавиатуры.

Разумеется, и шрифт, и раскладка должны быть в кодировке UTF-8 и поддерживать символы кириллицы. Так что начнём со шрифта, дабы избавиться от вида самой большой неопрятности кириллической консоли — квадратиков вместо русских букв.

Таких шрифтов у нас есть в каталоге /usr/share/kbd/consolefonts/, например, LatArCyrHeb, LatGrkCyr, LatKaCyrHeb и тому подобные. Однако вопрос кириллических шрифтов в консоли — не тот, где может быть два мнения, моё и неправильное, идо неправильное мнение тут просто не имеет права на существование. Поэтому — веселее, моряк, веселее, моряк, делай так:

~/ yay -S terminus-font

и вот так (в том самом /etc/vconsole.conf):

FONT=ter-u32b

Изменения вступают в силу сразу после сохранения — бывшие квадратики волшебным образом преобразуются в символы кириллицы:

Скриншот 3. Кириллица вместо квадратиков

Второй притоп: клавиатурный ввод

С клавиатурным вводом всё совсем просто: файлов раскладок, удовлетворяющих нашим потребностям, не так много:

~/ ls /usr/share/kbd/keymaps/i386/qwerty/ru*UTF-8*
/usr/share/kbd/keymaps/i386/qwerty/ruwin_alt_sh-UTF-8.map.gz
/usr/share/kbd/keymaps/i386/qwerty/ruwin_alt-UTF-8.map.gz
/usr/share/kbd/keymaps/i386/qwerty/ruwin_cplk-UTF-8.map.gz
/usr/share/kbd/keymaps/i386/qwerty/ruwin_ctrl-UTF-8.map.gz
/usr/share/kbd/keymaps/i386/qwerty/ruwin_ct_sh-UTF-8.map.gz

Они различаются только переключателем с латиницы на кириллицу (в консольных раскладках, в отличие от иксовых, он встроен в файл). Выбирается подходящий (например, Alt+Shift) и вписывается в поле KEYMAP.

В отличие от шрифтов, изменение консольной раскладки требует перезагруки системы (или её реинициализации иным образом). А файл /etc/vconsole.conf приобретает такой вид:

#KEYMAP=ru
KEYMAP=ruwin_alt_sh-UTF-8
FONT=ter-u32b
#FONT=latarcyrheb-sun32
#FONT=LatGrkCyr-12x22
#FONT=solar24x32

Закомментированные строки я сохранил в педагогических целях — это результаты моих экспериментов с более иными шрифтами.

Третий прихлоп: служба консольной мыши

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

~/ yay -S gpm

И, переключившись в консоль, получаем право root’а и активируем его:

~/ sudo -s
eos# systemctl start gpm.service

После этого на чёрном фоне чёрной-чёрной консоли появляется маленький светлый прямоугольник, реагирующий на движения мыши. Это и есть её курсор в консольном воплощении/ С его помощью можно, зажав левую кнопку мыши, выделять фрагменты экрана (но не текста! — текст, продолжающийся за пределы экрана, выделен не будет) для автоматического помещения в экранный буфер. И в дальнейшем его (то есть буфера) содержимое можно вставить в любое место текущей виртуальной консоли щелчком средней кнопки (каковой у нынешних грызунов обчно является колёсико). Или любой из остальных четырёх, активных в данное время.

Автор: alv

Про себя напишу потом

Добавить комментарий