Unity 中哪个进程负责媒体键?

Unity 中哪个进程负责媒体键?

我想在使用 i3wm 时使用我的媒体键。

当我使用 Unity 时,所有媒体键都可以使用。当我使用 i3 时,所有键都不起作用,即使 可以正确检测到它们xev,因此我假设在运行 Unity 时会运行某个进程来处理此问题。我正在运行,unity-settings-daemon但它似乎无法控制媒体键。

答案1

对我来说这适用于 PulseAudio:

# volume control
bindsym XF86AudioLowerVolume exec /usr/bin/pactl set-sink-volume @DEFAULT_SINK@ -- '-5%'
bindsym XF86AudioRaiseVolume exec /usr/bin/pactl set-sink-volume @DEFAULT_SINK@ '+5%'
bindsym XF86AudioMute exec /usr/bin/pactl set-sink-mute @DEFAULT_SINK@ toggle

答案2

i3 默认没有这些键绑定。您可以通过编辑~/.i3/config文件来添加它们。

例如对于音量键,您可以使用类似以下内容:

bindsym XF86AudioRaiseVolume exec pactl set-sink-volume 0 +5%
bindsym XF86AudioLowerVolume exec pactl set-sink-volume 0 -- -5%
bindsym XF86AudioMute exec pactl set-sink-mute 0 toggle

其他媒体键名称包括:

XF86AudioPlay
XF86AudioPrev
XF86AudioNext
XF86AudioStop
XF86HomePage

您可以相应地分配它们。例如,我使用 DBus 来控制 Clementine,绑定如下:

#Pause actually works as a play toggle for MPRIS interfaces.
bindsym XF86AudioPlay exec qdbus org.mpris.clementine /Player Pause

分配新的键绑定后,使用++Alt重新启动 i3⇑ShiftR

相关内容