寻找答案

寻找答案

我已经在 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,依此类推。

相关内容