空格作为修饰键 XKB

空格作为修饰键 XKB

背景:

最后,我尝试设置一个自定义的单手键盘布局,类似于这个演示(点击one-handed typing demo)。

XKB 在许多 Linux 发行版中都有使用。Wikipedia 对 有详尽的描述xkb

在人机界面中,X 键盘扩展或 XKB 是 X Window 系统的一部分,它扩展了通过 X Window 系统核心协议提供的功能来控制键盘的能力。此扩展的主要功能包括:

不幸的是,为了实现此功能,我必须将空格键设为修饰符。

问题:

如何在 XKB 程序中将空格键设置为修饰键?

http://www.charvolant.org/~doug/xkb/html/node3.html

看来空格默认不能作为修饰符。

答案1

我找到空格2Ctrl是进行这种重新映射的最佳工具。非常简单,不需要任何配置,并且可以按预期工作而不会出现过多的延迟。我试过了键双但它在屏幕上显示空间之前引入了明显的延迟

答案2

我认为您在掌握“点击空格;按住转换”行为时会遇到巨大困难。

也就是说,你可以使用xkbcomp :0.0将当前的键盘映射从服务器转储到文件中server-0_0.xkb,然后我思考我看到了一种让空格键发挥修饰键功能的简单方法:

key <LALT> {         [           Alt_L,          Meta_L ] };
key <SPCE> {         [           space ] };
....
modifier_map Mod1 { <LALT> };
modifier_map Lock { <CAPS> };

尝试替换spaceMod5或最有意义的修饰键),然后添加新modifier_map行:

key <LALT> {         [           Alt_L,          Meta_L ] };
key <SPCE> {         [           Meta5 ] };
....
modifier_map Mod1 { <LALT> };
modifier_map Lock { <CAPS> };
modifier_map Meta5 { <SPCE> };

这尚未经过测试,但它感觉正确的。

我不知道你怎么才能得到一个普通的空间不过。我建议将其完全映射到另一个键。

答案3

考虑使用键双。它是一个用户空间实用程序,可将其自身附加到 X 并继续抓取和处理键盘事件。提供的默认配置examples/keydoublerc完全符合您的要求 - 空格变为 ctrl。如果它未与其他键一起使用,则在释放键时插入空格。

相关内容