![Unity 中哪个进程负责媒体键?](https://linux22.com/image/981391/Unity%20%E4%B8%AD%E5%93%AA%E4%B8%AA%E8%BF%9B%E7%A8%8B%E8%B4%9F%E8%B4%A3%E5%AA%92%E4%BD%93%E9%94%AE%EF%BC%9F.png)
我想在使用 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