如何使媒体密钥与i3兼容?


8

我已经从Gnome迁移到Manjaro上的i3,并且几乎完成了配置窗口管理器,终端颜色以及其他方面的工作。一段时间后,我决定听一些音乐,几分钟后,我意识到音量键和播放键不起作用。

我有Razer Blackwidow Stealth 2014键盘,因此这些媒体键实际上与功能键一起使用。例如:播放/暂停处于打开状态F6,当我按键时,它用作媒体Fn键,如中的Fn + F6


我试图解决这个问题,因为坦率地说大约90%都是错误的。现在很好,您的答案将其清除。上一个/下一个答案中的两件事正是您的答案。唯一真正的改进是将播放移动到播放/暂停(这对它是否工作完全没有影响)。而且,该xev命令完全是下铺。如果您按下这些键时是xev的输出,则您的答案会起作用。再试一次。您所在的州应该说些什么XF86AudioNext
埃文·卡罗尔

Answers:


9

寻找答案

在弄乱控件一段时间后,我在旧的i3 FAQ板上找到了一个帖子:https : //faq.i3wm.org/question/3747/enabling-multimedia-keys.1.html

它说将以下内容粘贴到i3的.config文件中(bellow是一个经过修改的版本,其中删除了一些行,与该特定问题无关):

# 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)后,这些键盘命令也可以正常工作。


对于音量控制,第一种方法对我有效,方法是将接收器更改为1而不是0。grep sink
Ramzi C.19年

2

我发现我需要一个--分开的pactl距离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

为@ DEFAULT_SINK @ +1。对我来说,不需要两个破折号,它们甚至阻止了它的工作(此处为mxLinux)。
西蒙

1

我只是用一个示例替换了0:

脉冲音频控件

bindsym XF86AudioRaiseVolume exec --no-startup-id pactl set-sink-volume 1 + 5%#增加音量bindsym XF86AudioLowerVolume exec --no-startup-id pactl set-sink-volume 1 -5%#降低音量bindsym XF86AudioMute exec --no-startup-id pactl set-sink-Mute 1切换#静音

要查看您的音频设备的编号,请打开pavucontrol并单击输出设备,最上面的一个是0,下面是一个,等等。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.