使用 Macbook Air 在 i3 窗口管理器中启用多媒体、音量和亮度键的问题

Chr*_*rAB 5 keyboard macintosh i3

从 2015 年开始,我无法在 Macbook Air 上的 i3 wm 中使用多媒体、音量和亮度键。我已经插入了应该启用按钮的代码,但它不起作用。重新加载配置设置并尝试重新启动计算机。以下是我使用的代码:

脉冲音频控制

bindsym XF86AudioRaiseVolume exec pactl set-sink-volume @DEFAULT_SINK@ +2%; exec pactl set-sink-mute @DEFAULT_SINK@ 0
bindsym XF86AudioLowerVolume exec pactl set-sink-volume @DEFAULT_SINK@ -2%; exec pactl set-sink-mute @DEFAULT_SINK@ 0
bindsym XF86AudioMute exec pactl set-sink-mute @DEFAULT_SINK@ toggle
Run Code Online (Sandbox Code Playgroud)

媒体播放器控件

bindsym XF86AudioPlay exec playerctl play-pause
bindsym XF86AudioNext exec playerctl next
bindsym XF86AudioPrev exec playerctl previous
Run Code Online (Sandbox Code Playgroud)

屏幕亮度控制

bindsym XF86MonBrightnessUp exec xbacklight -inc 20 # increase screen brightness
bindsym XF86MonBrightnessDown exec xbacklight -dec 20 # decrease screen brightness
Run Code Online (Sandbox Code Playgroud)

我在这个问题上发现的

某些 Macbook 上的多媒体键可能有不同的名称吗?

我也试过这个

也许有一个重要的地方我必须放置代码?

编辑 1

当我按下按钮时,我可以看到命令行的反应

编辑 2

在提示符中执行 xbacklight 命令时,我得到以下输出:

% xbacklight -inc 20
No outputs have backlight property
Run Code Online (Sandbox Code Playgroud)

编辑 3

我现在已经解决了以下行的音量键

bindsym XF86AudioRaiseVolume exec amixer -D pulse sset Master 5%+
bindsym XF86AudioLowerVolume exec amixer -D pulse sset Master 5%-
bindsym XF86AudioMute exec amixer -D pulse set Master 1+ toggle
Run Code Online (Sandbox Code Playgroud)

编辑 4

在这里找到了很好的信息:https : //faq.i3wm.org/question/3747/enabling-multimedia-keys.1.html

Try*_*431 1

这是一个老问题,但答案可能对其他人有帮助。我在笔记本电脑上全新安装时遇到了一个问题i3wm,无论出于何种原因,我的XF86MonBrightnessUp/Down密钥没有被注册(我检查过xev)。我最终要做的是创建acpi与按下的键相对应的操作和事件。

/etc/acpi/actions以下是我分别在和 中定义的操作/事件/etc/acpi/events

行动

/etc/acpi/actions/bl-down.sh

#!/bin/sh

bl_device=/sys/class/backlight/acpi_video0/brightness
echo $(($(cat $bl_device)-1)) | sudo tee $bl_device
Run Code Online (Sandbox Code Playgroud)

/etc/acpi/actions/bl-up.sh

#!/bin/sh

bl_device=/sys/class/backlight/acpi_video0/brightness
echo $(($(cat $bl_device)+1)) | sudo tee $bl_device
Run Code Online (Sandbox Code Playgroud)

活动

/etc/acpi/events/bl-down

event=video/brightnessdown BRTDN 00000087 00000000
action=/etc/acpi/actions/bl-down.sh
Run Code Online (Sandbox Code Playgroud)

/etc/acpi/events/bl-up

event=video/brightnessup BRTUP 00000086 00000000
action=/etc/acpi/actions/bl-up.sh
Run Code Online (Sandbox Code Playgroud)

您可以在终端中使用acpi_listen,然后按相关的组合键(例如,对我来说,Fn + 向下箭头可降低亮度)来验证您的亮度上/下 acpi 事件代码。

最后,不要忘记重新acpid启动sudo /etc/init.d/acpid reload

注意:您的背光设备可能定义在与/sys/class/backlight/acpi_video0我的背光设备所在的位置不同的位置。做一些探索。