Прежде всего, извините за мое незнание X и XKB; Я пытался собрать решение в надежде достичь того, чего я хочу, не требуя его детального понимания.
Я пытаюсь создать карту клавиатуры XKB в Ubuntu 12.04, которая позволяет мне указать, какая из двух клавиш Shift является модификатором Level2. В частности, клавиша 4 должна генерировать только $
когда удерживается правое смещение, а не левая.
Мое чтение до сих пор:
- 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
- Много поиска!
Я попытался определить пользовательский тип, а затем явно обратиться к нему в карте символов:
/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 ]
};
};
Затем я выбираю карту с помощью Ubuntu Keyboard Layout GUI.
Это, очевидно, отключает буквенно-цифровую клавиатуру, кроме клавиши 4 , но знак доллара все еще можно набрать любой клавишей Shift.
Я собираюсь написать огромный вопрос с большим количеством бесполезной информации, поэтому я остановлюсь здесь; пожалуйста, спросите обо всем, что я пропустил.
Есть идеи?