~Rami ₪ MANUALS

רמי

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

Fedora: Локализация шрифтов TTY (терминала) и переключения раскладок клавиатуры

INTRO

Признаюсь: обленился настолько, что около десятка лет не заходил в "чистый" терминал, т.е. TTY. А когда недавно пришлось запустить его (не у себя, а на сторонней машине), понял что:

  1. проблема с отображением национальных шрифтов не исчезла за прошедшее десятилетие;

  1. старый и мудрый :) Рами Розенфельд абсолютно прав, когда категорически заявляет:

а) "Никогда(!) не используйте кириллицу и прочие национальные символы[1] в названиях файлов и каталогов!"

б) "Никогда не используйте иную локаль[2], кроме английской, установленной в ОС по умолчанию".

Примечания:

[1] а уж тем более не вставляйте пробелы, знаки препинания, в т.ч. даже дефисы, ибо дефис в сочетании с пробелом - это страшная вещь! - и прочие некошерные символы.

[2] Этот совет конечно же относится к текущему языку всей DE, а не к подключаемым раскладкам клавиатуры, проверке национальной орфографии и прочим прикладным вещам, например - к отображению времени/даты в привычном для вас формате.

Итак, десять лет назад (а может и больше), столкнувшись с подобной проблемой, я задействовал временное решение - пакет, разработанный давно почившим в бозе русскоязычным сообществом Fedor'ы. Но это был именно "костыль", и посему сейчас я решил изучить эту тему более предметно... Вообще, в сети имеются десятки руководств, разработанных для разных ОС (увы, зачастую некорректных и противоречащих друг другу); поэтому, наглядности ради, я постараюсь сформулировать задачу более предметно, разделив ее на три части:

а) установка Unicode-шрифта с поддержкой кириллицы для TTY;

б) принудительное указание необходимой локали (пусть это будет "ru");

в) активация переключения раскладок клавиатуры (с "us" на "ru" и обратно).

Примечание: Не запутайтесь! TTY - это "чистая" консоль: часть ядра GNU/Linux, а не прикладная программа - эмулятор с GUI, называемый "Terminal".

NOTE

Среди консольных шрифтов по умолчанию в ОС имеются несколько кириллических (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

ВАЖНО:

  1. Нас интересуют только шрифты ter-v*, содержащие все кодовые страницы. Все остальные - это национальные шрифты с кодировками типа CP-1251 и т.п.;

  1. среди вышеуказанных выбирайте шрифты с приемлемым для вас размером (см. цифру в имени файла) и "n" (normal; "обычное начертание") - ter-*n.

Опытным путем я выбрал для себя шрифт 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

=> ₪ Back to home ₪

🄯 Rami Rosenfeld, 2024. GNU FDL 1.3.

Proxy Information
Original URL
gemini://tilde.team/~rami/redhat_terminal_localization.gmi
Status Code
Success (20)
Meta
text/gemini; lang=en
Capsule Response Time
435.830178 milliseconds
Gemini-to-HTML Time
1.514433 milliseconds

This content has been proxied by September (ba2dc).