como alterar a tecla de controle direita em um modificador super/hiper no emacs

como alterar a tecla de controle direita em um modificador super/hiper no emacs

Eu gostaria de mudar a controltecla direita para um modificador "super" e alta tecla direita para o modificador "alt" (não o Meta) no Solaris e Linux (já que sei fazer isso no Windows usando AutoHotKey). Eu sei como fazer isso:

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

Mas não sei como especificarcerto controlchave oucerto alttecla (que são mais convenientes de digitar do que as teclas do Windows). Se isso puder ser feito diretamente no emacs (e evitar o AutoHotKey no Windows também), seria ótimo. Caso contrário, gostaria de saber o que posso conseguir no Solaris e no Linux da mesma forma que o AutoHotKey.

Responder1

Não conheço nenhuma maneira de fazer isso no Emacs. Pelo que eu sei, as duas Ctrlchaves são tratadas da mesma forma. Para alguns sistemas operacionais, existe uma opção para alterar o símbolo de tecla, R-Altmas não conheço nenhum para o X Windows. Observe que você pode usar a x-alt-keysymvariável para alterar o símbolo de chave paraambos Altchaves.

Você pode alterar os modificadores vinculados a cada tecla no X Windows usando xmodmap. O Arco Wikiartigocobre seu uso. Basicamente:

  • Digite xmodmap -pmpara imprimir uma lista de modificadores e as teclas atribuídas a eles, por exemplo.

        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) ....
    
  • Em seguida, crie um arquivo que limpe e revincule os modificadores que você deseja alterar. Por exemplo. para mudar R-Ctrlpara super, isso deve funcionar:

        clear super
        add super = Super_L Super_R Control_R
        clear control
        add control = Control_L
    
  • Para lidar com as Altchaves, você poderia usar:

        clear meta
        add meta = Alt_L
    

    Isso deve fazer com que o Emacs encontre o metamodificador existente e pare de tratar as Altchaves como metapadrão. Então a R-Altchave estará disponível como um altmodificador para uso no Emacs (e no L-Altas meta). Eu nunca tentei isso.

    Se isso não funcionar, você terá que escolher um modificador não utilizado para vincular R-Alt, por exemplo. hyper. Então você poderia usar isso nas ligações do Emacs.

  • Você pode ativar as alterações salvando seu arquivo como ~/.Xmodmape executando

    xmodmap ~/.Xmodmap
    

    Em muitos ambientes de desktop, ~/.Xmodmapserá executado automaticamente na inicialização. Caso contrário, você terá que executá-lo em seu ~/.xinitrcarquivo:

    if [ -s ~/.Xmodmap ]; then
        xmodmap ~/.Xmodmap
    fi
    

informação relacionada