Wie ordnet man STRG+A und STRG+E so zu, dass sie systemweit als Home bzw. End fungieren?

Wie ordnet man STRG+A und STRG+E so zu, dass sie systemweit als Home bzw. End fungieren?

Gibt es eine Möglichkeit, STRG+A und STRG+E so zuzuordnen, dass siesystemweitals zum Zeilenanfang gehen und entsprechend zum Zeilenende gehen?

Ich möchte, dass diese Tastenkombinationen nahtlos in jeder App funktionieren, nicht nur im Terminal (wie in OSX).

Mein Hauptsystem ist Ubuntu mit dem Unity-Desktop, aber es wäre gut, eine universelle Lösung zu haben, die desktopunabhängig ist oder zumindest von Gnome, XFCE und LXDE unterstützt wird.

Antwort1

xmodmapkönnte eine Antwort zu liefern scheinen, aber das ist nicht der Fall, denn dieSchlüsselcodeses manipuliert vorhandene Tasten auf der Tastatur, nichtgeändertSchlüssel. A controlAist ein modifizierter Schlüssel.

xmodmapkann nur vorhandene Tastencodes oder (deren Namen) Keysyms neu zuweisen, wie auf der Manualpage aufgeführt:

keycode NUMMER=KEYSYMNAME...
keycode any=KEYSYMNAME...
keysym KEYSYMNAME=KEYSYMNAME...

xmodmapUm die bekannten Schlüsselcodes anzuzeigen , führen Sie aus

xmodmap -pk

das ungefähr Folgendes zeigt (der Übersichtlichkeit halber 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)
     ...

xevzeigt, 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 Kontrollmodifikator ist der 0x4im Zustand; der XLookupString(eine von mehreren verwandten Funktionen zum Kombinieren von Tastenereignissen) transformiert denSchlüsselsymbolfür "a" in ^A(Strg/A).

Da für keine der Steuertasten ein Keysym vorhanden ist, xmodmapist eine Neuzuweisung der Tastencodes für das Problem des OP nicht möglich.

ZulösenDas Problem des OP: Man müsste eine Möglichkeit haben, dem Betriebssystem mitzuteilen, dass es (im Wesentlichen) die Übermittlung separater Ereignisse für controlund ablehnen Asoll – aber Linux und X funktionieren nicht so. Wenn man den Umfang auf eine bestimmte Anwendung (xterm) oder eine Reihe von Anwendungen (Gtk-basierte Programme) beschränkt, könnte man diese separat angehen. Aber eine systemweite Lösung scheint nicht machbar.

verwandte Informationen