רמי
SUBJECT: Localectl (Systemd): Переключение системной локали и языковых раскладок из консоли
AUTHOR: Rami Rosenfeld
DATE: 18/01/25
TIME: 03.00
LANG: ru, en
LICENSE: GNU FDL 1.3
TAGS: gnu, gnome, software, opensource, linux, system, man, manual, bash, privacy, security, rhel, centos, mate, xfce, lxde, spin, de, localectl, systemd
Постоянно забываю эти команды, поэтому пришлось внести их в общий список руководств. А почему забываю? Да все очень просто: я никогда ими не пользуюсь! Редчайшие исключения составляют случаи, когда я настраиваю машины друзьям или коллегам и устанавливаю национальную локаль по их просьбам... Но повторюсь еще и еще раз: никогда не используйте иную локаль, кроме английской en_US, установленной в ОС по умолчанию. Этот совет конечно же относится к текущему языку всей DE, а не к подключаемым раскладкам клавиатуры, проверке национальной орфографии и прочим прикладным вещам, например - к отображению времени/даты в привычном для вас формате.
За текущую локаль ОС отвечает файл locale.conf
cat /etc/locale.conf
Его содержимое по умолчанию:
LANG="en_US.UTF-8"
Примечание: Опции, дополнительно конфигурируемые посредством /etc/locale.conf
LANG Provides a default value for the system locale. LC_COLLATE Changes the behavior of functions which compare strings in the local alphabet. LC_CTYPE Changes the behavior of the character handling and classification functions and the multibyte character functions. LC_NUMERIC Describes the way numbers are usually printed, with details such as decimal point versus decimal comma. LC_TIME Changes the display of the current time, 24-hour versus 12-hour clock. LC_MESSAGES Determines the locale used for diagnostic messages written to the standard error output.
Общий список (вывод сокращен):
localectl list-locales
(...)
en_US.UTF-8
en_ZA.UTF-8
en_ZM.UTF-8
en_ZW.UTF-8
(...)
Или (с поиском конкретного языка):
localectl list-locales | grep ru_
ru_RU.UTF-8
ru_UA.UTF-8
Выполните:
localectl set-locale LANG=ru_RU.UTF-8
Проверка текущих раскладок:
localectl status
System Locale: LANG=en_US.utf8
VC Keymap: us
X11 Layout: us
Примечание:
VC - виртуальная консоль (Virtual Console)
X11 - графическая оболочка
Общий список клавиатурных раскладок:
localectl list-keymaps
Или (с поиском конкретного языка):
localectl list-keymaps | grep ru
(...)
ru
ru_win
ruwin_alt-CP1251
ruwin_alt-KOI8-R
ruwin_alt-UTF-8
ruwin_alt_sh-UTF-8
ruwin_cplk-CP1251
ruwin_cplk-KOI8-R
ruwin_cplk-UTF-8
ruwin_ct_sh-CP1251
ruwin_ct_sh-KOI8-R
ruwin_ct_sh-UTF-8
ruwin_ctrl-CP1251
ruwin_ctrl-KOI8-R
ruwin_ctrl-UTF-8
(...)
Смена раскладки:
localectl set-keymap ru
ВАЖНО! Эта команда сработает сразу для двух параметров: VC и X11. Для раздельного изменения используйте:
localectl --no-convert set-x11-keymap MAP
В конечном итоге, при "ru"-локализации вывод статуса localectl должен быть следующим:
localectl status
System Locale: LANG=ru_RU.UTF-8
VC Keymap: ru
X11 Layout: us,ru,il
X11 Variant: ,,
X11 Options: grp:menu_toggle
Примечания к примеру:
ВАЖНО! Не запутайтесь в локалях и раскладках клавиатуры! Наилучшее решение - определять и выставлять их сразу же - при инсталляции ОС (попутно добавляя языки клавиатуры и меняя способы ее переключения) - это доступно в настройках стандартного инсталлятора Anaconda.
Примечание: Замечу также, что употребление/упоминание "X11" в выводе текущей информации вообще крайне условно, так как начиная с Fedor'ы 41 (если вы осуществляли свежую инсталляцию "с нуля") в системе ВООБЩЕ ОТСУТСТВУЕТ X11.
Дополнительно см.: man localectl, loadkeys
=> Fedora: Локализация шрифтов TTY (терминала) и переключения раскладок клавиатуры
=> System Locale and Keyboard Configuration
🄯 Rami Rosenfeld, 2025. GNU FDL 1.3.
text/gemini; lang=en
This content has been proxied by September (ba2dc).