как изменить правую управляющую клавишу в супер / гипер модификаторе в emacs

0

Я хотел бы изменить право контроль ключ в "супер" модификатор и право альт ключ к модификатору "alt" (не Meta) в Solaris и Linux (поскольку я знаю, как это сделать в Windows с помощью AutoHotKey). Я знаю, как это сделать:

(define-key local-function-key-map (kbd "<rwindow>") 'event-apply-super-modifier

Но я не знаю, как указать право контроль ключ или право альт ключ (который удобнее набирать, чем ключи Windows). Если это можно сделать прямо в emacs (и избегать AutoHotKey в Windows), это было бы здорово. В противном случае я хотел бы знать, чего можно достичь в Solaris и Linux, думая так же, как AutoHotKey.

Adrian Chira
источник
Что вы подразумеваете под "правым левым Alt Key"? Я предполагаю, что вы имеете в виду либо право или же оставил. Можете ли вы отредактировать свой вопрос, чтобы уточнить?
lzam

Ответы:

1

Я не знаю ни одного способа сделать это в Emacs. Насколько я знаю, два Ctrl ключи обрабатываются одинаково. Для некоторых ОС есть возможность изменить keysym для R-Alt но я не знаю ни одного для X Windows. Обратите внимание, что вы можете использовать x-alt-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
    
pyrocrasty
источник
xev показывает разные символы (здесь по крайней мере) для левого / правого управления, Alt клавиши. Это было сделано для каждой системы, которую я использовал с X, которая имеет эти физические ключи.
Thomas Dickey
@ Томас Дики: разные кейсимы? Разные для меня или разные? Мои разные для левой и правой клавиши каждого типа, а также. Они назначены на те же модификаторы, хотя. Ctrl_L (FFE3) и Ctrl_R (FFE4) назначены на control модификатор. Alt_L (FFEA) и Alt_R (FFE9) назначены на mod1 модификатор.
pyrocrasty
Спасибо! Я не думаю, что у меня есть X на Linux-машинах (я буду использовать их через ssh) - о чем я не упомянул - но я ценю ваш ответ.
Adrian Chira