当按下多媒体键时,操作系统会发生什么?

当按下多媒体键时,操作系统会发生什么?

当我按下媒体键(播放/暂停、下一个、上一个)时,会调用哪些命令?

我看了在终端中模拟媒体按键,我的要求也一样,只是我不能使用答案中的方法。答案使用模拟按键本身xdotools,但我无法做到这一点,因为我已经重新映射了这些按键的功能。我想知道的是操作系统中向需要知道多媒体按键被按下的应用程序发送消息的底层机制。我怀疑它可能与 dbus 有关。

背景

我必须将我的媒体键(播放/暂停、下一个、上一个)重新映射到其他命令 此链接包含一些背景信息

我通过删除这些媒体键的先前键绑定并在设置>键盘>快捷键中重新分配它们来实现此目的。

我想知道原始命令,以便我可以spotify-command ; original-command在按键时调用,而不仅仅是调用spotify-command

答案1

当你按下多媒体键时,它们有可以使用命令了解的键符号xmodmap -pke | grep Audio

例子:

$ xmodmap -pke | grep Audio
keycode 121 = XF86AudioMute NoSymbol XF86AudioMute
keycode 122 = XF86AudioLowerVolume NoSymbol XF86AudioLowerVolume
keycode 123 = XF86AudioRaiseVolume NoSymbol XF86AudioRaiseVolume
keycode 171 = XF86AudioNext NoSymbol XF86AudioNext
keycode 172 = XF86AudioPlay XF86AudioPause XF86AudioPlay XF86AudioPause
keycode 173 = XF86AudioPrev NoSymbol XF86AudioPrev
keycode 174 = XF86AudioStop XF86Eject XF86AudioStop XF86Eject
keycode 175 = XF86AudioRecord NoSymbol XF86AudioRecord
keycode 176 = XF86AudioRewind NoSymbol XF86AudioRewind
keycode 198 = XF86AudioMicMute NoSymbol XF86AudioMicMute
keycode 208 = XF86AudioPlay NoSymbol XF86AudioPlay
keycode 209 = XF86AudioPause NoSymbol XF86AudioPause
keycode 215 = XF86AudioPlay NoSymbol XF86AudioPlay
keycode 216 = XF86AudioForward NoSymbol XF86AudioForward
keycode 234 = XF86AudioMedia NoSymbol XF86AudioMedia
$

从您提供的链接来看,这些命令应该适用于您的自定义键盘快捷键

在此处输入图片描述

播放/暂停

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

停止

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

为......而玩

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

相关内容