So ändern Sie die rechte Strg-Taste in einem Super-/Hypermodifikator in Emacs

So ändern Sie die rechte Strg-Taste in einem Super-/Hypermodifikator in Emacs

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-keysymVariable 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 metanicht 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.AltmetaR-AltaltL-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 ~/.Xmodmapunter

    xmodmap ~/.Xmodmap
    

    In vielen Desktopumgebungen ~/.Xmodmapwird es automatisch beim Start ausgeführt. Wenn nicht, müssen Sie es in Ihrer ~/.xinitrcDatei ausführen:

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

verwandte Informationen