媒体键在 Ubuntu 17.10 上不起作用

媒体键在 Ubuntu 17.10 上不起作用

我在 Thinkpad T470s 上运行全新的 Ubuntu 17.10 安装。

每当我按下任何一个键盘或蓝牙耳机上的某个媒体键(播放/暂停、跳过等)时,我都会看到这个图标:

媒体键弹出窗口表示不允许执行任何操作

显示器上闪烁,但我的媒体播放器均无反应。

密钥被识别于showkey

~$ sudo showkey -k
press any key (program terminates 10s after last keypress)...
keycode 163 press
keycode 163 release
keycode 165 press
keycode 165 release
keycode 164 press
keycode 164 release

但它们并没有出现在xev

答案1

整个问题看起来就像是 Gnome 的一个“这不是一个错误,而是一个功能”。

简而言之:当您按下媒体按钮时,它会生成一个键码,然后将其转换为命令。假设您按下播放/暂停按钮。它会生成一个键码 162 和一个命令 XF86AudioPlay。

现在,几乎每个可能正在等待此事件的媒体应用程序(无论是 VLC、totem、kodi、spotify 等)都希望收到纯 XF86AudioPlay 命令。Gnome 会做什么?它会拦截此命令并将其转换为自己的命令“播放”。因此,xev 和 xbindkeys 都无法正确显示此事件 - 它们从未收到它们可以理解的命令。

当您按下媒体按钮时,Gnome 会接收命令并检查是否有任何应用程序被识别为能够接收此命令。如果有(比如 totem、rhytmbox,也许是 VLC),它会发送应该可以工作的“播放”。如果没有应用程序被识别为能够接收此命令,Gnome 将显示附在第一篇帖子上的标志,并且不会向任何地方发送任何命令。

解决方案很简单 - 让 Gnome 无法拦截媒体键事件。安装 dconf-editor ,转到 org.gnome.settings-daemon.plugins.media-keys 并将任何应该工作的按钮从 XF86SomeExample (例如XF86AudioPlay) 更改为 none ('')。这样,任何应用程序都应该直接接收按键命令。

答案2

如果键盘媒体键在 Ubuntu 桌面上不起作用,您可以使用 D-Bus 支持向 Spotify 发送正确的命令。从控制台验证以下命令:

播放/暂停

dbus-send --print-reply --dest=org.mpris.MediaPlayer2.spotify /org/mpris/MediaPlayer2 org.mpris.MediaPlayer2.Player.PlayPause

下一个

dbus-send --print-reply --dest=org.mpris.MediaPlayer2.spotify /org/mpris/MediaPlayer2 org.mpris.MediaPlayer2.Player.Next

以前的

dbus-send --print-reply --dest=org.mpris.MediaPlayer2.spotify /org/mpris/MediaPlayer2 org.mpris.MediaPlayer2.Player.Previous

启用媒体键快捷方式

要将这些绑定到键盘,请转到“设置”>“键盘”>“快捷键”>“自定义快捷键”,然后使用 进行“添加” +。使用上述命令之一,然后按下要绑定到新命令的键。

在此处输入图片描述

来源

https://fabianlee.org/2016/05/25/ubuntu-enabling-media-keys-for-spotify/

答案3

对于某些人来说,这可能是与浏览器相关的问题,例如(Google Chrome)“保留”了媒体密钥。即使没有浏览器媒体,这些密钥也会分配给 Chrome。

解决方案:

  1. 将 chrome://flags/#hardware-media-key-handling 粘贴到 Chrome;
  2. 将“硬件媒体密钥处理”选择为“禁用”——这是第一个选项;
  3. Chrome 应该要求“重新启动”,接受并继续享受应用程序!

答案4

最后两个答案的组合对我有用。我有 Ubuntu 18.04,键盘测试有效

~$ sudo showkey -k
press any key (program terminates 10s after last keypress)...
keycode 163 press
keycode 163 release
keycode 165 press
keycode 165 release
keycode 164 press
keycode 164 release

但当我去活动 -> 键盘尝试使用“播放/下一个/上一个”进行任何操作,它根本不起作用。当我停用默认键关联(调用键关联对话框,按退格键并单击保存)并创建全新的键关联时,它起作用了,@foamboarder 的回答非常有帮助

现在看起来像这样快捷方式设置的屏幕截图即使将计算机从睡眠模式唤醒后,一切现在都正常工作

相关内容