在我的笔记本电脑上,我使用Win作为修饰符。按下该Fn键后,该键会发送不同的键符号,我将其用作撰写键。
keycode 133 = Hyper_L
keycode 134 = Multi_key
add mod4 = Hyper_L
Hyper我有一些+形式的窗口管理器键绑定。在笔记本电脑上,这需要按住,然后按住,然后按下,最后释放所有内容。如果我按before ,则会发送键符号而不是,所以我按 Compose。我发现以前按压所需的手指协调性要少得多,所以我希望能够做到这一点。如果我随后按下键盘按键(需要),我希望按键被解释为修饰符而不是。KP_NWinFnKP_NFnHyperMulti_key
Hyper_L
FnHyperFnmod4
Multi_key
我可以将mod4
修饰符添加到键符号中Multi_key
,这使得我的窗口管理器绑定在我按任一顺序按下Fn和时都可以工作。Hyper但是,如果我先按Fn(这是自然发生的方式),这会记录一个键符号,因此像+ + 、、Multi_key
这样的键序列最终会切换到工作区 1 并插入而不是,因为应用程序在键盘快捷键之后获得焦点activates 接收 的按键释放事件。FnHyperKP_1a'á
'a
Multi_key
我怎样才能鱼与熊掌兼得呢?
- 如果我按任一顺序按Hyper和Fn,然后按键盘键,这应该只会触发我的窗口管理器绑定,而不会留下待处理的
Compose
.应用程序不应该接收 的按键释放事件Multi_key
,或者应该接收另一个事件(由窗口管理器注入),该事件将有效地取消第一个事件。 - 如果我按住并Fn按下Hyper,然后松开它们,这应该发送 的按下和释放事件
Multi_key
。
我不介意这是否是通过更改键盘配置或窗口管理器绑定或两者来完成的。窗口管理器是锯鱼,所以它非常灵活。
如果解决方案涉及 XKB,我不想通过 XKB 定义我的整个键盘配置。 XKB 部分应该专注于为受影响的键(或任何需要的东西)定义一个组。