Alt binden, aber nicht Altgr in i3

Alt binden, aber nicht Altgr in i3

Ich verwende Mod4 für die meisten Tastenkombinationen in i3, aber hierfür verwende ich Mod1:

bindsym Mod1+a workspace a
bindsym Mod1+b workspace b
bindsym Mod1+c workspace c
bindsym Mod1+d workspace d
...

Dies bindet jedoch sowohl Alt als auch Altgr, was unerwünscht ist, da ich zum Eingeben einiger Zeichen Altgr+<Buchstabe> verwende.

xev sagt, alt ist Alt_L und altgr ist Alt_R, bindsym Alt_L+afunktioniert aber nicht

Antwort1

Letztlich kommt es darauf an, wassimon_simonwird für Mod1 angezeigt. Wenn beispielsweise angezeigt wird, dass Alt_Lund Alt_Rsich auf demselben Modifikator befinden, müssten Sie letzteren auf einen anderen (der 5 verfügbaren Modifikatoren) verschieben, um Konflikte zu vermeiden.

Hier einige Seiten mit Beispielen:

Eine Gefahr bei der Verwendung xmodmapbesteht darin, dass es nicht immerwissender richtige Tastencode für ein Tastensymbol (wie Alt_R). Wenn ich darauf stoße, kann ich es normalerweise umgehen, indem ich in der Ausgabe von nachschaue

xmodmap -pk

für den SchlüsselSymbolxmodmap -pk, und weisen Sie im Skript diesen Schlüsselcode zu. Auf einer Maschine wird beispielsweise

108         0xffea (Alt_R)  0x0000 (NoSymbol)       0xffea (Alt_R)

und mit diesem Skript

keycode 108 = Alt_R
remove mod1 = Alt_R
add mod3 = Alt_R

ändert die Ausgabe von diesem:

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

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

dazu:

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

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

(Für diese spezielle Maschine ist die Problemumgehung nicht erforderlich).

verwandte Informationen