我已经在 Manjaro 上从 Gnome 迁移到 i3,并且几乎完成了窗口管理器、终端颜色等配置。一段时间后,我决定听一些音乐,几分钟后我意识到音量键和播放键不起作用。
我有 Razer Blackwidow Stealth 2014 键盘,因此这些媒体键实际上与功能键放在一起。例如:“播放/暂停”处于打开状态F6,当我按下该键时,它充当媒体键Fn,如 中所示Fn + F6。
答案1
寻找答案
在摆弄控件一段时间后,我在旧的 i3 常见问题解答板上找到了一个帖子:https://faq.i3wm.org/question/3747/enabling-multimedia-keys.1.html
它说将以下内容粘贴到 i3 的 .config 文件中(以下是稍加修改的版本,删除了一些行,与这个特定问题无关):
# Pulse Audio controls
bindsym XF86AudioRaiseVolume exec --no-startup-id pactl set-sink-volume 0 +5% #increase sound volume
bindsym XF86AudioLowerVolume exec --no-startup-id pactl set-sink-volume 0 -5% #decrease sound volume
bindsym XF86AudioMute exec --no-startup-id pactl set-sink-mute 0 toggle # mute sound
# Sreen brightness controls
bindsym XF86MonBrightnessUp exec xbacklight -inc 20 # increase screen brightness
bindsym XF86MonBrightnessDown exec xbacklight -dec 20 # decrease screen brightness
# Media player controls
bindsym XF86AudioPlay exec playerctl play-pause
bindsym XF86AudioPause exec playerctl play-pause
bindsym XF86AudioNext exec playerctl next
bindsym XF86AudioPrev exec playerctl previous
它也不起作用,但寻找答案的过程是正确的。
真正的答案
至少对我来说,问题是复制这些行后,按键将无法使用。经过更多研究后,我发现音量命令可能有点不同,使用amixer
而不是 PulseAudio 的pactl
.
最后,这些就变成了这样:
# Media volume controls
bindsym XF86AudioMute exec amixer sset 'Master' toggle
bindsym XF86AudioLowerVolume exec amixer sset 'Master' 5%-
bindsym XF86AudioRaiseVolume exec amixer sset 'Master' 5%+
他们开始工作了。
播放键有点棘手。我推断 .config 告诉了哪个命令被执行来执行该操作。然后我开始playerctl play-pause
在我的终端上尝试。当然这没有成功,因为未安装playerctl。安装它(使用sudo pacman -S playerctl
)后,这些键盘命令也可以正常工作。
答案2
我发现我需要一个--
来将 thepactl
与 the分开,并且如果您使用耳机,则set-sink-...
使用起来会更加一致。@DEFAULT_SINK@
# Pulse Audio controls
bindsym XF86AudioRaiseVolume exec --no-startup-id pactl -- set-sink-volume @DEFAULT_SINK@ +5% #increase sound volume
bindsym XF86AudioLowerVolume exec --no-startup-id pactl -- set-sink-volume @DEFAULT_SINK@ -5% #decrease sound volume
bindsym XF86AudioMute exec --no-startup-id pactl -- set-sink-mute @DEFAULT_SINK@ toggle # mute sound
答案3
我刚刚把0换成了1。例子:
# Pulse Audio controls
bindsym XF86AudioRaiseVolume exec --no-startup-id pactl set-sink-volume 1 +5% #increase sound volume
bindsym XF86AudioLowerVolume exec --no-startup-id pactl set-sink-volume 1 -5% #decrease sound volume
bindsym XF86AudioMute exec --no-startup-id pactl set-sink-mute 1 toggle # mute sound
要查看您的音频设备的编号,请打开pavucontrol
并单击输出设备,顶部的数字是 0,下面的数字是 1,依此类推。