KDE Пользовательские сочетания клавиш не работают с особыми ключами XF86

Вопрос или проблема

Я хочу использовать внешнюю цифровую клавиатуру в качестве ‘макро-клавиатуры’, где каждая клавиша может выполнять указанное действие. Я уже создал пользовательскую xkb_keymap для сопоставления клавиш с символами XF86.

$ cat ~/.xinitrc
...
# Активная макро-клавиатура
macrokb=$( xinput list | sed -n 's|.*MOSART.*2\.4G.*id=\([0-9]*\).*keyboard.*|\1|p' | head -n1 )
if [ "$macrokb" ]; then
  cat ~/.xkb/macros.xkb | xkbcomp -i $macrokb - $DISPLAY
fi

$ cat ~/.xkb/macros.xkb 
xkb_keymap "macros" {

xkb_keycodes {
    // 0 - Chrome
    <WEB> = 90;
    // / - Windows
    <WIN> = 106;
    // * - Win attach
    <ATCH> = 63;
    // BS - Win detach
    <DTCH> = 22;
    // enter - Terminal
    <TERM> = 104;
    // numlock - Настройки
    <SETT> = 77;
};

xkb_types {
    include "basic"                                                                                                 
    include "numpad"                                                                                                
};                                                                                                                  

xkb_compat { include "basic" };                                                                                     

xkb_symbols {                                                                                                       
    key.type = "ONE_LEVEL";                                                                                         
    key <WEB> { [ XF86WWW ] };                                                                                      
    key <WIN> { [ XF86Launch0 ] };                                                                                  
    key <ATCH> { [ XF86Launch1 ] };                                                                                 
    key <DTCH> { [ XF86Launch2 ] };                                                                                 
    key <TERM> { [ XF86Terminal ] };                                                                                
    key <SETT> { [ XF86Tools ] };                                                                                   
};                                                                                                                  

};

Пользовательская раскладка клавиатуры успешно загружается и распознается с помощью xev.
Пример: 

Событие нажатия клавиши, серийный номер 41, синтетический NO, окно 0x5800001,
    корень 0x4f7, подокон 0x0, время 5314499, (1656,414), корень:(1656,443),
    состояние 0x10, код клавиши 106 (keysym 0x1008ff40, XF86Launch0), тот же экран YES,
    XLookupString не дает 0 байт:
    XmbLookupString не дает 0 байт:
    XFilterEvent возвращает: False

Теперь возникает проблемная часть: когда я создаю пользовательское сочетание клавиш в KDE, оно успешно распознает XF86 keysym, например, WWW или Terminal, но скрипт, который я предоставил, не выполняется (поэтому сочетание клавиш не распознается KDE).

Однако это не касается некоторых других клавиш (встроенных в мою основную клавиатуру), например, XF86AudioPlay.

Как я могу решить эту проблему?

Ответ или решение

Проблема с пользовательскими сочетаниями клавиш KDE и специальными ключами XF86

Использование внешней клавиатуры для выполнения макросов в KDE – это отличный способ повысить продуктивность. Однако, как вы столкнулись, это может вызвать определенные сложности, особенно при использовании специальных клавиш XF86. Рассмотрим, как можно решить эту проблему, чтобы у вас работали все функции.

Описание проблемы

Как вы описали, вы создали собственную карту клавиш с использованием XKB, и специальные клавиши, такие как XF86WWW и XF86Terminal, успешно определяются через xev. Однако, несмотря на то что KDE распознает эти символы при создании пользовательских сочетаний клавиш, сами команды не выполняются, в отличие от встроенных клавиш, таких как XF86AudioPlay.

Возможные причины

  1. Кодировка символов: Проблема может заключаться в том, как обрабатываются ключи XF86 вашей систему. Убедитесь, что ваши настройки и кодировка правильно распознают и обрабатывают эти символы.

  2. Конфликт с другими настройками: Иногда могут возникать конфликты между пользовательскими сочетаниями клавиш и уже существующими. Проверьте, не заняты ли ваши сочетания другими функциями или приложениями.

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

Шаги для решения проблемы

  1. Проверка конфигурации XKB:
    Убедитесь, что ваша карта клавиш корректно загружена и функции, ассоциированные с XF86 клавишами, определены правильно. Используйте xev для проверки. Если функция возвращает ноль (0) при XLookupString, это может указывать на проблему обработки клавиш.

  2. Тестирование на других приложениях:
    Попробуйте использовать ваши клавиши XF86 в других приложениях или окружениях рабочего стола, таких как GNOME или XFCE. Это поможет выяснить, является ли проблема специфичной для KDE или широкой.

  3. Логи KDE:
    Проверьте системные журналы (например, journalctl или логи KDE) на наличие сообщений об ошибках, связанных с выполнением скриптов или особенностями работы клавиш.

  4. Настройка пользовательских сочетаний клавиш:
    Убедитесь, что вы правильно настроили сочетания клавиш в системных настройках KDE:

    • Откройте "Системные настройки".
    • Перейдите в раздел "Сочетания клавиш".
    • Добавьте новое сочетание клавиш и проверьте, корректно ли оно реагирует на нажатия на клавиши XF86.
  5. Обновление ПО:
    Убедитесь, что ваше рабочее окружение KDE и все зависимости обновлены до последних версий. Иногда проблемы с совместимостью могут быть устранены в новых релизах.

Заключение

Проблема с использованием специальных клавиш XF86 в KDE может быть вызвана несколькими факторами, включая конфигурацию XKB и возможные конфликты с уже существующими сочетаниями клавиш. Следуя описанным рекомендациям, вы сможете диагностировать и решить возникшие трудности. Если ни один из шагов не сработает, рекомендуется обратиться к сообществу KDE или на специализированные форумы для получения дополнительной поддержки.

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

Капча загружается...