Convertir une touche normale en touche de modification

11

J'ai un clavier qui, pour une raison inexplicable, comporte une touche qui envoie le symbole du dollar danois à OS X - §. Avec shift, il envoie le symbole plus / moins - ±.

Est-il possible dans Emacs de voir la §clé et de la convertir en Hyper ou Super? Donc, si je maintiens cette §touche enfoncée et que j'appuie f, elle s'activera H-fdans Emacs.

J'ai essayé ce qui suit, qui ne fonctionne pas:

(define-key key-translation-map (kbd "§") (kbd "<Hyper>"))

Il indique simplement <Hyper> is undefineden appuyant sur la touche et n'agit pas du tout comme modificateur.

Cela ne fonctionne pas non plus:

(define-key key-translation-map (kbd "§") "<Hyper>")

qui transforme simplement la §clé en <clé.

Matt Darling
la source
2
Vous devriez pouvoir le faire au niveau du système d'exploitation, mais pas dans emacs.
Malabarba

Réponses:

4

Version courte : en termes Emacs, ce dont j'avais vraiment besoin, c'était des accords de touches .


@Malabarba et @XinUmbralis semblent avoir raison - Emacs ne vous permet pas de transformer une clé normale en touche de modification normalement. Je n'aime pas vraiment l'idée de combiner toutes les touches de modification du clavier et d'appeler cela "Hyper", car cela pourrait entrer en conflit avec d'autres choses à l'avenir.

J'utilise déjà Karabiner, et apparemment, vous pouvez créer des modificateurs personnalisés avec. Mais cela nécessite de mapper chaque combinaison au niveau du système d'exploitation de sorte que, par exemple, §-aenvoie quelque chose qu'Emacs sait comment gérer.

Puis je me suis souvenu de la bibliothèque d'accords et j'ai réalisé que c'était la vraie terminologie Emacs pour ce que je voulais. Exemple de configuration:

(require 'key-chord)
(key-chord-mode 1)
(key-chord-define-global "§a" 'other-frame)

Le seul problème que j'ai avec l'accord-clé est que la sémantique d'un accord-clé est un peu différente d'un modificateur + clé - il n'y a pas de répétition autorisée, et l'accord entier doit être entré très rapidement.

Si je trouve une solution à ces problèmes, j'écrirai à ce sujet quelque part et fournirai un lien dans une modification à cette réponse.

Matt Darling
la source
3

Vous ne pouvez pas non plus pouvoir lier la clé de signe de section (touche §) pour envoyer la commande hyper, mais vous pouvez relier la touche de verrouillage des majuscules pour envoyer Hyper, en utilisant Seil PCKeyboardHack .

Afin de lier à nouveau la clé de verrouillage des majuscules dans Seil, procédez comme suit:

  1. Ouvrez Seil et cliquez sur «Changer la clé de verrouillage des majuscules».
  2. Cochez la case à côté de «Modifier la clé de verrouillage des majuscules».
  3. Double-cliquez sur le code clé et entrez le code clé 80.
codes gris
la source
1
Cette réponse serait probablement meilleure en tant que commentaire. En général, les réponses devraient faire plus que fournir des liens, en partie parce que les liens peuvent disparaître à tout moment. Pourriez-vous modifier votre réponse pour la rendre plus autonome?
Dan
Malheureusement, au moins pour moi, définir le code de touche sur 80 ne fait rien.
Marcin