我的笔记本电脑在合上盖子时不会关闭屏幕。当从 Arch 安装棒启动时,它已经存在。
由于系统记录了以下事件,因此事件本身已被正确识别:
systemd-logind[500]: Lid opened.
systemd-logind[500]: Lid closed.
如何告诉系统我希望在合上盖子时关闭屏幕?
答案1
我现在找到了一个适合我的答案(单用户系统)。
虽然systemd-logind
有手柄ACPI 事件,只有一组标准选项poweroff
, reboot
, halt
, ...(请参阅man logind.conf
),不单独包括屏幕。
前身acpid
还提供处理 ACPI 事件(例如盖子关闭)的处理程序。最简单的方法是直接混乱使用演示文件/etc/acpi/handler.sh
并更改部分
button/lid)
case "$3" in
close)
logger 'LID closed'
;;
open)
logger 'LID opened'
;;
*)
logger "ACPI action undefined: $3"
;;
到
button/lid)
case "$3" in
close)
logger 'LID closed'
XAUTHORITY=/home/USERNAME/.Xauthority DISPLAY=:0 xset dpms force off
;;
open)
logger 'LID opened'
XAUTHORITY=/home/USERNAME/.Xauthority DISPLAY=:0 xset dpms force on
;;
*)
logger "ACPI action undefined: $3"
;;
(为了广泛使用acpid
它,当然建议为此任务创建一个单独的规则/文件。)
解释
xset dpms force off
隐式关闭屏幕$DISPLAY
(否则xset -d $DISPLAY dpms force off
)。为此,它需要开始X
位于 的人员的 cookie(授权文件) $XAUTHORITY
。
如果在登录过程中X
启动(什么是标准情况),一个简单的可能就足够了。root
xset dpms force off
我X
从~/.shellrc
登录 shell 的配置开始。因此我必须手动给它我的显示和cookie。
附录
人们可以进行调整,甚至进一步在打开交流电时不使用该命令(xset
关闭全部连接屏幕并且udev
未检测到我的系统上的盖子开关)。
close)
logger 'LID closed'
if [[ $(cat /sys/class/power_supply/AC/online) == 0 ]];then
XAUTHORITY=/home/USERNAME/.Xauthority DISPLAY=:0 xset dpms force off
fi
;;