我的基于 Debian 的发行版(antix)上没有 systemd,而且也没有桌面环境。当盖子关闭时,如何使我的笔记本电脑仅显示空白(或禁用)屏幕,而不是暂停并保持暂停按钮正常工作
答案1
完全禁用盖子。
首先,您需要找出盖子开关的路径。这可以通过检查具有唤醒功能的进程列表来完成:
cat /proc/acpi/wakeup
在输出中,其中一行将对应于盖子,并且看起来类似于以下输出(可能相同):
LID0 S3 *enabled platform:PNP0C0D:00
为了在内核级别完全禁用盖子开关,您可以使用unbind
内核的功能。(将PNP0C0D:00
路径更改为与您的盖子相对应的路径):
echo 'PNP0C0D:00' | sudo tee /sys/bus/acpi/drivers/button/unbind
一旦确认盖子确实被禁用,您只需添加该命令即可/etc/rc.local
使其在启动时执行。
合上盖子后屏幕空白
这会稍微复杂一些,因为您需要指定udev
规则才能让一个事件(盖子)触发另一个事件(禁用屏幕)。
首先,您需要找出指向笔记本电脑内部显示屏的路径。最好首先测试背光的亮度控制,而不是整个显示器的启用/禁用。
有一个指向背光控件的系统路径,在大多数笔记本电脑上可以通过以下方式访问它cd /sys/class/backlight/*/
在该 sysfs 文件夹内,您应该会看到类似于以下内容的控制文件列表:
./actual_brightness
./bl_power
./brightness
./max_brightness
./power/async
./power/autosuspend_delay_ms
./power/control
./power/runtime_active_kids
./power/runtime_active_time
./power/runtime_enabled
./power/runtime_status
./power/runtime_suspended_time
./power/runtime_usage
./scale
./type
./uevent
以及、等的目录路径device
。power
subsystem
、brightness
和max_brightness
应对应于当前设置和范围的最大限制。您应该能够使用echo
并赋予另一个值来控制笔记本电脑显示屏本身的亮度,如下所示:
echo "100" | sudo tee /sys/class/backlight/*/brightness
一旦您确定亮度控制确实按照 cli 的预期工作,请报告回来,我将解释如何监视盖子关闭事件以触发适当的 udev 规则。
答案2
这也可以通过 轻松配置systemd
。这Arch Linux 维基总结得很好:
systemd
处理一些与电源相关的 ACPI 事件,其操作可以在/etc/systemd/logind.conf
或/etc/systemd/logind.conf.d/*.conf
中配置- 请参阅登录.conf(5)。在没有专用电源管理器的系统上,这可能会取代通常用于对这些 ACPI 事件做出反应的 acpid 守护进程。
确保值HandleLidSwitch
、HandleLidSwitchDocked
和均已在配置文件中HandleLidSwitchExternalPower
设置。ignore
请注意更古老但类似的答案/问题如何忽略盖子开关动作?