Byt*_*der 6 login-screen keyboard lock-screen brightness volume-control
使用装有 Ubuntu 16.04 的新 Acer Aspire E17 E5-773G,我发现用于调节音量 ( Fn+ ?/ ?) 和亮度 ( Fn+ ?/ ?)的键盘组合在登录屏幕或锁定屏幕上不起作用。
但是,它们在登录时确实可以工作,因此这不是一般问题。我还需要做什么才能从登录和锁定屏幕使用它们?
我遇到了同样的问题,内核参数对我不起作用。我希望按键的行为更像直接硬件按钮,因此无论登录状态如何,它们都可以工作,并且在tty屏幕上也可以工作。我通过从这个问题链接的第三方网站、关于这个问题的各种答案和评论以及Arch Wiki获得了大部分解决方案。总之,它通过系统服务监听 ACPI 事件,并直接设置亮度。
安装acpid包:
apt install acpid
Run Code Online (Sandbox Code Playgroud)
创造/etc/acpi/events/brightness:
event=video/brightness(up|down)
action=/etc/acpi/brightness.sh %e
Run Code Online (Sandbox Code Playgroud)
和/etc/acpi/brightness.sh:
#!/bin/bash
set -e
# edit this to match your device under /sys/class/backlight/
dev=amdgpu_bl0
# change if you want a different number of brightness levels
levels=16
case "$1" in
video/brightnessup)
chg=1
;;
video/brightnessdown)
chg=-1
;;
*)
exit 1
;;
esac
dev="/sys/class/backlight/$dev"
[[ -e "$dev" ]]
bri="$dev/brightness"
read -r cur < "$bri"
read -r max < "$dev/max_brightness"
max_levels=$(( max + 1 ))
if (( levels < 1 )); then
levels=1
elif (( levels > max_levels )); then
levels=$max_levels
fi
incr=$(( max_levels / levels ))
new=$(( cur + ( incr * chg ) ))
if (( new > max )); then
new=$max
elif (( new < 0 )); then
new=0
fi
if (( new != cur )); then
echo $new > "$bri"
fi
Run Code Online (Sandbox Code Playgroud)
并使其可执行:
chmod +x /etc/acpi/brightness.sh
Run Code Online (Sandbox Code Playgroud)
重新启动并启用服务:
systemctl restart acpid && systemctl enable acpid
Run Code Online (Sandbox Code Playgroud)
最后一步是停止按键的双重绑定。在 KDE Plasma 中,您只需在System Settings > Shortcuts > Power Management > Decrease/Increase Screen Brightness中禁用默认绑定。我认为其他 DE 也有类似的能力来忽略这些键。
在终端中:
sudo gedit /etc/default/grub
Run Code Online (Sandbox Code Playgroud)
改变
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash"
Run Code Online (Sandbox Code Playgroud)
到
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash acpi_osi="
Run Code Online (Sandbox Code Playgroud)
保存然后
sudo update-grub
Run Code Online (Sandbox Code Playgroud)
重新启动计算机。