Пробел как ключ-модификатор XKB
Фон:
В конечном итоге, я пытаюсь настроить пользовательскую раскладку клавиатуры одной рукой, похожую на эту демонстрацию(нажмите one-handed typing demo
).
XKB используется во многих дистрибутивах Linux. В Википедии есть достойное описание xkb
,
В интерфейсах человек-компьютер расширение X-клавиатуры или XKB является частью системы X Window, которая расширяет возможности управления клавиатурой по сравнению с тем, что предлагается в базовом протоколе X Window System. Основными особенностями этого расширения являются:
К сожалению, для достижения этой функциональности я должен сделать пробел модификатором.
Вопрос:
Как бы вы установили клавишу пробела в качестве модификатора в программе XKB?
http://www.charvolant.org/~doug/xkb/html/node3.html
Похоже, что пространство не может быть модификатором по умолчанию.
3 ответа
Я обнаружил, что Space2Ctrl - лучший инструмент для этого переназначения. Очень просто, не требует никакой настройки и работает как задумано, без лишних задержек. Я пробовал keydouble, но оно показало заметную задержку, прежде чем на экране показывалось пространство
Я думаю, у вас возникнут огромные трудности с получением "крана в космос"; удерживайте, чтобы изменить поведение.
Тем не менее, вы можете использовать xkbcomp :0.0
сбросить текущую раскладку с сервера в файл server-0_0.xkb
и я думаю, что вижу простой способ заставить пробел функционировать как модификатор:
key <LALT> { [ Alt_L, Meta_L ] };
key <SPCE> { [ space ] };
....
modifier_map Mod1 { <LALT> };
modifier_map Lock { <CAPS> };
Попробуйте заменить space
с Mod5
(или какой ключ модификатора имеет больше смысла), а затем добавить новый modifier_map
линия:
key <LALT> { [ Alt_L, Meta_L ] };
key <SPCE> { [ Meta5 ] };
....
modifier_map Mod1 { <LALT> };
modifier_map Lock { <CAPS> };
modifier_map Meta5 { <SPCE> };
Это не проверено, но кажется правильным.
Я не знаю, как вы получите простое старое пространство, хотя. Я бы предложил полностью сопоставить его с другим ключом.
Подумайте об использовании keydouble. Это утилита пользовательского пространства, которая присоединяется к X и продолжает захватывать и обрабатывать события клавиатуры. Конфигурация по умолчанию, представленная в examples/keydoublerc
делает именно то, что вы хотите - пространство становится Ctrl. Если он не используется с другим ключом, то место освобождается при отпускании ключа.