Converti una chiave normale in una chiave di modifica


11

Ho una tastiera che, per qualche motivo inspiegabile, presenta un tasto che invia il simbolo del dollaro danese a OS X - §. Con shift invia il simbolo più / meno - ±.

In Emacs è possibile vedere la §chiave e convertirla in Hyper o Super? Quindi, se tengo premuto quel §tasto e premo f, si attiverà H-fin Emacs.

Ho provato quanto segue, che non funziona:

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

Dice semplicemente <Hyper> is undefinedpremendo il tasto e non funziona affatto come modificatore.

Anche questo non funziona:

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

che trasforma semplicemente la §chiave in <chiave.



2
Dovresti essere in grado di farlo a livello di sistema operativo, ma non in emacs.
Malabarba,

Risposte:


4

Versione breve : in termini di Emacs, ciò di cui avevo veramente bisogno erano gli accordi chiave .


@Malabarba e @XinUmbralis sembrano avere ragione - Emacs non ti consente di trasformare normalmente una chiave normale in una chiave modificatrice. Non mi piace l'idea di combinare ogni tasto modificatore sulla tastiera e di chiamarlo "Hyper", perché potrebbe essere in conflitto con altre cose in futuro.

Uso già Karabiner e apparentemente puoi creare modificatori personalizzati con esso. Ma ciò richiede la mappatura di ogni combinazione a livello di sistema operativo in modo che, diciamo, §-ainvii qualcosa che Emacs sappia gestire.

Poi mi sono ricordato della libreria di accordi chiave e ho capito che era la vera terminologia di Emacs per quello che volevo. Esempio di configurazione:

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

L'unico problema che ho con l'accordo chiave è che la semantica di un accordo chiave è un po 'diversa da un modificatore + tasto - non è consentita la ripetizione e l'intero accordo deve essere inserito molto rapidamente.

Se trovo una soluzione a questi problemi, ne scriverò da qualche parte e fornirò un collegamento in una modifica a questa risposta.


3

Potresti o non essere in grado di ricollegare il tasto del segno di sezione (tasto §) per inviare l'hyper comando, tuttavia potresti ricollegare il tasto BLOC MAIUSC per inviare Hyper, usando Seil PCKeyboardHack .

Per ricollegare la chiave di blocco maiuscole in Seil, procedi come segue:

  1. Apri Seil e fai clic su "Cambia il tasto BLOC MAIUSC".
  2. Seleziona la casella di controllo accanto a "Cambia il tasto BLOC MAIUSC".
  3. Fare doppio clic sul codice chiave e immettere il codice chiave 80.

1
Questa risposta sarebbe probabilmente migliore come commento. In generale, le risposte dovrebbero fare più che fornire collegamenti, in parte perché i collegamenti potrebbero scomparire in qualsiasi momento. Potresti modificare la tua risposta per renderla più autonoma?
Dan

Sfortunatamente, almeno per me, impostare il keycode su 80 non fa nulla.
Marcin,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.