我有一台运行 Ubuntu(之前是 14.04)的 Thinkpad X1(第一代)
它的侧面有多媒体按钮: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 尝试(并失败)获取此密钥?
答案1
如果您没有gnome-shell
以桌面环境运行,您的媒体键将出现问题。它们由 进行配置和处理gnome-settings-daemon
,但gnome-shell
自 以来由 抓取2013 年提交的。
要在没有运行或统一的情况下恢复旧行为gnome-shell
,您必须安装并运行 shim 程序来获取和转发密钥。
对于媒体键功能,arch linux AUR 包中提供了这样的程序gnome-设置-守护进程-兼容. 该软件包提供了可执行文件/usr/lib/gnome-settings-daemon/gnome-fallback-media-keys-helper
,它为任何桌面环境/窗口管理器中的媒体键提供支持。
您需要将其添加为 gnome 会话的依赖项,或者让它在会话初始化时运行。我不确定它是否为 ubuntu 打包,或者您是否可以运行unity-fallback-media-keys-helper
(我没有安装任何程序来检查)。