gnome-settings-daemon从升级16.04开始抓取多媒体密钥并丢弃静音

我有一台运行Ubuntu的Thinkpad X1(第一代)(之前在14.04)

它的侧面有多媒体按钮:XF86Launch1,XF86AudioMute,XF86AudioRaiseVolume,XF86LowerVolume和XF86AudioMicMute。 他们过去在14.04工作正常,甚至达到“静音”键内的小橙色灯在静音时亮起并在没有时关闭的程度。

我升级到16.04,他们都没有工作了。

我意识到他们被Gnome-control-center或unity-control-center访问的键盘快捷键所吸引(但未被使用)。

当我关闭媒体键的键盘快捷键时,我随后能够看到xev的密钥代码,因此可以使用类似xbindkeys的东西来解决问题。

除了输入静音之外的所有静音都不起作用。 所以我查看了acpi_listen并看到按钮正在注册,就像其他媒体键一样,但当我按下它时,我看到:

(gnome-settings-daemon:14711): GLib-GIO-WARNING **: Dropping signal AcceleratorActivated of type (uuu) since the type from the expected interface is (ua{sv}) 

当我杀死gnome-settings-daemon然后我可以正确地看到xev中的输入静音键并根据需要抓取它。

如何让gnome-settings-daemon不要尝试(并且没有)抓住这个密钥?

如果您没有将gnome-shell作为桌面环境运行,那么您的媒体密钥就会出现问题。 它们由gnome-settings-daemon配置和处理,但自2013年提交以来被gnome-shell抓取。

要在不运行gnome-shell或unity的情况下恢复旧行为,必须安装并运行填充程序来获取和转发密钥。

对于媒体键function,这样的程序在arch linux AUR包gnome-settings-daemon-compat中可用。 该软件包提供可执行文件/usr/lib/gnome-settings-daemon/gnome-fallback-media-keys-helper ,它在任何桌面环境/窗口管理器中提供对媒体密钥的支持。

您需要将其添加为您的gnome会话的依赖项,或者让它在会话init中运行。 我不确定它是否为ubuntu打包,或者你是否可以运行unity-fallback-media-keys-helper (我没有安装来检查)。