רמי
SUBJECT: Fedora: Локализация шрифтов TTY (терминала) и переключения раскладок клавиатуры
AUTHOR: Rami Rosenfeld
DATE: 29/03/24; upd. 18/01/25
TIME: 03.00
LANG: ru, en
LICENSE: GNU FDL 1.3
TAGS: gnu, gnome, software, opensource, linux, system, man, manual, bash, systemd, systemctl, selinux, firewalld, dnf, rpm, console, terminal, locale, tty
Признаюсь: обленился настолько, что около десятка лет не заходил в "чистый" терминал, т.е. TTY. А когда недавно пришлось запустить его (не у себя, а на сторонней машине), понял что:
а) "Никогда(!) не используйте кириллицу и прочие национальные символы[1] в названиях файлов и каталогов!"
б) "Никогда не используйте иную локаль[2], кроме английской, установленной в ОС по умолчанию".
Примечания:
[1] а уж тем более не вставляйте пробелы, знаки препинания, в т.ч. даже дефисы, ибо дефис в сочетании с пробелом - это страшная вещь! - и прочие некошерные символы.
[2] Этот совет конечно же относится к текущему языку всей DE, а не к подключаемым раскладкам клавиатуры, проверке национальной орфографии и прочим прикладным вещам, например - к отображению времени/даты в привычном для вас формате.
Итак, десять лет назад (а может и больше), столкнувшись с подобной проблемой, я задействовал временное решение - пакет, разработанный давно почившим в бозе русскоязычным сообществом Fedor'ы. Но это был именно "костыль", и посему сейчас я решил изучить эту тему более предметно... Вообще, в сети имеются десятки руководств, разработанных для разных ОС (увы, зачастую некорректных и противоречащих друг другу); поэтому, наглядности ради, я постараюсь сформулировать задачу более предметно, разделив ее на три части:
а) установка Unicode-шрифта с поддержкой кириллицы для TTY;
б) принудительное указание необходимой локали (пусть это будет "ru");
в) активация переключения раскладок клавиатуры (с "us" на "ru" и обратно).
Примечание: Не запутайтесь! TTY - это "чистая" консоль: часть ядра GNU/Linux, а не прикладная программа - эмулятор с GUI, называемый "Terminal".
Среди консольных шрифтов по умолчанию в ОС имеются несколько кириллических (Unicode):
ls /lib/kbd/consolefonts/
UniCyr_8x14.psf.gz
UniCyr_8x16.psf.gz
UniCyr_8x8.psf.gz
UniCyrExt_8x16.psf.gz
Однако (и это видно даже из названий) размеры шрифтов крайне малы - с ними попросту неудобно работать. Поэтому рекомендую установить пакет terminus-fonts-console
dnf search terminus
terminus-fonts.noarch : Clean fixed width font terminus-fonts-console.noarch : Clean fixed width font (console version) terminus-fonts-grub2.noarch : Clean fixed width font (grub2 version)
dnf install terminus-fonts-console
После установки в каталоге /consolefonts появится много новых шрифтов с именами "ter-ХХХХХХ.psf.gz":
ls /lib/kbd/consolefonts/
ter-114v.psf.gz
ter-116b.psf.gz
ter-118n.psf.gz
(...)
ter-v28b.psf.gz
ter-v28n.psf.gz
ter-v32b.psf.gz
ter-v32n.psf.gz
Ориентироваться в них надо исходя из следующих пояснений:
ter-v* all mappings / code pages listed above and many others, about 110 language sets, 8 or 16 foreground colors depending on the kernel and console driver versions names weight ter-*n normal ter-*b bold ter-*v CRT VGA bold
ВАЖНО:
Опытным путем я выбрал для себя шрифт ter-v22n.
Это достигается правкой файла vconsole.conf. Откройте его для редактирования и добавьте сверху две новые строки:
nano /etc/vconsole.conf
KEYMAP="ru"
FONT="ter-v22n"
На всякий случай сохраните, но обязательно закомментируйте старое содержимое:
# KEYMAP="us" # FONT="eurlatgr"
Сохраните результаты правки и выйдите из редактора nano:
^O
^X
При внесенной строке KEYMAP="ru" раскладки будут переключаться традиционным сочетанием клавиш [CTRL][SHIFT].
Возможны также иные варианты, например с помощью клавиши [CapsLock] и т.п., но я их не проверял:
KEYMAP="ruwin_cplk_UTF-8"
После всех операций перезагрузите компьютер в режиме консоли. Вариант: перезагрузите и войдите в графическую оболочку, затем нажмите зарезервированное сочетание клавиш [CTRL][ALT][F3] (Fedora 39); в старой 32-разрядной Fedora 30 это будет [CTRL][ALT][F2], чтобы оказаться в консоли.
Введите свои обычные пользовательские логин и пароль.
Далее попробуйте просмотреть структуру каталогов и файлов, содержащих в своих названиях национальные символы с помощью команды "ls": все должно отображаться корректно. Прикладные программы, имеющие русификацию CLI (пример: меню в mc или nano) также должны смотреться нормально.
Примечание: Напоминаю, как вернуться обратно в графический режим: вначале выйдите из своего аккаунта, набрав команду "exit", затем нажмите [CTRL][ALT][F2] или [CTRL][ALT][F1] - это зависит от настроек Fedor'ы.
Войдите в консоль одним из двух вышеуказанных способов. Наберите и исполните от обычного пользователя:
unicode_start
setfont ter-v22n
Примечание: Используйте эти две команды, даже если вы предварительно отредактировали файл vconsole.conf, но почему-то не можете добиться приемлемого результата. Также, вполне естественно, что вы должны указывать имя уже установленного в ОС шрифта.
ОБЩЕЕ ПРИМЕЧАНИЕ:
Любопытное наблюдение! В свежей версии Fedor'ы (39) консоль охотно понимает и исполняет все алиасы, указанные в пользовательском .bashrc, а старая 32-разрядная версия (30) - нет.
Подробнее см.:
=> Загрузка Fedora Workstation (GNOME, MATE, LXDE, etc.) в консольном режиме
=> Localectl (Systemd): Переключение системной локали и языковых раскладок из консоли
man vconsole.conf
man setfont
man unicode_start
🄯 Rami Rosenfeld, 2024. GNU FDL 1.3.
text/gemini; lang=en
This content has been proxied by September (ba2dc).