Localization (Русский)/Russian (Русский)
Эта статья рассказывает о настройке отображения и ввода русского языка в Arch Linux.
Contents
Настройка локали
Раскомментируйте следующую строку в файле /etc/locale.gen
:
ru_RU.UTF-8 UTF-8
Создайте выбранную локаль данной командой:
/usr/sbin/locale-gen
Проверьте, что все заявленные локали были созданы:
locale -a
Настройка консоли
Несколько слов о работе консоли.
Любой вывод программы перенаправляется консольному драйверу в ядре. Ядро работает только в кодировке Unicode. Если программа не использует UTF-8 для вывода текста, необходима таблица ACM (Application Character Map), которая будет выполнять соответствующее преобразование из 8-битной кодировки в Unicode. Эту таблицу можно найти в директории /usr/share/kbd/consoletrans
, если используется пакет kbd (в Arch установлен по умолчанию).
Далее ядро должно отобразить символ на экране. Таблица соответствия знаков шрифта кодам Unicode называется SFM (Screen Font Map). Она либо находится внутри шрифта (в большинстве случаев), либо подгружается дополнительно (из /usr/share/kbd/unimaps
). Сами шрифты располагаются в /usr/share/kbd/consolefonts
.
Кроме этого, также необходима клавиатурная раскладка — таблица по переводу скан-кодов клавиатуры в нужный код символа (соответственно, может быть либо старая 8-битная, либо новая Unicode).
Таким образом, настройка консоли разбивается на следующие пункты (рассмотрен вариант с UTF):
- Поиск клавиатурной раскладки, поддерживающей Unicode и необходимые способы переключения языков, а также указание её как
KEYMAP="..."
в файле/etc/vconsole.conf
. - Установка шрифта, имеющего встроенную таблицу SFM и необходимое начертание:
FONT="..."
в файле/etc/vconsole.conf
. - Проверка, что необходимость в ACM пропадает (
CONSOLEMAP=""
остаётся пустым) в файле/etc/vconsole.conf
.
Вся остальная работа по настройке kbd (например, использование утилит loadkeys
и setfont
) уже сделана людьми, написавшими стартовые файлы системы.
Пакет kbd поддерживает русские раскладки в UTF-8. Дополнительные раскладки клавиатуры можно получить, установив пакет kbd-ru-keymapsAUR.
Установите пакет terminus-font для получения шрифта Terminus.
Отредактируйте файл /etc/vconsole.conf
:
LOCALE="ru_RU.UTF-8" KEYMAP="ru" # Или ru-mab для раскладки с переключением по Ctrl+Shift или ruwin_alt_sh-UTF-8 для переключение по Alt+Shift FONT="ter-v16n" # Можно поэкспериментировать с другими шрифтами ter-v* из /usr/share/kbd/consolefonts CONSOLEMAP=""
Если возникают проблемы со шрифтом ter-v16n, воспользуйтесь конфигурацией файла /etc/vconsole.conf
, приведённой ниже:
LOCALE=ru_RU.UTF-8 KEYMAP=ru FONT=ter-u16b CONSOLEMAP= TIMEZONE=Europe/Moscow HARDWARECLOCK=UTC USECOLOR=yes
Обратите внимание, что поиск шрифта происходит в /usr/share/kbd/consolefonts
.
Можно обойтись без Terminus, установив:
CONSOLEFONT="cyr-sun16"
Можно обойтись без установки пакета kbd-ru-keymapsAUR, вариант с переключением по Ctrl+Shift
:
LOCALE="ru_RU.UTF-8" HARDWARECLOCK="UTC" TIMEZONE="Europe/Moscow" KEYMAP="ru" FONT="cyr-sun16" CONSOLEMAP="" USECOLOR="yes"
Также в некоторых случаях, для корректного отображения шрифтов в консоли, потребуется добавить хуки и пересоздать образ ядра. Для этого список хуков в файле /etc/mkinitcpio.conf
необходимо привести примерно к следующему виду:
HOOKS="base consolefont keymap udev <ваши хуки>"
то есть вставить два дополнительных хука consolefont и keymap.
После чего пересоздать образ ядра:
# mkinitcpio -p linux
и перезагрузить систему.
Настройка X.org
Установите пакеты ttf-dejavu и ttf-liberation для получения шрифтов DejaVu и Liberation соответственно.
Настройки клавиатуры
Клавиатура настраивается при помощи systemd, а точнее, localectl. При настройке Xorg утилита считывает и изменяет файл 00-keyboard.conf
:
$ cat /etc/X11/xorg.conf.d/00-keyboard.conf # Read and parsed by systemd-localed. It's probably wise not to edit this file # manually too freely. Section "InputClass" Identifier "system-keyboard" MatchIsKeyboard "on" Option "XkbLayout" "us,ru" Option "XkbModel" "pc105" Option "XkbVariant" "os_winkeys" Option "XKbOptions" "grp:menu_toggle,grp_led:scroll,ctrl:swapcaps,compose:ralt" EndSection
Это значит, что localectl
нужен root, а Xorg придется перезапускать.
Посмотреть возможные значения:
$ localectl list-x11-keymap-models $ localectl list-x11-keymap-layouts $ localectl list-x11-keymap-variants ru $ localectl list-x11-keymap-options
Переключение раскладок средствами X.org
См. статью Конфигурация клавиатуры в Xorg.
Compose-последовательности
См. раздел Конфигурация клавиатуры в Xorg#Настройка клавиши Compose.
Настройка русских man-страниц
Установите пакет man-pages-ruAUR с русскими страницами.
man
показывает страницы ориентируясь на локаль. Для принудительного показа русских страниц используйте следующую команду:
$ man -L ru <manpage>
Русификация LibreOffice
Поддержка языков в LibreOffice реализуется отдельными пакетами.
См. список пакетов:
$ pacman -Ss libreoffice | grep \\-ru extra/libreoffice-fresh-ru 5.3.0-1 extra/libreoffice-still-ru 5.2.5-1
После чего установите LibreOffice необходимой версии с русской локализацией.
Перекодировка тегов MP3
Установите пакет python-mutagen и выполните следующую команду в каталоге с коллекцией MP3-файлов:
find -iname '*.mp3' -print0 | xargs -0 mid3iconv -eCP1251 --remove-v1
Команда перекодирует старые теги из кодировки CP1251 в UTF8, запишет тег версии id3v2.4 и удалит теги первой версии.