![将 Synapse 快捷键绑定到 key-release 而不是 key-press](https://linux22.com/image/1102749/%E5%B0%86%20Synapse%20%E5%BF%AB%E6%8D%B7%E9%94%AE%E7%BB%91%E5%AE%9A%E5%88%B0%20key-release%20%E8%80%8C%E4%B8%8D%E6%98%AF%20key-press.png)
背景
所以我已经提到了一个问题,演示了如何将 Synapse 启动器绑定到“超级(Win)键”。(我可以单独将 Synapse 的快捷方式更改为 Super/Windows 键吗?)
问题是,现在涉及 Super 键的组合都会启动 Synapse。
我相信发生这种情况是因为 Synapse 是在按钮按下事件中被激活的,而不是在按钮释放事件中被激活,就像使用 Unity 或在 Windows 上使用时一样。
问题
在 Ubuntu 中是否有任何方法可以将快捷方式绑定到按钮释放事件?这样,我就可以在其他组合中使用 Super 按钮,例如“Super + D”用于显示桌面等。
环境
我在 Ubuntu 14.04 LTS 上使用 Gnome(Compiz)Flashback 会话环境。
答案1
ksuperkey
对我来说效果很好。我按照以下说明操作:
https://blog.hanschen.org/2012/10/17/open-application-launcher-with-super-key/
除此之外,我使用的是 Ubuntu 16.04 + MATE,所以我所做的是:
a) 在“首选项 --> 硬件 --> 键盘快捷键”中删除了 Alt+F1 作为 MATE 菜单的快捷键
b) 将 Alt+F1 设置为 Synapse 的快捷键:
cat ~/.config/synapse/config.json {
"ui" : {
"global" : {
"ui-type" : "default"
},
"shortcuts" : {
"activate" : "<Alt>F1"
}
}
}
c) 安装并运行ksuperkey
ksuperkey
现在执行从释放 Win 键(Super 键)到 的映射Alt+F1
,这会触发 MATE 启动 Synapse。同时,涉及 Win 的其他组合也可以正常工作,而无需调用 Synapse。(特别是,我设置了 Win + M 以最小化所有窗口并显示桌面,这对我很重要)。
请注意,它ksuperkey
非常灵活,可以映射任何键的释放以发送任何组合键,而不仅仅是 Alt+F1(默认值)。
d) 将 ksuperkey 添加到启动应用程序