Konvertieren Sie einen normalen Schlüssel in einen Modifikatorschlüssel


11

Ich habe eine Tastatur, die aus unerklärlichen Gründen eine Taste enthält, die das dänische Dollarsymbol an OS X - sendet §. Bei Shift wird das Plus / Minus-Symbol - gesendet ±.

Ist es in Emacs möglich, den §Schlüssel zu sehen und in Hyper oder Super umzuwandeln? Wenn ich diese §Taste gedrückt halte und drücke f, wird sie H-fin Emacs aktiviert .

Ich habe folgendes versucht, was nicht funktioniert:

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

Es wird nur <Hyper> is undefinedbeim Drücken der Taste angezeigt und fungiert überhaupt nicht als Modifikator.

Das funktioniert auch nicht:

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

das macht den §Schlüssel einfach zu einem <Schlüssel.



2
Sie sollten dies auf Betriebssystemebene tun können, jedoch nicht in Emacs.
Malabarba

Antworten:


4

Kurzfassung : In Emacs Worten brauchte ich wirklich Key-Akkorde .


@Malabarba und @XinUmbralis scheinen richtig zu sein - Emacs lässt Sie einen normalen Schlüssel nicht normal in einen Modifikatorschlüssel verwandeln. Ich mag die Idee nicht wirklich, jede Modifizierertaste auf der Tastatur zu kombinieren und diese "Hyper" zu nennen, weil sie in Zukunft mit anderen Dingen in Konflikt stehen könnte.

Ich benutze Karabiner bereits und anscheinend können Sie damit benutzerdefinierte Modifikatoren erstellen . Dazu muss jedoch jede Kombination auf Betriebssystemebene zugeordnet werden, damit beispielsweise §-aetwas gesendet wird, mit dem Emacs umgehen kann.

Dann erinnerte ich mich an die Key-Chord-Bibliothek und erkannte, dass dies die wahre Emacs-Terminologie für das war, was ich wollte. Beispielkonfiguration:

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

Das einzige Problem, das ich mit dem Key-Chord habe, ist, dass sich die Semantik eines Key-Chords ein wenig von der eines Modifikators + einer Key unterscheidet - es ist keine Wiederholung erlaubt und der gesamte Akkord muss sehr schnell eingegeben werden.

Wenn ich eine Lösung für diese Probleme finde, schreibe ich irgendwo darüber und stelle in einer Bearbeitung einen Link zu dieser Antwort bereit.


3

Möglicherweise können Sie die Abschnittszeichen-Taste (§-Taste) zum Senden des Hyper-Befehls nicht erneut binden. Sie können jedoch die Feststelltaste zum Senden von Hyper mithilfe von Seil PCKeyboardHack erneut binden .

Gehen Sie wie folgt vor, um den Feststelltaste in Seil neu zu binden:

  1. Öffnen Sie Seil und klicken Sie auf "Feststelltaste ändern".
  2. Aktivieren Sie das Kontrollkästchen neben "Ändern der Feststelltaste".
  3. Doppelklicken Sie auf den Schlüsselcode und geben Sie den Schlüsselcode 80 ein.

1
Diese Antwort wäre wahrscheinlich besser als Kommentar. Im Allgemeinen sollten Antworten mehr als nur Links enthalten, auch weil die Links jederzeit verschwinden können. Könnten Sie bitte Ihre Antwort bearbeiten, um sie eigenständiger zu machen?
Dan

Leider hilft es zumindest für mich nichts, den Schlüsselcode auf 80 zu setzen.
Marcin
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.