CENTOS/RHEL:: Полная настройка Xorg: Alt+Shift, раскладки и LED-индикация

Кратко: ниже — полная, профессионально оформленная инструкция по настройке раскладок и переключения Alt+Shift в Xorg на CentOS/RHEL и совместимых системах, с разбором всех методов, приоритетов, отладки, автоматизации и нюансов окружений рабочего стола. Материал структурирован по методам, снабжен перекрестными ссылками (§) и глоссарием терминов для быстрой навигации и точной практической настройки.

Полная настройка Xorg: Alt+Shift, раскладки и LED-индикация

См. быстрый старт в §2, системный метод через localectl в §3, классическую конфигурацию Xorg в §4, сессионный метод setxkbmap в §5, а также справочник XKB-опций (grp:* и grp_led:*) в §9.


Оглавление
  1. Полная настройка Xorg: Alt+Shift, раскладки и LED-индикация

1. Введение и основы

1.1. Что настраивается

Настраивается подсистема XKB: модель клавиатуры, раскладки, варианты и XKB-опции, включая переключение групп по Alt+Shift и индикацию активной группы светодиодами клавиатуры (§9) (см. термины «XKB», «Группа раскладки» в §14).

1.2. Где хранятся настройки

Настройки задаются: системно через инструмент управления локалью/клавиатурой (§3), напрямую в Xorg-конфигурации (§4), либо на уровне текущей X-сессии (§5). Окружения рабочего стола и фреймворки ввода могут переопределять XKB (§6).

1.3. Приоритеты и конфликтующие источники

Приоритет определяется тем, кто последний применил настройки в текущем сеансе: GUI-апплеты и IBus/Fcitx способны перекрыть системные файлы Xorg (§6). Для предсказуемости важно отключить дублирующие механизмы переключения или согласовать их.

1.4. Нотация и формат значений

  • XkbModel: например, pc105 (ISO), pc104 (ANSI).
  • XkbLayout: список через запятую, напр. us,ru.
  • XkbVariant: список вариантов для каждой раскладки; пустой элемент для значения по умолчанию сохраняя запятую, напр. ,winkeys.
  • XkbOptions: список опций, напр. grp:alt_shift_toggle,grp_led:scroll (§9).

2. Быстрый старт (готовые рецепты)

2.1. Alt+Shift и LED Scroll Lock: системно (localectl)

Применение параметров на уровне всей системы с генерацией корректного Xorg-конфига:

textsudo localectl --no-convert set-x11-keymap us,ru pc105 ,winkeys grp:alt_shift_toggle,grp_led:scroll

После выхода/входа в сессию Xorg или перезапуска X настроек достаточно; см. детали и откат в §3.2-§3.4.

2.2. Alt+Shift и LED Scroll Lock: через Xorg (xorg.conf.d)

Создание явного конфига Xorg:

text# /etc/X11/xorg.conf.d/00-keyboard.confSection "InputClass" Identifier "system-keyboard" MatchIsKeyboard "on" Option "XkbModel" "pc105" Option "XkbLayout" "us,ru" Option "XkbVariant" ",winkeys" Option "XkbOptions" "grp:alt_shift_toggle,grp_led:scroll"EndSection

Применение после перезапуска X-сервера/сеанса; см. §4.1-§4.5.

2.3. Alt+Shift и LED Scroll Lock: только на текущую сессию (setxkbmap)

Быстрое применение без перезагрузки:

textsetxkbmap -model pc105 -layout us,ru -variant ,winkeys -option "" -option grp:alt_shift_toggle,grp_led:scroll

Сброс прежних опций обеспечивается первым «-option «»»; детали в §5.2-§5.3.


3. Метод 1. Настройка через localectl (system-wide)

Содержание раздела:

  • 3.1. Когда применять и плюсы/минусы
  • 3.2. Команды и синтаксис
  • 3.3. Создаваемые файлы и их роль
  • 3.4. Проверка результата и откат
  • 3.5. Особенности CentOS/RHEL разных версий

3.1. Когда применять и плюсы/минусы

Рекомендуется как дефолтный системный способ: минимизирует ручные ошибки, поддерживает единый источник правды и корректно формирует /etc/X11/xorg.conf.d/00-keyboard.conf (§4.1). Минусы: настройки GUI/IBus могут поверх изменять поведение (§6).

3.2. Команды и синтаксис

Базовый шаблон:

textlocalectl [--no-convert] set-x11-keymap <layouts> [model] [variant] [options]
  • Пропуски заполняются пустой строкой «», чтобы указать последующие поля (например, ,winkeys).
  • —no-convert предотвращает попытку преобразовывать X-комбинации в консольный keymap (§7).

Пример Alt+Shift и LED Scroll Lock: см. §2.1.

3.3. Создаваемые файлы и их роль

  • /etc/X11/xorg.conf.d/00-keyboard.conf — целевой файл для Xorg; правки вручную нежелательны, иначе при следующем запуске команд конфигурации они будут перезаписаны (§4.1).
  • /etc/vconsole.conf — консольные параметры (Xorg их не читает напрямую; для GUI важен 00-keyboard.conf) (§7.2).

3.4. Проверка результата и откат

  • Просмотр: setxkbmap -print -verbose 10 (§8.1).
  • Откат: повторный вызов localectl с новыми параметрами или удаление 00-keyboard.conf и перезапуск X (см. §4.4).

3.5. Особенности CentOS/RHEL разных версий

На более старых системах (например, CentOS 7) Xorg используется по умолчанию; на новых (RHEL 8/9) окружение GNOME может запускаться на Wayland — XKB в X-смысле тогда не влияет на чистые Wayland-приложения; см. рекомендации в §6.3.


4. Метод 2. Чистый Xorg: /etc/X11/xorg.conf.d

Содержание раздела:

  • 4.1. Современный стиль: Section «InputClass»
  • 4.2. Классический стиль: Section «InputDevice» (устаревающий)
  • 4.3. Структура и валидность значений
  • 4.4. Перезапуск X-сервера и порядок чтения конфигов
  • 4.5. Лучшие практики и диагностика

4.1. Современный стиль: Section «InputClass»

Рекомендуемый формат под драйверы evdev/libinput:

textSection "InputClass" Identifier "system-keyboard" MatchIsKeyboard "on" Option "XkbModel" "pc105" Option "XkbLayout" "us,ru" Option "XkbVariant" ",winkeys" Option "XkbOptions" "grp:alt_shift_toggle,grp_led:scroll"EndSection

Файл: /etc/X11/xorg.conf.d/00-keyboard.conf; виден всему Xorg и всем пользователям.

4.2. Классический стиль: Section «InputDevice» (устаревающий)

Применим в монолитном /etc/X11/xorg.conf (не рекомендуется к новым внедрениям):

textSection "InputDevice" Identifier "Keyboard0" Driver "kbd" Option "XkbModel" "pc105" Option "XkbLayout" "us,ru" Option "XkbVariant" ",winkeys" Option "XkbOptions" "grp:alt_shift_toggle,grp_led:scroll"EndSection

При наличии — поддерживается, но сложнее для сопровождения; предпочтителен §4.1.

4.3. Структура и валидность значений

  • Число вариантов XkbVariant должно соответствовать числу раскладок XkbLayout; для дефолта используется пустой элемент (например, ,winkeys).
  • Модель pc104/pc105 — безопасная база; для ноутбуков модель иногда влияет на специальные клавиши.

4.4. Перезапуск X-сервера и порядок чтения конфигов

Xorg перечитывает конфиги при старте; для применения изменений необходим выход/вход в X-сессию или перезапуск дисплей-менеджера. Имейте в виду порядок обработки файлов в xorg.conf.d по лексикографическому имени.

4.5. Лучшие практики и диагностика

  • Один «опорный» файл 00-keyboard.conf на систему.
  • Исключить дубли в других 0x-keyboard.conf и в DE/IBus (§6).
  • Проверять фактическое состояние через §8.1.

5. Метод 3. Сессионный setxkbmap

Содержание раздела:

  • 5.1. Когда уместно и область действия
  • 5.2. Полезные команды и шаблоны
  • 5.3. Сброс опций и idempotency
  • 5.4. Автозапуск в xinitrc/xprofile/WM

5.1. Когда уместно и область действия

Идеален для временных изменений, профилирования настроек и теста без прав root. Действует до завершения текущей X-сессии.

5.2. Полезные команды и шаблоны

  • Базовая установка: textsetxkbmap -layout us,ru -option grp:alt_shift_toggle
  • Полный контроль с моделями/вариантами: textsetxkbmap -model pc105 -layout us,ru -variant ,winkeys -option grp:alt_shift_toggle,grp_led:scroll

5.3. Сброс опций и idempotency

По умолчанию setxkbmap добавляет опции к существующим; для чистой переустановки сначала сбросить:

textsetxkbmap -option ""setxkbmap -model pc105 -layout us,ru -variant ,winkeys -option grp:alt_shift_toggle,grp_led:scroll

5.4. Автозапуск в xinitrc/xprofile/WM

Для постоянства на уровне пользователя добавить команду в ~/.xinitrc, ~/.xprofile или автозапуск оконного менеджера/DE, учитывая §6, чтобы избежать конфликтов.


6. Окружения рабочего стола и ввода (GNOME, Plasma, IBus/Fcitx)

Содержание раздела:

  • 6.1. Где включается и как переопределяет XKB
  • 6.2. Рекомендации по совмещению с §3-§5
  • 6.3. Wayland vs Xorg: что важно знать

6.1. Где включается и как переопределяет XKB

GNOME, KDE Plasma и сторонние фреймворки ввода (IBus/Fcitx) умеют управлять раскладками и переключением сами, перезаписывая XKB на уровне сессии. Именно поэтому настройки §3-§5 могут «не работать» видимо, хотя системные файлы корректны.

6.2. Рекомендации по совмещению

  • Определиться с единым источником: либо GUI-инструменты, либо XKB (§3/§4/§5).
  • В IBus включать режим «Использовать системную раскладку» или вручную указать раскладки в самом IBus.
  • В DE отключить альтернативные переключатели, если используется XKB (§9).

6.3. Wayland vs Xorg

Под Wayland конфигурация раскладок управляется композитором/DE; Xorg-конфиги (§4) не влияют на нативные Wayland-клиенты. На системах RHEL 8+/GNOME по умолчанию может быть Wayland; для предсказуемости использовать настройки DE или запускать Xorg-сессию.


7. Консоль (не Xorg): vconsole, loadkeys

Содержание раздела:

  • 7.1. Ограничения и границы применения
  • 7.2. /etc/vconsole.conf и постоянство
  • 7.3. Быстрое переключение с loadkeys

7.1. Ограничения

Консольный keymap не влияет на Xorg/Wayland GUI. Это отдельный контур настройки.

7.2. /etc/vconsole.conf

Параметры XKBLAYOUT/XKBMODEL/XKBVARIANT/XKBOPTIONS могут быть записаны инструментами конфигурации, но Xorg ими не пользуется напрямую; для GUI обязателен 00-keyboard.conf (§3.3).

7.3. Быстрое переключение

В консоли используется loadkeys и готовые keymap-файлы. Для унификации поведения во всех средах предпочтительнее единая XKB-стратегия в GUI (§3-§6).


8. Отладка и верификация

Содержание раздела:

  • 8.1. Просмотр активной конфигурации XKB
  • 8.2. Проверка файлов и корректности вариантов
  • 8.3. Типовые ошибки и их устранение

8.1. Просмотр активной конфигурации XKB

textsetxkbmap -print -verbose 10

Команда показывает фактически примененные компоненты (model/layout/variant/options).

8.2. Проверка файлов и корректности вариантов

  • Убедиться, что число вариантов соответствует числу раскладок (§4.3).
  • Проверить отсутствие дублирующих конфигов, переопределений DE/IBus (§6.1).
  • Проверить порядок чтения файлов в xorg.conf.d (§4.4).

8.3. Типовые ошибки

  • Отсутствие пустого варианта «,» для первой раскладки.
  • Одновременное управление раскладками XKB и DE/IBus.
  • Устаревший драйвер «kbd» в §4.2 при современных сборках — лучше §4.1.

9. Справочник XKB-опций: переключение и LED

Содержание раздела:

  • 9.1. Переключение групп (grp:*)
  • 9.2. Индикация групп LED (grp_led:*)
  • 9.3. Замечания по совместимости

9.1. Переключение групп (grp:*)

  • grp:toggle — правый Alt (переключение)
  • grp:shifts_toggle — обе Shift вместе
  • grp:ctrl_shift_toggle — Ctrl+Shift
  • grp:alt_shift_toggle — Alt+Shift
  • grp:ctrl_alt_toggle — Ctrl+Alt
  • grp:caps_toggle — Caps Lock
  • grp:lwin_toggle — левая Win
  • grp:rwin_toggle — правая Win
  • grp:menu_toggle — клавиша Menu
  • grp:lctrl_toggle — левый Ctrl
  • grp:rctrl_toggle — правый Ctrl
  • grp:switch — правый Alt, только пока зажат
  • grp:lwin_switch — левая Win, только пока зажата
  • grp:rwin_switch — правая Win, только пока зажата
  • grp:win_switch — любая Win, только пока зажата

9.2. Индикация групп LED (grp_led:*)

  • grp_led — использовать индикаторы клавиатуры для отображения группы
  • grp_led:num — Num Lock как индикатор группы
  • grp_led:caps — Caps Lock как индикатор группы
  • grp_led:scroll — Scroll Lock как индикатор группы

9.3. Замечания по совместимости

Поведение LED зависит от прошивки клавиатуры и драйвера; не все устройства аппаратно отображают альтернативные состояния предсказуемо. При проблемах тестировать альтернативные индикаторы (num/caps/scroll).


10. Примеры жизненных конфигураций

10.1. US+RU, Alt+Shift, ScrollLock LED

  • Xorg (рекомендуемый современный): см. §2.2.
  • localectl (system-wide): см. §2.1.
  • setxkbmap (сессия): см. §2.3.

10.2. US+RU, Ctrl+Shift, CapsLock LED

  • XKB options: grp:ctrl_shift_toggle,grp_led:caps.
  • Подстановка в шаблоны §2.1-§2.3.

10.3. Три раскладки, разные варианты и win_switch

  • Пример: us,ru,us с вариантами ,winkeys,dvorak и временным переключателем по любой Win: textsetxkbmap -model pc105 -layout us,ru,us -variant ,winkeys,dvorak \ -option "" -option grp:win_switch

11. FAQ и типовые ситуации

11.1. Не работает Alt+Shift

  • Проверить, что DE/IBus не переопределяет XKB (§6.1).
  • Убедиться в валидности XkbOptions и отсутствии конфиг-дублей (§4.5, §8.2).
  • Переприменить через setxkbmap для диагностики (§5.2).

11.2. LED не меняется

  • Заменить grp_led:scroll на grp_led:num или grp_led:caps (§9.2).
  • Проверить, что клавиатура аппаратно отражает смену LED.
  • Исключить параллельное управление LED со стороны DE.

11.3. GNOME/IBus «перетирает» XKB

  • Включить «использовать системную раскладку» или настроить раскладки в самом IBus (§6.2).
  • Либо отключить GUI-переключатели и оставить XKB единственным источником.

11.4. Разные ноутбуки и модели клавиатур

  • Начать с pc105 и при необходимости подобрать модель под дополнительные клавиши (§4.3).
  • Проверять фактическое состояние через §8.1.

12. Автоматизация и управление конфигурацией

12.1. Скрипты и Ansible

  • Идемпотентность: при использовании setxkbmap сначала сбрасывать опции («-option «»»), затем задавать нужные (§5.3).
  • Для system-wide применять localectl с фиксированными параметрами (§3.2) в тасках конфигурации.

12.2. Политики в многопользовательских системах

  • Централизовать Xorg-конфиг в /etc/X11/xorg.conf.d (§4.1).
  • В профилях пользователей отключить альтернативные DE-переключатели, чтобы избежать дрейфа настроек (§6.2).

13. Приложения и справочники

13.1. Структура путей и файлов XKB

  • /etc/X11/xorg.conf.d/00-keyboard.conf — системный Xorg-конфиг ввода (§3-§4).
  • /etc/X11/xorg.conf — монолитный конфиг (устаревающий стиль) (§4.2).
  • /usr/share/X11/xkb/rules/base.lst или xorg.lst — список моделей/раскладок/вариантов/опций XKB (в разных дистрибутивах имя может отличаться).
  • /etc/vconsole.conf — консольная раскладка (§7.2).

13.2. Быстрая памятка по командам

  • Просмотр активной конфигурации: textsetxkbmap -print -verbose 10
  • Установка системно: textsudo localectl --no-convert set-x11-keymap us,ru pc105 ,winkeys grp:alt_shift_toggle,grp_led:scroll
  • Установка на сессию и сброс: textsetxkbmap -option "" setxkbmap -model pc105 -layout us,ru -variant ,winkeys -option grp:alt_shift_toggle,grp_led:scroll

13.3. Чек-лист внедрения

  • Определить метод (system-wide §3, Xorg §4, session §5) и отключить конкурирующие механизмы (§6).
  • Применить настройки и перезапустить X-сеанс при необходимости (§4.4).
  • Провести верификацию и фиксацию в CM-системе (§8, §12.1).

14. Глоссарий терминов

  • XKB (X Keyboard Extension) — расширение X-сервера для абстракции раскладок, вариантов и опций клавиатуры; основа всех методов в статье (§1.1, §3-§5).
  • Группа раскладки — активная раскладка из списка XkbLayout (например, us или ru); переключение между группами настраивается через grp:* (§1.1, §9.1).
  • XkbModel — модель клавиатуры, влияющая на набор доступных скан-кодов/клавиш; базовые безопасные — pc104/pc105 (§1.4, §4.3).
  • XkbLayout — список раскладок (ccTLD/код), например us,ru; порядок определяет цикл переключения (§1.4, §4.3).
  • XkbVariant — вариант каждой раскладки, выровненный по позициям; пустая строка означает вариант по умолчанию (§1.4, §4.3).
  • XkbOptions — список опций, управляющих переключением/LED/compose и пр.; примеры grp:* и grp_led:* (§1.4, §9).
  • localectl — системная утилита управления раскладками для Xorg и консоли, формирует 00-keyboard.conf (§3).
  • setxkbmap — утилита для установки XKB в рамках текущей X-сессии; не требует root (§5).
  • xorg.conf.d — каталог фрагментов конфигурации Xorg, применяемых при старте X-сервера (§4).
  • IBus/Fcitx — фреймворки ввода, которые могут переопределять XKB на уровне сессии; важны при GNOME/Plasma (§6).
  • Wayland — протокол отрисовки, где раскладки чаще управляются композитором/DE; Xorg-конфиги не влияют непосредственно (§6.3).
  • LED-индикация группы — отображение активной раскладки аппаратным индикатором (Num/Caps/Scroll) через grp_led:* (§9.2).

Примечание: при необходимости будут добавлены внешние источники и ссылки, однако в текущей редакции статья составлена как практическая инструкция с самодостаточными пояснениями и перекрестными ссылками на разделы и термины.

  1. https://wiki.archlinux.org/title/Xorg/Keyboard_configuration
  2. https://forums.freebsd.org/threads/permanent-xorg-keyboard-layout-xkb-configuration.93093/
  3. https://linuxconfig.org/how-to-change-system-keyboard-keymap-layout-on-centos-7-linux
  4. https://www.baeldung.com/linux/console-change-keyboard-layout
  5. https://www.reddit.com/r/Gentoo/comments/kvkf9o/how_to_change_the_xorg_keyboard_layout/
  6. https://wiki.archlinux.org/title/Xorg_(%D0%A0%D1%83%D1%81%D1%81%D0%BA%D0%B8%D0%B9)/Keyboard_configuration_(%D0%A0%D1%83%D1%81%D1%81%D0%BA%D0%B8%D0%B9)

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

Разработка и продвижение сайтов webseed.ru
Прокрутить вверх