
Итак, я пытаюсь сопоставить Alt- Aк правой стрелке. Я следовал подходу 'xev и xmodmap', описанномуздесьи придумал это:
xmodmap -e "keycode 38 mod1 = Right"
что с треском проваливается: когда я нажимаю Alt- A, C
печатается. А если я просто нажимаю A, курсор действительно перемещается вправо.
Вывод xmodmap -pm
для mod1:
mod1 Alt_L (0x40), Meta_L (0xcd)
Что я делаю не так?
решение1
Как сказано на странице руководства, или как xmodmap -pke
будет показано ниже:
НОМЕР кода клавиши = ИМЯ_СИМВОЛА_КЛАВИШИ ...
Список символов клавиш назначается указанному коду клавиши (который может быть указан в десятичном, шестнадцатеричном или восьмеричном формате и может быть определен путем запуска программы xev). К клавише может быть прикреплено до восьми символов клавиш, однако последние четыре не используются ни в одной крупной реализации X-сервера. Первый символ клавиши используется, когда никакая клавиша-модификатор не нажата вместе с этой клавишей, второй — с Shift, третий — когда клавиша Mode_switch используется с этой клавишей, а четвертый — когда используются как клавиши Mode_switch, так и Shift.
Это значит, что
keycode 38 mod1 = ...
недопустимый синтаксис.
Также, с xkbd
может быть более четырех символов клавиш, и дополнительные символы клавиш ведут себя так, как указано. Например, при level3(ralt_switch)
активной опции xkb (которая является значением по умолчанию в моем дистрибутиве), правая клавиша alt сопоставляется с ISO3_Level_Shift
, а символы клавиш с 5-го по 8-й описывают результаты при RAltдополнительном нажатии. Так что в этом случае вы можете сделать что-то вроде
keycode 38 = a A a A Right Right Right Right
или что-то подобное, в зависимости от того, что вы хотите ShiftAltAсоздать.