媒体密钥不适用于Ubuntu 17.10
我在Thinkpad T470上运行了一个非常全新的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
。
我最近遇到了同样的问题,在失去了很多时间之后,我在一些Arch论坛上找到了答案。
整个问题看起来像是’它不是一个bug,它是来自Gnome开发者的特色’。
简而言之:当您按下媒体按钮时,它会生成一个键码,然后将其转换为命令。 假设你按下播放/暂停按钮。 它生成密钥代码162和命令XF86AudioPlay。
现在,几乎所有可能正在等待此事件的媒体应用程序(无论是VLC,图腾,kodi,spotify等)都希望获得纯XF86AudioPlay命令。 Gnome做了什么? 它拦截此命令并将其转换为自己的命令“play”。 因此,xev和xbindkeys都没有正确显示此事件 – 它们从未收到他们可以理解的命令。
当您按下媒体按钮时,Gnome会收到命令并检查是否有任何应用程序已识别为能够接收此命令。 如果有(让我们说图腾,rhytmbox,也许是VLC)它会发送应该起作用的“游戏”。 如果没有识别出能够接收此命令的应用程序,Gnome将显示附加到第一个post的符号,并且不会在任何地方发送任何命令。
解决方案很简单 – 让Gnome无法拦截媒体密钥事件。 安装dconf-editor,转到org.gnome.settings-daemon.plugins.media-keys并将任何应该起作用的按钮从XF86SomeExapmle更改为none(”)。 这样任何应用程序都应该直接接收键命令。
如果键盘媒体键无法在Ubuntu桌面上运行,则可以使用D-Bus支持向Spotify发送正确的命令。 从控制台validation以下命令:
播放/暂停
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/
最后两个答案的组合对我有用。 我有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
但是当我去活动 – >键盘并尝试使用Play / Next / Previous做任何事情时它根本不起作用。 当我停用默认密钥关联(调用密钥关联对话框,按退格键并单击保存)并创建一个全新的工具时,非常有帮助的是来自@foamboarder的答案
现在,即使从睡眠模式唤醒计算机后,快捷程序设置中的此屏幕截图现在看起来也能正常工作
似乎没有相应地映射键码。 您可以按照ubuntu文档中的说明手动映射密钥: https : //help.ubuntu.com/stable/ubuntu-help/keyboard-shortcuts-set.html
- 打开活动概述,然后开始键入键盘。
- 单击键盘以打开面板。
- 选择“快捷方式”选项卡。
- 在左窗格中选择一个类别,在右侧选择所需操作的行。 当前的快捷方式定义将更改为新加速器…
- 按住所需的组合键,或按Backspace键清除。