背景:
最后,我尝试设置一个自定义的单手键盘布局,类似于这个演示(点击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
答案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> };
尝试替换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> };
这尚未经过测试,但它感觉正确的。
我不知道你怎么才能得到一个普通的空间不过。我建议将其完全映射到另一个键。
答案3
考虑使用键双。它是一个用户空间实用程序,可将其自身附加到 X 并继续抓取和处理键盘事件。提供的默认配置examples/keydoublerc
完全符合您的要求 - 空格变为 ctrl。如果它未与其他键一起使用,则在释放键时插入空格。