НейроАгент

Как настроить левый и правый Shift в KDE 6

Полное руководство по настройке различия левых и правых клавиш Shift и Ctrl в KDE 6 для переключения языков ввода.

Вопрос

Как настроить различение левых и правых клавиш Shift и Ctrl в KDE 6?

Я хочу настроить переключение языка ввода в KDE с использованием разных клавиш: английский язык - левой клавишей, русский язык - правой клавишей.

Однако KDE 6 не различает нажатия левых и правых служебных клавиш. При попытке настроить сочетания клавиш через раздел “Клавиатура” в стандартных “Параметрах системы” я вижу только Control и Shift - без различия между левыми и правыми клавишами. Эта проблема наблюдается как в X11 (openSUSE Tumbleweed), так и в Wayland (Fedora KDE Plasma Desktop - версии 42 и beta 43).

Утилита xev корректно идентифицирует левые и правые клавиши, поэтому проблема не в оборудовании.

Возможно ли настроить именно KDE (не предлагать GNOME и другие окружения) с Wayland (предпочтительно) или X11/Xorg на различение левых и правых служебных клавиш? Если такая возможность существует, то как именно это реализовать?

НейроАгент

В KDE 6 настроить различение левых и правых клавиш Shift и Ctrl возможно несколькими способами. Основные решения включают использование утилиты xremap, настройку XKB-карт и использование расширенных параметров KDE.


Contents


Основные решения для различения клавиш

Для различения левых и правых клавиш Shift и Ctrl в KDE 6 доступно несколько подходов:

  1. xremap - современная утилита для переназначения клавиш, работающая как с Wayland, так и с X11
  2. XKB-карты - настройка системных карт клавиатуры через KDE
  3. Расширенные параметры системы - встроенные возможности KDE для расширенной конфигурации клавиатуры

Каждый метод имеет свои преимущества и ограничения, и выбор зависит от ваших конкретных потребностей и технических навыков.


Настройка с помощью xremap

xremap - это мощная утилита, написанная на Rust, которая позволяет переназначать клавиши и сочетания клавиш в Linux, включая различение левых и правых модификаторов.

Установка xremap

bash
# Для Fedora/RHEL/CentOS
sudo dnf install xremap

# Для openSUSE
sudo zypper install xremap

# Или через GitHub для последней версии
curl -sSf https://git.io/Jqih7 | sh

Базовая конфигураура для переключения языков

Создайте конфигурационный файл ~/.config/xremap/config.yml:

yaml
modmap:
  - remap:
      Shift_L:
        to: Shift_L
      Shift_R:
        to: Shift_R
      Ctrl_L:
        to: Ctrl_L
      Ctrl_R:
        to: Ctrl_R

keymap:
  # Переключение на английский при нажатии левого Shift
  - Shift_L:
      release:
        setxkbmap us
  
  # Переключение на русский при нажатии правого Shift
  - Shift_R:
      release:
        setxkbmap ru

  # Пример переназначения левого Ctrl в Hyper-ключ
  - Ctrl_L+Shift_L:
    - to: Hyper_L

Запуск xremap

Добавьте xremap в автозагрузку KDE:

  1. Откройте “Параметры системы” → “Автозагрузка приложений”
  2. Нажмите “Добавить программу”
  3. Укажите путь к xremap и путь к конфигурационному файлу

Преимущество xremap в том, что он работает на уровне Wayland и может обрабатывать нажатия клавиш до того, как они достигнут приложений, обеспечивая системное переназначение.


Настройка XKB-карт в KDE

Метод 1: Создание пользовательской XKB-раскладки

  1. Откройте “Параметры системы” → “Устройства ввода” → “Клавиатура”
  2. Перейдите в раздел “Раскладки” → “Параметры раскладок”
  3. Создайте новую раскладку на основе существующей

Для различения левых и правых клавиш можно создать пользовательский файл XKB:

bash
# Создайте директорию для пользовательских символов
mkdir -p ~/.xkb/symbols

# Создайте файл с символами
cat > ~/.xkb/symbols/custom << 'EOF'
partial modifier_keys
xkb_symbols "custom_shift" {
    // Левый Shift для английского
    key <LSGT> {
        type="ONE_LEVEL",
        symbols[Group1]= [ Shift_L ]
    };
    
    // Правый Shift для русского
    key <RALT> {
        type="ONE_LEVEL", 
        symbols[Group1]= [ Shift_R ]
    };
};
EOF

Метод 2: Изменение системных XKB-правил

  1. Создайте файл с правилами:
bash
sudo mkdir -p /usr/share/X11/xkb/rules
sudo nano /usr/share/X11/xkb/rules/custom
  1. Добавьте свои правила в файл.

  2. Используйте новую раскладку в KDE:

    • “Параметры системы” → “Устройства ввода” → “Клавиатура” → “Добавить раскладку”
    • Выберите вашу пользовательскую раскладку

Этот метод требует системных прав и может быть сложнее в настройке, но обеспечивает глубокую интеграцию с системой XKB.


Расширенные параметры системы KDE

KDE предоставляет расширенные параметры для настройки клавиатуры:

  1. Откройте “Параметры системы” → “Устройства ввода” → “Клавиатура”
  2. Перейдите в раздел “Дополнительно”
  3. Настройте параметры:
    • “Клавиша выбора 3-го уровня”
    • “Поведение клавиши Shift”
    • “Дополнительные параметры клавиатуры”

Для различения левых и правых клавиш можно использовать:

  • Клавиша выбора 3-го уровня: назначьте Caps Lock или другую клавишу для доступа к дополнительным символам
  • Составные клавиши: настройте комбинации с Ctrl, Alt и Shift

Важно: В KDE Plasma 6 стандартные настройки могут не показывать различие между левыми и правыми клавишами, но расширенные параметры предлагают больше возможностей.


Особенности KDE Plasma 6.1

В KDE Plasma 6.1 были исправлены некоторые проблемы с переключением раскладок:

  • Ctrl+Shift теперь корректно работает для переключения раскладок
  • Для настройки необходимо перейти в “Параметры системы” → “Устройства ввода” → “Клавиатура”
  • В разделе “Сочетания клавиш” для переключения раскладок:
    • Удалите стандартное сочетание из раздела “Основное”
    • Добавьте в раздел “Альтернативное”

Источник: Reddit - CTRL-Shift for changing keyboard layout now works correctly in Linux

Для вашей задачи с левой и правой клавишами Shift, KDE 6.1 предоставляет более стабильную основу для работы с раскладками.


Сравнение методов

Метод Плюсы Минусы Сложность
xremap Работает в Wayland, гибкая конфигурация, системное переназначение Требует установки, может конфликтовать с другими утилитами Средняя
XKB-карты Глубокая интеграция с системой, работает на уровне ядра Требует системных прав, сложнее в настройке Высокая
Расширенные настройки KDE Не требует установки, интегрирован в KDE Ограниченные возможности в Wayland, не всегда показывает лев/прав Низкая

Рекомендация: Для вашей задачи с переключением языков через левый и правый Shift лучше всего подходит xremap, так как он:

  • Работает корректно в Wayland
  • Позволяет точно настроить поведение каждой клавиши
  • Не требует глубоких знаний системных файлов
  • Легко настраивается через YAML-конфигурацию

Заключение

  1. xremap - наиболее эффективное решение для различения левых и правых клавиш в KDE 6, особенно в Wayland
  2. XKB-карты предоставляют системный уровень интеграции, но требуют более сложной настройки
  3. KDE Plasma 6.1 улучшил работу с переключением раскладок, но для различения левых/правых клавиш все равно дополнительные инструменты
  4. Для вашей конкретной задачи (английский - левый Shift, русский - правый Shift) рекомендуется использовать xremap с конфигурацией на основе setxkbmap

Начните с настройки xremap - это обеспечит вам максимальную гибкость и надежность работы в обеих сессиях (Wayland и X11). Если возникнут сложности, можно рассмотреть создание пользовательской XKB-раскладки для глубокой интеграции с системой.


Источники

  1. GitHub - xremap/xremap: Key remapper for X11 and Wayland
  2. Reddit - CTRL-Shift for changing keyboard layout now works correctly in Linux
  3. KDE Discuss - How to use Super and Hyper as separate modifiers for keyboard shortcuts (Plasma 6 on Wayland)
  4. Unix & Linux Stack Exchange - How to customise keyboard mappings with Wayland
  5. Reddit - r/kde on Reddit: Can I remap keys within Plasma 6?
  6. Super User - How to remap CAPS LOCK on Wayland?
  7. KDE Discuss - Remap keys on plasma 6 wayland
  8. Paolo Mainardi - Mastering Key Remapping on Linux: A Practical Guide with xremap