xkb should be extended to be able to recognize a sequence of key presses and key releases and fire action upon it. Again, this would be an extension, not a violation of current standard.
Currently, the group switching is defined in /usr/share/X11/xkb/symbols/group with parts like
At least this is my impression after a day of investigation. I know this seems like unnecessarily big change compared to Ilya's patch. But, basically, that is what I mean by "clean solution". Unfortunatelly, it is more of a "dream solution", since I feel I will hardly be able to code this..
xkb should be extended to be able to recognize a sequence of key presses and key releases and fire action upon it. Again, this would be an extension, not a violation of current standard.
Currently, the group switching is defined in /usr/share/ X11/xkb/ symbols/ group with parts like
partial modifier_keys toggle" { modifiers Alt;
symbols[ Group1] = [ NoSymbol, ISO_Next_Group ],
virtualMods= Alt
type[Group1] ="PC_ALT_ LEVEL2" ,
symbols[ Group1] = [ Shift_L, ISO_Next_Group ]
xkb_symbols "lalt_lshift_
virtual_
key <LALT> {
};
key <LFSH> {
};
};
The following is what this part of the file would look like after appropiate changes in xkb code:
xkb_sequences "lalt_lshift_ toggle" {
sequence { keydown <LALT>, keydown <LFSH>, keyup <LFSH> } = ISO_Next_Group;
sequence { keydown <LFSH>, keydown <LALT>, keyup <LALT> } = ISO_Next_Group;
}
For this to work www.x.org/ docs/XKB/ XKBproto. pdf need to be extended with a small chapter cgit.freedeskto p.org/xorg/ xserver/ tree/xkb - code the run time check for sequences; changes to xkm format required cgit.freedeskto p.org/xorg/ app/xkbcomp/ tree/ - code the parsing of "xkb_sequences", "keydown", and "keyup" keywords
1) http://
2) http://
3) http://
At least this is my impression after a day of investigation. I know this seems like unnecessarily big change compared to Ilya's patch. But, basically, that is what I mean by "clean solution". Unfortunatelly, it is more of a "dream solution", since I feel I will hardly be able to code this..