Как я могу поменять Left Meta на произвольный ключ (желательно используя xkb)?

Я пытаюсь противостоять своему "emacs pinky", помещая некоторые ключи в более доступные места. Я уже переключил Ctrl для Caps Lock, что было не сложно, поместив команду setxkbmap в список автозагрузки приложений.

Я решил, что мне следует переместить левую клавишу Meta/Super/Windows, которую я часто использую, и к ней не очень удобно обращаться с клавиатуры. Лучшая клавиша для выполнения этой функции - клавиша над вкладкой, которая в американских клавиатурах делает ~ символ (а на клавиатуре ES образуются символы мужского / женского рода и обратный слеш, и).

это ключ, который я хотел бы поменять местами с мета-ключом слева

Я разобрался, глядя на /usr/share/X11/xkb/symbols/es, что его код TLDE:

key <TLDE>  { [ masculine, ordfeminine,    backslash,   backslash ] };

Но как я могу поменять этот ключ с левой мета-ключ?? Я не могу найти код этого ключа в xkb, и я не знаю, как я могу сделать перестановки, для которых нет опции в /usr/share/X11/xkb/rules/evdev.lst, Его код LWIN (как я видел/usr/share/X11/xkb/symbols/pc):

key <LWIN> {      [ Super_L               ]       };

Если это уместно, я сейчас использую XFCE4, но я бы хотел портативное решение, чтобы я мог взять его с собой, если я изменю DE (я использую Unity на других компьютерах); Я также использую испанскую клавиатуру.

Добавлено: мой текущий конфиг; обратите внимание, что у меня включен swapcaps, он включен из setxkbmap Я добавил в автозагрузку приложения.

$ setxkbmap -print
xkb_keymap {
    xkb_keycodes  { include "evdev+aliases(qwerty)" };
    xkb_types     { include "complete"  };
    xkb_compat    { include "complete"  };
    xkb_symbols   { include "pc+es+inet(evdev)+ctrl(swapcaps)"  };
    xkb_geometry  { include "pc(pc105)" };
};

Спасибо!

Неудачная попытка, которая может быть близка

Я пытался изменить макеты в x11/xkb,

В /usr/share/X11/xkb/symbols/es:

-key <TLDE>        { [ masculine, ordfeminine,    backslash,   backslash ] };
+key <TLDE>        { [ Super_L ] };

В /usr/share/X11/xkb/symbols/pc:

-key <LWIN> {      [ Super_L               ]       };    
+key <LWIN> {     [ masculine, ordfeminine,    backslash,   backslash  ] };

Это не имело никакого значения, они показывают то же самое поведение.

Другая идея

Еще одна мысль, о которой я думал, это переключение кодов клавиш в /usr/share/X11/xkb/keycodes/evdev, Не могу заставить его работать, хотя.

1 ответ

Решение

используя xmodmap

Я не хотел использовать xmodmap, но... он делает свое дело:

  1. xev проверить код и функцию ключа (для меня 49 - мужское, 133 - Super_L).
  2. xmodmap для обмена их функциями:

    xmodmap -e 'keycode 49 = Super_L'
    xmodmap -e 'keycode 133 = masculine backslash backslash backslash'
    

Обратите внимание, что это соответствует моей раскладке клавиатуры, вы должны проверить свою. Кроме того, теперь обратная косая черта сделана с помощью Shift вместо Alt-Gr, как раньше, но я не заставил себя долго привыкать к этому.

Другие вопросы по тегам