
Ich möchte die rechte controlTaste in einen „Super“-Modifikator und die rechte altTaste in einen „Alt“-Modifikator (nicht in den Meta) in Solaris und Linux ändern (da ich weiß, wie das in Windows mit AutoHotKey geht). Ich weiß, wie das geht:
(define-key local-function-key-map (kbd "<rwindow>") 'event-apply-super-modifier
Aber ich weiß nicht, wie ich das angeben sollRechts controlSchlüssel oderRechts altTaste (die bequemer zu tippen sind als die Windows-Tasten). Wenn das direkt in Emacs gemacht werden kann (und AutoHotKey auch in Windows vermieden wird), wäre das großartig. Ansonsten würde ich gerne wissen, was in Solaris und Linux dasselbe bewirken kann wie AutoHotKey.
Antwort1
Ich kenne keine Möglichkeit, dies in Emacs zu tun. Soweit ich weiß, Ctrlwerden die beiden Tasten gleich behandelt. Für einige Betriebssysteme gibt es eine Option, um das Keysym für zu ändern, R-Altaber ich kenne keine für X Windows. Beachten Sie, dass Sie die x-alt-keysym
Variable verwenden können, um das Keysym für zu ändern .beide AltSchlüssel.
Sie können die an jede Taste in X Windows gebundenen Modifikatoren ändern, indem Sie verwenden xmodmap
. Das Arch WikiArtikeldeckt seine Verwendung ab. Grundsätzlich:
Geben Sie ein
xmodmap -pm
, um eine Liste der Modifikatoren und der ihnen zugewiesenen Tasten auszudrucken, z. B.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) ....
Erstellen Sie dann eine Datei, die die zu ändernden Modifikatoren löscht und neu bindet. Um beispielsweise R-Ctrlin zu zu ändern
super
, sollte dies funktionieren:clear super add super = Super_L Super_R Control_R clear control add control = Control_L
Zur Handhabung der AltSchlüssel können Sie Folgendes verwenden:
clear meta add meta = Alt_L
Das sollte dazu führen, dass Emacs den vorhandenen Modifikator findet und die Tasten standardmäßig
meta
nicht mehr als behandelt . Dann ist die Taste als Modifikator für die Verwendung in Emacs (und dem as ) verfügbar. Ich habe das nie ausprobiert.Altmeta
R-Altalt
L-Altmeta
Wenn das nicht funktioniert, müssen Sie zum Binden einen unbenutzten Modifikator auswählen R-Alt, z. B.
hyper
. Dann können Sie das in Emacs-Bindungen verwenden.Sie können die Änderungen aktivieren, indem Sie Ihre Datei
~/.Xmodmap
unterxmodmap ~/.Xmodmap
In vielen Desktopumgebungen
~/.Xmodmap
wird es automatisch beim Start ausgeführt. Wenn nicht, müssen Sie es in Ihrer~/.xinitrc
Datei ausführen:if [ -s ~/.Xmodmap ]; then xmodmap ~/.Xmodmap fi