An XKB keyboard map that responds to the left and right shift key individually
- by mbfisher
First off, excuse my ignorance of X and XKB; I've been trying to hack together a solution in the hope of being able to achieve what I want without requiring a detailed grasp of it.
I'm trying to create an XKB keyboard map on Ubuntu 12.04 that allows me to stipulate which of the two shift keys constitutes the Level2 modifier. Specifically, the 4 key should only produce a $ when the right shift is held, not the left.
My reading so far:
http://www.charvolant.org/~doug/xkb/html/node5.html
http://people.uleth.ca/~daniel.odonnell/Blog/custom-keyboard-in-linuxx11
http://www.x.org/releases/X11R7.5/doc/input/XKB-Enhancing.html
Lots of searching!
I've attempted to define a custom type, and then refer to it explicitly in a symbols map:
/usr/share/X11/xkb/types/mbfisher:
default xkb_types "mbfisher" {
type "RIGHT_SHIFT" {
modifiers = None+Shift_R;
map[None] = Level1;
map[Shift_R] = Level2;
};
}
/usr/share/X11/xkb/symbols/mbfisher:
default
partial alphanumeric_keys
xkb_symbols "basic" {
name[Group1]= "mbfisher";
key <AE04> {
type= "RIGHT_SHIFT",
symbols[Group1]= [ 4, dollar ]
};
};
I'm then selecting the map with the Ubuntu Keyboard Layout GUI.
This obviously disables the alphanumeric keyboard apart from the 4 key, but the dollar sign can still be typed with either shift key.
I'm conscious of writing a massive question with lots of useless information so I'll stop here; please ask for anything I've missed out.
Any ideas?