So stellen Sie die AltGr-Taste mit xmodmap ein

7

Ich benutze ein us-intl mit "AltGr Dead Keys" -Layout und der Option zum Umschalten Altund WinKey. Schön, aber meins AltGrfunktioniert nicht. Der Schlüssel, für den ich verwenden möchte, AltGrhat den Schlüsselcode 134 (mit xev herausgefunden). Also erstelle ich eine .Xmodmap-Datei:

keycode 134 = ISO_Level3_Shift Multi_key ISO_Level3_Shift Multi_key

als ich "xmodmap .Xmodmap" ausführe. Wenn ich jetzt meinen Modifikator zeige, bekomme ich:

> xmodmap
xmodmap:  up to 4 keys per modifier, (keycodes in parentheses):

shift       Shift_L (0x32),  Shift_R (0x3e)
lock      
control     Control_L (0x25),  Control_R (0x69)
mod1        Alt_L (0x85),  Meta_L (0xcd)
mod2        Num_Lock (0x4d)
mod3      
mod4        Super_L (0x40),  Super_R (0x6c),  Super_L (0xce),  Hyper_L (0xcf)
mod5        ISO_Level3_Shift (0x5c),  ISO_Level3_Shift (0x86),  Mode_switch (0xcb)

Aber ... Drücken AltGr(die Taste mit dem Code 134 = 0x86) + qergibt nicht das erwartete Ergebnis - was "a-Umlaut" wäre. Es sollte! xmodmap -pke enthält diese Zeile:

keycode  24 = q Q q Q adiaeresis Adiaeresis adiaeresi

Was ist also falsch und was kann ich tun?

Nathan
quelle

Antworten:

5

Laut Xmodmap-Handbuch müssen Sie beim Austauschen oder Ändern von Modifikatorschlüsseln deren Verknüpfungen zu den ursprünglichen Schlüsselcodes und Modifikatorgruppen entfernen und löschen. Nachdem Sie sie einem neuen Schlüsselcode zugewiesen haben, müssen Sie sie auch einer neuen, eindeutigen Gruppe zuweisen.

Es sieht so aus, als ob das Problem darin besteht, dass Sie demselben Schlüssel zwei verschiedene Modifikatoren zugewiesen haben: [ISO_Level3_shift] und [Mode_switch]. Außerdem haben Sie sie derselben Modifikatorgruppe zugewiesen. Wenn Sie sie derselben Gruppe zuweisen, haben Sie folgende Auswirkungen: Wenn Sie eine davon drücken, werden beide aktiviert / an das System gesendet.

[ISO_Level3_shift] & [Mode_switch] sind keine Synonyme. Jede dieser Tasten soll den Zugriff auf eine eindeutige Ebene / Ebene der Tastatur ermöglichen. Und wenn sie zusammengedrückt werden, können sie auf noch höhere Ebenen zugreifen, wenn Ihre Tastatur sie unterstützt.

Eine weitere mögliche Komplikation besteht darin, dass Xmodmap auf praktisch allen Systemen auf xkb ausgeführt wird (wodurch bestimmte Aspekte der zugrunde liegenden virtuellen Tastatur definiert werden).

[Mode_switch] ist gleichbedeutend mit [AltGr] für Xmodmap und bietet Zugriff auf Level 2 - das wäre der zweite Satz von [q] & [Q] in Ihrem Beispiel. Während [ISO_Level3_shift] den Zugriff auf Ebene drei ermöglicht - in Ihrem Beispiel [ä] & [Ä].

Da jedoch beide Tasten in Ihrem Beispiel dieselbe Modifikatorgruppe verwenden, werden beide gedrückt, wodurch wahrscheinlich versucht wird, auf Ihre höchste Ebene zuzugreifen. aber da es einen Fehler zu geben scheint *, erhalten Sie wahrscheinlich entweder keine Ausgabe oder eine unerwartete Ausgabe, die vom zugrunde liegenden xkb kommt.

Grundsätzlich können Sie dies beheben, indem Sie Ihre .xmodmap-Datei ändern. Weisen Sie einfach [Level3_shift] & [Mode_switch] separaten Tasten und separaten Modifikatorgruppen zu. Oder eigentlich würde ich nur empfehlen, dass Sie den Verweis auf Mode_switch ganz entfernen. Ich habe festgestellt, dass es sich ziemlich seltsam verhält; Die Umschalttaste der 3. Ebene scheint sich konsistenter und zuverlässiger zu verhalten.

* -Ihrem zweiten "adiaeresi" (sic.) fehlen die letzten [s], so dass kein Charakter erzeugt wird.

Ich weiß, dass dies ohne ersichtlichen Grund ziemlich verwirrend und verworren ist, und dieser Thread ist alt. Aber hoffentlich findet jemand meine Erklärung irgendwann nützlich!

AuralArch
quelle
Ich frage mich, ob xmodmap heutzutage im Allgemeinen der beste Weg ist, dies zu tun.
Thomas