如何使媒体键与 i3 一起使用?

Ren*_*ira 13 keyboard-shortcuts keyboard i3

我已经在 Manjaro 上从 Gnome 转移到 i3,并且我几乎完成了配置窗口管理器、终端颜色和诸如此类的工作。过了一段时间我决定听一些音乐,几分钟后我意识到音量键和播放键不起作用。

我有一个 Razer Blackwidow Stealth 2014 键盘,所以这些媒体键实际上与功能键一起。例如:播放/暂停打开F6,当我按下该Fn键时,它充当媒体键,就像在 中一样Fn + F6

Ren*_*ira 15

寻找答案

经过一段时间的控制,我在旧的 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
Run Code Online (Sandbox Code Playgroud)

它也不起作用,但是找到答案的过程是正确的。

真正的答案

至少对我来说,问题是复制这些行后,这些键不起作用。经过更多研究,我发现音量命令可能会有所不同,使用amixerPulseAudio 代替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%+
Run Code Online (Sandbox Code Playgroud)

他们开始工作。

播放键有点棘手。我推断 .config 告诉执行哪个命令来执行操作。然后我继续尝试playerctl play-pause我的终端。当然没有用,因为没有安装 playerctl。安装(使用sudo pacman -S playerctl)后,这些键盘命令也工作得很好。


小智 5

我发现我需要一个来将 the与 the--分开,并且如果您使用耳机,则使用起来会更加一致。pactlset-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
Run Code Online (Sandbox Code Playgroud)