cómo cambiar la tecla de control derecha en un modificador super/hyper en emacs

cómo cambiar la tecla de control derecha en un modificador super/hyper en emacs

Me gustaría cambiar la controltecla derecha a un modificador "super" y altla tecla derecha al modificador "alt" (no el Meta) en Solaris y Linux (ya que sé cómo hacerlo en Windows usando AutoHotKey). Yo sé cómo hacer esto:

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

Pero no sé cómo especificar elbien controlclave obien alt(que son más cómodas de escribir que las teclas de Windows). Si eso se puede hacer directamente en emacs (y evitar AutoHotKey también en Windows), sería genial. De lo contrario, me gustaría saber qué se puede lograr en Solaris y Linux, lo mismo que piensa AutoHotKey.

Respuesta1

No conozco ninguna forma de hacer esto en Emacs. Hasta donde yo sé, las dos Ctrlclaves se tratan de la misma manera. Para algunos sistemas operativos, hay una opción para cambiar el símbolo de clave, R-Altpero no conozco ninguna para X Windows. Tenga en cuenta que puede utilizar la x-alt-keysymvariable para cambiar el símbolo de clave paraambos Altllaves.

Puede cambiar los modificadores vinculados a cada tecla en X Windows usando xmodmap. Wiki El Arcoartículocubre su uso. Básicamente:

  • Escriba xmodmap -pmpara imprimir una lista de modificadores y las claves asignadas a ellos, por ejemplo.

        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) ....
    
  • Luego cree un archivo que borre y vuelva a vincular los modificadores que desea cambiar. P.ej. para cambiar R-Ctrla super, esto debería funcionar:

        clear super
        add super = Super_L Super_R Control_R
        clear control
        add control = Control_L
    
  • Para manejar las Altclaves, puedes usar:

        clear meta
        add meta = Alt_L
    

    Eso debería hacer que Emacs encuentre el metamodificador existente y deje de tratar las Altclaves como metapredeterminadas. Entonces la R-Altclave estará disponible como altmodificador para usar en Emacs (y L-Altas meta). Nunca he probado esto.

    Si eso no funciona, tendrás que elegir un modificador no utilizado para vincularlo R-Alt, por ejemplo. hyper. Entonces podrías usarlo en enlaces de Emacs.

  • Puedes activar los cambios guardando tu archivo como ~/.Xmodmapy ejecutándolo

    xmodmap ~/.Xmodmap
    

    En muchos entornos de escritorio, ~/.Xmodmapse ejecutará automáticamente al inicio. Si no, tendrás que ejecutarlo en tu ~/.xinitrcarchivo:

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

información relacionada