解释

解释

我的笔记本电脑在合上盖子时不会关闭屏幕。当从 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启动(什么是标准情况),一个简单的可能就足够了。rootxset 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
            ;;

相关内容