dai*_*isy 5 keyboard-shortcuts openbox
我需要使用Fn+CTRL作为组合键,但它在 openbox 中不起作用(在 XFCE / KDE4` 中起作用)。
<keybind key="Fn-C">
<action name="ToggleMaximize">
</action>
</keybind>
Run Code Online (Sandbox Code Playgroud)
动作名称是完全正确的,它适用于其他组合键,例如W-3。
那么,有什么想法吗?
不同的窗口管理器可以使用不同的键盘映射,并且键映射定义了如何Fn识别您的按键。这就是为什么在 XFCE 中有效的方法不一定在 Openbox 中有效。
要检查 X(和 Openbox)如何解释您的Fn密钥,请遵循本指南。
根据结果,您可以使用适当的键符号rc.xml代替Fn。例如,
Fn在我的 Thinkpad 上被识别。XF86WakeUp如果没有分配符号,您可以按照本指南使用 xmodmap 手动分配一个符号,然后在rc.xml.
进一步调查发现,Fn 是某些笔记本电脑(例如 IBM/Lenovo Thinkpad)上的特殊键,因为 和Keypress事件Keyrelease(或Keydown用KeyupMicrosoft 术语来说)是同时生成的,并且仅在释放该键时才会生成。按下时进一步按键Fn将不会被记录*。使用xev,您可以轻松检查您的系统是否也出现这种情况。
这意味着Fn不能用作修饰键(与其他键组合,如Alt,Ctrl或Shift)。不过,它可以单独指定为快捷方式。结合Openbox的钥匙串,这几乎和用它作为修改器一样好。您只需在按下与之组合的键之前释放它即可。
*至少在 Thinkpad 上必须有某种注册按键的方法,因为联想自己的 Windows 工具确实会对其他按键做出反应。但这似乎发生在非常低的水平。当我在 Windows 主机上的 VMWare 来宾中时,按加键会在 Windows 主机中打开相应的工具,而不是在来宾操作系统中。研究类似 Thinkpad 工具在 Linux 上的实现,看看它们如何处理.FnFnFnFn
在这里,您可以找到更多有关Fn+Fx键组合如何生成 ACPI 事件(Thinkpad 工具对此做出反应)的特定于 Thinkpad 的信息。但是,我认为这些事件仅针对特定的按键组合生成Fx,而不针对其他按键组合生成。
该页面还介绍了如何使 ACPI 事件触发按键事件。然而,如果Fnkeydown 和 keyup 不生成它们自己的单独事件(我相信它们在 Thinkpad 上不会),那么这并不能真正让您更进一步。