Используйте команду xev. Когда вы нажмете Enter, xev запустится. xev принимает все ваши данные и выводит информацию о ключе в командную строку. Я рекомендую навести курсор мыши на клавишу выхода в окне xev, нажать клавишу caps (или любую другую клавишу, о которой вы хотите узнать) и немедленно выйти из xev. Соответствующие строки в моей системе для заглавных букв выглядят примерно так:
KeyPress event, serial 36, synthetic NO, window 0x4400001,
root 0x27a, subw 0x0, time 19164277, (16,-9), root:(1156,46),
state 0x2, keycode 66 (keysym 0xffe5, Caps_Lock), same_screen YES,
XLookupString gives 0 bytes:
XmbLookupString gives 0 bytes:
XFilterEvent returns: False
KeyRelease event, serial 36, synthetic NO, window 0x4400001,
root 0x27a, subw 0x0, time 19164397, (16,-9), root:(1156,46),
state 0x2, keycode 66 (keysym 0xffe5, Caps_Lock), same_screen YES,
XLookupString gives 0 bytes:
XFilterEvent returns: False
Обратите внимание keycode
(66) и keysym
(0xffe5).
Теперь вы также можете получить данные для другого ключа - который вы на самом деле не используете, и который, в контексте которого вы хотите использовать кнопку блокировки заглавных букв, ничего не делает. Итак, если вы хотите, чтобы caps lock активировал окно поиска Unity (как обычно делает super), возможно, используйте `, например. На моей машине:
keycode 49 (keysym 0x60, grave)
Свяжите функцию нового ключа с кнопкой Caps Lock, используя xmodmap. Я уверен, что вы хотите использовать такую команду:
xmodmap -e "keycode 66=0x60"
Теперь, если вы нажмете кнопку блокировки физического регистра в текстовом поле, появится серьезный символ (`). Но если вы назначите ему комбинацию клавиш, она сделает что-то еще. Если вы хотите иметь возможность использовать его в текстовом поле, возможно, замените заглавные буквы на левое смещение, или f10, или что-то еще, что не похоже на то, что это будет мешать команде, которую вы хотите использовать.