
Я пытаюсь улучшить раскладку клавиатуры xkb
, используя 4 уровня по умолчанию (или, лучше сказать, 2 уровня? Я не очень разбираюсь в терминах).
И когда я открываю скобки, я обнаружил, что xkb очень плохо документирован (или я не знаю, как искать). Некоторые говорят об уровнях, некоторые о группах, некоторые определяют уровни как shift, являющийся первым, AltGr, второй, а другие считают базовый символ первым, а затем увеличивают каждую комбинацию. Я имею в виду, что есть много несоответствий..)
В любом случае, вот 4 «комбинации» клавиш по умолчанию Mна некоторых клавиатурах:
// Pressing <M> <Shift+M> <AltGr+M> <Shift+AltGr+M>
key <AB07> { [ m , M , mu , mu ] }; // m M µ µ
Можно ли добавить в смесь другие модификаторы?
Например, с одним дополнительным модификатором, например, R CtrlI, может быть 6 комбинаций:
// Pressing <M> <Shift+M> <AltGr+M> <AltGr+Shift+M> <RCtrl+M> <RCtrl+Shift+M>
key <AB07> { [ m , M , mu , mu , comma , semicolon] };// m M µ µ , ;
Или даже 8 комбинаций со всеми тремя модификаторами.
И на самом деле, похоже, что в некоторых symbol
файлах уже есть 8-уровневое сопоставление с ключевым словомEIGHT_LEVEL
Однако я не собираюсь получать 42 комбинации для одного ключа.
Вместо этого я просто хочу избежать неудобных для моих пальцев комбинаций и поэтому предпочитаю иметь только ограниченное количество комбинаций с «прямым доступом», например так:
// Pressing <M> <Shift+M> <AltGr+M> <RCtrl+M> <RWin>+M
key <AB07> { [ m , M , comma , semicolon , µ ] }; // m M , ; µ
Я бы также хотел сопоставить других персонажей или даже движения.(стрелки, домой/в конец, страница вверх/вниз)с другими неиспользуемыми модификаторами (capslock, numlock)
Как я могу это сделать ?
Большое спасибо.
решение1
Там вы можете использовать group
для достижения цели «два нажатия клавиши»:
key <AB07> {
type[group1]= "FOUR_LEVEL",
type[group2]= "TWO_LEVEL_BIS",
symbols[group1]= [ m , M , comma , NoSymbol],
symbols[group2]= [ semicolon , µ ]
};
Теперь вам необходимо определить type
TWO_LEVEL_BIS
для использования нужных вам модификаторов.
Стоит знать, что Mode_switchтакое ключ, который увеличивает фактическую группу, поэтому взгляните на его определение.