По-перше, вибачте моє незнання X та XKB; Я намагався зламати рішення разом, сподіваючись досягти того, що хочу, не вимагаючи детального розуміння цього.
Я намагаюся створити карту клавіатури XKB на Ubuntu 12.04, яка дозволяє мені визначити, яка з двох клавіш зсуву є модифікатором рівня 2. Зокрема, 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.
Це, очевидно, відключає буквено-цифрову клавіатуру, крім 4клавішної, але знак долара все одно можна набрати за допомогою будь-якої клавіші зсуву.
Я усвідомлюю, що пишуть велике запитання з великою кількістю непотрібної інформації, тому зупинюсь тут; будь ласка, запитайте про все, що я пропустив.
Будь-які ідеї?