Wie kann Control-j als Return ohne Control-Bit-Set (!) Mit xkb [und | oder] xmodmap funktionieren?

1060
Vasily

Es scheint sehr praktisch für mich zu sein, Control-j anstelle von Return in xterm und vim zu verwenden, und ich möchte diese Sequenz für alle X-Apps verwenden.

Es kann leicht mit xkb ausgeführt werden, indem ISO_Level5_Shift der Control-Taste neu zugeordnet wird, und Return als fünftes Symbol für die j-Taste gesetzt wird. Danach stoppen alle anderen Control-Kombinationen in vim und xterm (weil xterm und vim nicht verstehen Mod-Tasten), und dies ist absolut inakzeptabel.

Es ist mir gelungen, dies ohne Neuzuordnung von ISO_Level5_Shift mithilfe des Schlüsseltyps "LOCAL_EIGHT_LEVEL" im Abschnitt xkb_symbols zu tun, der Control (anstelle von ISO_Level5_Shift) als Level5-Modifizierer verwendet:

 key <AC07> { [ j, J, plusminus, NoSymbol, Return ], type[Group1]= "LOCAL_EIGHT_LEVEL" }; 

Das Problem dieser Lösung - xkb setzt das Steuerbit und Control-j gibt Control-Return statt nur Return zurück. Manchmal (oftmals übrigens) funktioniert diese Kombination nicht als Return.

Was ich also brauche, ist eine dieser Lösungen zu modifizieren, um das Control-Bit für Control-j-Kombinationen aufzuheben.

Entsprechend diesem Link: Arch Wiki-Artikel über XKB ist zwar möglich, aber ich weiß nicht, wie das geht. Das ist meine Frage.

Vielleicht muss ich eine xkb_compatibility-Regel für Return + Control oder ähnliches hinzufügen oder ein paar xmodmap-Zuordnungen hinzufügen - alle Lösungen wären dankbar.

4

1 Antwort auf die Frage

5
Vasily

I've found solution for my question. You can assign an action for each key inside xkb_symbols section. Redirect is an action we need:

key <AC07> { [ j, J, plusminus, NoSymbol, NoSymbol ], type[Group1]="EIGHT_LEVEL_SEMIALPHABETIC", actions = [ NoAction(), NoAction(), NoAction(), NoAction(),  Redirect(key=<RTRN>, clearmods=all) ] }; 

Using this action you can clear existing modifiers or add new.