Пробел как ключ-модификатор 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. Если он не используется с другим ключом, то место освобождается при отпускании ключа.

Другие вопросы по тегам