
Я хотел бы изменить правую controlклавишу на модификатор "super", а правую altклавишу на модификатор "alt" (не Meta) в Solaris и Linux (так как я знаю, как это сделать в Windows с помощью AutoHotKey). Я знаю, как сделать это:
(define-key local-function-key-map (kbd "<rwindow>") 'event-apply-super-modifier
Но я не знаю, как указатьверно controlключ иливерно altkey (которые удобнее набирать, чем клавиши Windows). Если это можно сделать прямо в emacs (и избежать AutoHotKey в Windows), это было бы здорово. В противном случае я хотел бы узнать, что может сделать в Solaris и Linux то же самое, что AutoHotKey.
решение1
Я не знаю способа сделать это в Emacs. Насколько мне известно, эти две Ctrlклавиши обрабатываются одинаково. Для некоторых ОС есть возможность изменить keysym для, R-Altно я не знаю такой для X Windows. Обратите внимание, что вы можете использовать x-alt-keysym
переменную, чтобы изменить keysym дляоба Altключи.
Вы можете изменить модификаторы, привязанные к каждой клавише в X Windows, используя xmodmap
. Arch Wikiстатьяохватывает его использование. В основном:
Введите
xmodmap -pm
, чтобы вывести список модификаторов и назначенных им клавиш, например:shift Shift_L (0x32), Shift_R (0x3e) lock control Control_L (0x42), Control_R (0x69) mod1 Alt_L (0x40), Alt_R (0x6c), Meta_L (0xcd) mod4 Super_L (0x85), Super_R (0x86) ....
Затем создайте файл, который очищает и перепривязывает модификаторы, которые вы хотите изменить. Например, чтобы изменить R-Ctrlна
super
, это должно сработать:clear super add super = Super_L Super_R Control_R clear control add control = Control_L
Для обработки Altключей можно использовать:
clear meta add meta = Alt_L
Это должно заставить Emacs найти существующий
meta
модификатор и прекратить обрабатывать Altклавиши какmeta
модификаторы по умолчанию. Тогда R-Altклавиша будет доступна какalt
модификатор для использования в Emacs (и L-Altкакmeta
). Я никогда этого не пробовал.Если это не сработает, вам придется выбрать неиспользуемый модификатор для привязки R-Alt, например.
hyper
. Затем вы можете использовать его в привязках Emacs.Вы можете активировать изменения, сохранив файл как
~/.Xmodmap
и запустив егоxmodmap ~/.Xmodmap
Во многих средах рабочего стола
~/.Xmodmap
будет автоматически запускаться при запуске. Если нет, вам придется запустить его в вашем~/.xinitrc
файле:if [ -s ~/.Xmodmap ]; then xmodmap ~/.Xmodmap fi