xmodmap
scheint eine Antwort zu sein, tut es aber nicht, da es sich bei den von Ihnen manipulierten Tasten um vorhandene Tasten auf der Tastatur handelt, nicht um modifizierte Tasten. A controlAist ein modifizierter Schlüssel.
xmodmap
kann nur vorhandene Schlüsselcodes oder (deren Namen) Tastensymbole neu zuweisen, wie auf der Handbuchseite aufgeführt:
keycode
NUMBER = KEYSYMNAME ... = KEYSYMNAME ... KEYSYMNAME = KEYSYMNAME ...
keycode
any
keysym
xmodmap
Führen Sie den Befehl aus, um die wichtigsten Codes anzuzeigen
xmodmap -pk
was zeigt so etwas (aus Gründen der Übersichtlichkeit gekürzt):
There are 4 KeySyms per KeyCode; KeyCodes range from 8 to 255. KeyCode Keysym (Keysym) ... Value Value (Name) ... 8 0x0061 (a) 0x0041 (A) 0x00e5 (aring) 0x00c5 (Aring) 9 0x0073 (s) 0x0053 (S) 0x00df (ssharp) 0x00cd (Iacute) 10 0x0064 (d) 0x0044 (D) 0x08ef (partialderivative) 0x00ce (Icircumflex) 11 0x0066 (f) 0x0046 (F) 0x08f6 (function) 0x00cf (Idiaeresis) 12 0x0068 (h) 0x0048 (H) 0x01ff (abovedot) 0x00d3 (Oacute) 13 0x0067 (g) 0x0047 (G) 0x00a9 (copyright) 0x01bd (doubleacute) 14 0x007a (z) 0x005a (Z) 0x07d9 (Greek_OMEGA) 0x00b8 (cedilla) ...
xev
zeigt, was tatsächlich passiert:
KeyPress event, serial 34, synthetic NO, window 0xc00001, root 0x111, subw 0xc00002, time 2209364614, (27,43), root:(47,86), state 0x4, keycode 8 (keysym 0x61, a), same_screen YES, XLookupString gives 1 bytes: (01) "^A" XmbLookupString gives 1 bytes: (01) "^A" XFilterEvent returns: False KeyRelease event, serial 34, synthetic NO, window 0xc00001, root 0x111, subw 0xc00002, time 2209364773, (27,43), root:(47,86), state 0x4, keycode 8 (keysym 0x61, a), same_screen YES, XLookupString gives 1 bytes: (01) "^A" XFilterEvent returns: False
Der Steuermodifizierer befindet sich 0x4
im Zustand; Die XLookupString
(eine von mehreren verwandten Funktionen zum Kombinieren von Schlüsselereignissen) transformiert das Keysym für "a" in ^A
(Steuerung / A).
Da für keine der Steuertasten ein Schlüsselzeichen vorhanden ist, ist das erneute Zuweisen von Schlüsselcodes xmodmap
für das Problem von OP nicht möglich.
Um lösen OP das Problem, müßte man muss einen Weg, um das Betriebssystem zu sagen, ( im wesentlichen) verweigern getrennte Ereignisse zu liefern, für controlund A- aber Linux und X funktionieren nicht auf diese Weise. Wenn Sie den Geltungsbereich auf eine bestimmte Anwendung (xterm) oder einen Satz von Anwendungen (Gtk-basierte Programme) beschränken, können Sie diese separat behandeln. Eine systemweit gültige Lösung erscheint jedoch nicht machbar.