如何找到*为什么*我无法绑定某些键盘快捷键(或哪个应用程序使用了它)?


14

简而言之:(在Unity下)是否有任何方法可以找出哪个应用程序获取了某些全局快捷方式?我不要求“标准快捷方式”,而是要求以某种方式获取有关实际快捷方式的信息(哪个应用程序实际上在我当前的配置中实际上一直保持着给定的密钥)

更长的故事:

我在管理键盘快捷键时遇到可重复的问题。在这一刻:

  • Synapse有时(*)无法绑定Win-Space,因为它是激活快捷方式,报告“无法用签名'space'注册热键'activate'”(通常表示该快捷方式已被使用)

    (*)一次登录后有效,而另一次登录后无效。我怀疑两个应用程序之间存在竞争...

  • F9由于某种原因使我的屏幕略暗(F9无法到达应用程序级别的快捷方式,因此例如我的byobu菜单不起作用)

我试着在各个地方看,并且:

  • 没有看到任何的快捷键在键盘设置/快捷键

  • 我在gconf-editor中找不到它们(我尝试特别搜索值中的F9,未找到任何内容)

  • 我在dconf编辑器中找不到它们(没有搜索,因此我单击了一些最明显的路径)

所以我的问题是:有没有办法询问unity / dconf / gconf / d-bus /有关当前全局热键分配的任何信息(哪个过程保留哪个密钥)。或强制将这些分配记录到某个日志文件中。或从某处grep他们。要么………


您能否澄清或定义(出于这个问题的目的)全局快捷方式是什么意思?

我按和关键引起一些无关的当前活动窗口的情况发生。例如,全局快捷方式Win-S打开博览会视图,全局快捷方式Alt-Tab切换窗口,F12(在我的设置中)打开tilda下拉终端等,而且,正如我所说,每当我按F9时,屏幕就会变暗,并且我不知道哪个应用程序可以这样做以及为什么。有时会抢夺Win-space。在过去,我碰巧看到F12离开了tilda(幸运的是,这个问题消失了)。因此,我很高兴有一些方法可以检查这些键盘分配。
Mekk 2013年

我认为F9可能会激活小部件覆盖,但是自从我使用Unity以来,已经花了很多时间。也许在CCSM中寻找。
Rasmus 2014年

请查看askubuntu.com/questions/101226/…wiki.ubuntu.com/Keybindingssuperuser.com/questions/152367/…-描述了多个位置,例如在dconf或gconf中,Unity存储了其快捷方式。也许您想查看这些页面以获取任何新信息?
字节指挥官

Answers:


2

在12.10和17.04之间,Ubuntu桌面实际上是 Compiz,而Unity本身只是Compiz插件。

相反,如果您设置并启用Compiz“ commands”插件,并在发生冲突的情况下使用CCSS设置键盘快捷键,CCSM应提醒您引起冲突的插件,并提供禁用冲突的插件或冲突的键绑定的选项。在应用您的设置之前。

就个人而言,在14.04以上版本中设置键盘快捷键也遇到了困难,但是自从我决定开始使用CCSM插件而不是Unity中的键盘快捷键设置以来,我还没有遇到任何问题,我所有的快捷键都可以正常工作,因此强烈建议您至少将其签出。


1

现在我明白了您的需求...

sudo apt-get install evtest

享受分拆Ubuntu Ubuntu HID活动!

警告:这在PS2 /风格的键盘上不起作用...(但是谁又在使用它呢?):-)


不能完全解决我的问题,但肯定有用。不过,我很好奇实际上保留了这些活动绑定的地方是什么,以及是否可以进行自省(gsettings是许多应用程序从它们读取的位置,但并非每个应用程序都必须使用gsettings ...)
Mekk

如果您将上述命令的输出提供给我,我可以为您提供帮助...如果您想知道为什么,建议您阅读:wiki.archlinux.org/index.php/Extra_keyboard_keys ,然后您将赞赏它的有效性根本!!!;-)
Fabby 2014年

本文不是我要问的问题-我不问如何将键从物理按键转换为符号(尽管这也很有趣,有时会造成混淆)。我问一个简单的问题:哪个程序实际上保留并应用了全局键盘快捷键,以及是否存在任何使我能够自省或追踪这些分配的util或API。
Mekk 2014年

(当我开始团结时,它会注册Alt-F2,Alt-F4,Win-S等。当我开始突触时,它会注册Win-space,当我启动yakuake时,它会注册F12等-根据我的配置,后者是两个-但他们在其中注册这些密钥的地方是什么,以及如何访问该地方?)
Mekk 2014年

哦,现在我明白了……有一种叫做的东西,evtest但是只做USB的东西!另一方面,如果您使用没有PS / 2样式键盘的笔记本电脑或台式机,这正是您所需要的!
Fabby 2014年

1

我的较早答案之一

首先,您必须安装xdotool

sudo apt-get install xdotool

我编写了一系列命令,向我们展示了按键时的被动抓斗。例如,要查看是什么抓住了Shift + PrintScreen组合,可以使用下面的“脚本”:

xdotool keydown "shift+Print"; xdotool key "XF86LogGrabInfo"; xdotool keyup "Print"; sleep 1; xdotool keyup "shift"; tail /var/log/Xorg.0.log

这将触发Shift + PrtSc键事件,并且在默认的Ubuntu安装中将显示gnome-settings-daemon抓取键盘。至少这在我较旧的12.04安装中有效,但是在14.04上看起来像我必须使用此功能:

xdotool key "shift+Print"; sleep 1; xdotool key "XF86LogGrabInfo"; xdotool keyup "Print"; sleep 1; xdotool keyup "shift"; tail /var/log/Xorg.0.log

xdotool keydown "F12"; xdotool key "XF86LogGrabInfo"; xdotool keyup "F12"; tail /var/log/Xorg.0.log

有时仍然有效,有时则不行。不知道为什么。

您只需要通过更改必须模拟的键来修改上述“脚本”。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.