Das erneute Zuordnen der Feststelltaste mit xmodmap funktioniert nicht

10

Wenn ich programmiere, tausche ich gerne diese Tasten:

EscTab CtrlCapsLock

In habe ~/.xmodmapich diese Neuzuordnungen angegeben:

keycode 66 = Control_L
keycode 37 = Caps_Lock
keycode 23 = Escape
keycode 9 = Tab

Das Escapeund die TabTasten tauschen, kein Problem, aber anstelle von Caps_Lockund Control_Ltauschen werden beide Tasten Caps_Lock.

Was auch immer ich versuche, die Steuertasten werden nicht zugewiesen Caps_Lock( Schlüsselcode 66). Wenn ich keycode 66 =die Taste verlasse , ist der Schlüssel nicht zugewiesen, aber wenn ich Control_Loder zuweise Control_R, funktioniert er einfach nicht. Aber wenn ich zum Beispiel einen anderen Schlüssel zuweise, keycode 66 = Tabwird er zugewiesen, kein Problem.

Xmodmap möchte einfach nicht, dass die Feststelltaste und die Steuertasten ausgetauscht werden. Wirklich frustrierend. Jede Hilfe / Hinweise wäre wirklich hilfreich.

PS: Ich benutze Archlinux.

Aby James
quelle

Antworten:

8

Die Manpage xmodmap (1) enthält genau dafür ein Beispiel

   !
   ! Swap Caps_Lock and Control_L
   !
   remove Lock = Caps_Lock
   remove Control = Control_L
   keysym Control_L = Caps_Lock
   keysym Caps_Lock = Control_L
   add Lock = Caps_Lock
   add Control = Control_L

Aber wenn Sie es so beenden möchten, wie Sie es begonnen haben, müssen Sie mindestens die Zeilen removeund hinzufügenadd

   remove Lock = Caps_Lock
   remove Control = Control_L
   keycode 37 = Caps_Lock
   keycode 66 = Control_L
   add Lock = Caps_Lock
   add Control = Control_L

Ich vermute, dass dies aufgrund dieses Absatzes der Fall ist

   add MODIFIERNAME = KEYSYMNAME ...
           This adds all keys containing the given keysyms  to  the  indi‐
           cated  modifier  map.  The keysym names are evaluated after all
           input expressions are read to make it easy to write expressions
           to swap keys (see the EXAMPLES section).

Das klingt nach Modifikatoränderungen (Shift, Control usw.), die erst angewendet werden, wenn Sie diese ebenfalls ausführen.

(Und logischerweise das gleiche mit remove)

Mikel
quelle
Ich habe die Manpage gelesen und die Tasten Caps_Lock und Control_L gemäß dem Beispiel neu zugewiesen. Aber ich war neugierig, warum das erneute Zuordnen der Schlüssel auf die im OP erwähnte Weise nicht funktioniert. Ist es ein Fehler oder so?
Aby James
Scheint so, wie es funktionieren soll. Siehe meine aktualisierte Antwort.
Mikel
3

Locker verwandte Antwort: Ich wollte die Feststelltaste der linken Steuerung neu zuordnen und die eigentliche linke Steuerung unberührt lassen. Die xmodmap-Manpage bietet auch die Lösung:

    keycode 66 = Control_L
    clear Lock
    add Control = Control_L
Clément B.
quelle