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

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

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

1 ответ1

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
    

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .