媒体密钥在 Ubuntu 17.10 上不起作用

Nil*_*ann 35 keyboard shortcut-keys media-buttons 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
Run Code Online (Sandbox Code Playgroud)

但他们没有出现在xev.

小智 38

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

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

现在几乎所有可能正在等待此事件的媒体应用程序(无论是 VLC、totem、kodi、spotify 等)都希望收到纯 XF86AudioPlay 命令。侏儒是做什么的?它拦截这个命令并将其翻译成它自己的命令“播放”。因此,xev 和 xbindkeys 都没有正确显示此事件 - 它们永远不会收到他们可以理解的命令。

当您按下媒体按钮时,Gnome 会收到命令并检查是否有任何应用程序被识别为能够接收此命令。如果有(比方说图腾,rhytmbox,也许是 VLC),它会发送应该有效的“播放”。如果没有被识别为能够接收此命令的应用程序,Gnome 将显示附加到第一篇文章的标志,并且不会向任何地方发送任何命令。

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

  • 这很好用。如果您在 Gnome 设置-键盘-媒体键中禁用播放/暂停,Kodi 可以使用它。但是对于快进和快退,仍然会出现上面的“not-works”符号,但我不知道要禁用什么。媒体键中未提及快速 FF/BW。 (2认同)
  • 我也在进行这些更改后重新启动(登录和注销可能就足够了)以使它们工作 (2认同)
  • 这仍然适用于 Ubuntu 18.04,至少对我来说不需要重新启动甚至注销 (2认同)

小智 34

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

播放/暂停

dbus-send --print-reply --dest=org.mpris.MediaPlayer2.spotify /org/mpris/MediaPlayer2 org.mpris.MediaPlayer2.Player.PlayPause
Run Code Online (Sandbox Code Playgroud)

下一个

dbus-send --print-reply --dest=org.mpris.MediaPlayer2.spotify /org/mpris/MediaPlayer2 org.mpris.MediaPlayer2.Player.Next
Run Code Online (Sandbox Code Playgroud)

以前的

dbus-send --print-reply --dest=org.mpris.MediaPlayer2.spotify /org/mpris/MediaPlayer2 org.mpris.MediaPlayer2.Player.Previous
Run Code Online (Sandbox Code Playgroud)

启用媒体键快捷方式

要将这些绑定到键盘,请转到“设置”>“键盘”>“快捷方式”>“自定义快捷方式”,然后使用+. 使用上面的命令之一,然后点击要绑定到新命令的键。

在此处输入图片说明

来源

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


小智 18

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

解决方案:

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

  • 我怀疑这就是问题所在,但不知道如何释放“保留”。实际上有什么方法可以自动将媒体键处理程序更改为正在运行的最新媒体应用程序吗?因为 YouTube 或其他 Chrome 应用程序的媒体键也很有用。 (3认同)
  • 这对我有用,无需更改任何其他配置和开箱即用。谢谢! (2认同)

小智 9

我发现,对于 2019 年 2 月 1 日的 Ubuntu 18.04 LTS,我需要做的就是:

  • 安装 dconf 编辑器
  • 导航到 org/gnome/settings-daemon/plugins/media-keys
  • 对于每个不工作的键:
    • 取消选中“使用默认值”
    • 点击申请
    • 重新选中“使用默认值”
    • 再次点击申请

有问题的媒体键现在应该立即起作用。

按照darkdude 的建议,不使用任何价值对我不起作用。

  • 我真的不明白为什么切换“使用默认值”有效,但它也对我有用+1 (2认同)

小智 0

键码似乎没有相应映射。\n您可以按照 ubuntu 文档中的说明手动映射键:\n https://help.ubuntu.com/stable/ubuntu-help/keyboard-shortcuts-set.html

\n\n
    \n
  1. 打开活动概述并开始输入键盘。
  2. \n
  3. 单击键盘打开面板。
  4. \n
  5. 选择快捷方式选项卡。
  6. \n
  7. 在左侧窗格中选择一个类别,然后在右侧选择所需操作的行。当前的快捷方式定义将更改为 New Accelerator\xe2\x80\xa6
  8. \n
  9. 按住所需的组合键,或按 Backspace 进行清除。
  10. \n
\n