如何在 HP 笔记本电脑上关闭盖子时自动锁定屏幕并保持程序运行(不睡眠)

如何在 HP 笔记本电脑上关闭盖子时自动锁定屏幕并保持程序运行(不睡眠)

我想让应用程序继续运行,但合上盖子时屏幕会锁定。我不想进入睡眠模式,因为这会阻止我的下载和正在播放的音乐。另外,我很懒,在合上盖子之前拒绝使用Win+ L。我只想合上盖子并立即锁定。请不要使用屏幕保护程序选项。

答案1

还有很长的路要走,所以让我们开始工作吧。

重要的是要了解这些事件将被 root 拥有的进程捕获。需要修复以允许 root 在普通用户的 X 环境中运行进程。为了使环境变量可供 root 使用:

gedit ~/export_x_info

并粘贴以下内容

# Export the dbus session address on startup so it can be used by any other environment
sleep 5
touch $HOME/.Xdbus
chmod 600 $HOME/.Xdbus
env | grep DBUS_SESSION_BUS_ADDRESS > $HOME/.Xdbus
echo 'export DBUS_SESSION_BUS_ADDRESS' >> $HOME/.Xdbus
# Export XAUTHORITY value on startup so it can be used by cron
env | grep XAUTHORITY >> $HOME/.Xdbus
echo 'export XAUTHORITY' >> $HOME/.Xdbus

保存并关闭。然后使其可执行:

chmod 700 ~/export_x_info

现在将其设置为在启动时运行。在 Gnome 2 中,系统 > 首选项 > 会话,然后单击添加。在 Ubuntu Unity 中,单击右上角的齿轮图标,选择启动程序,然后单击添加。

Name: X Environment Variables
Command: /home/your_user/export_x_info

现在你需要编辑/etc/acpi/lid.sh捕捉盖子打开和关闭事件的文件

gksudo gedit /etc/acpi/lid.sh并粘贴

/home/your_user/lid_event之后#!/bin/bash。保存并关闭。

现在您需要为关闭事件创建一个脚本,以便您可以锁定屏幕。

gedit ~/lid_event并粘贴以下内容。将 user_name 更改为您的用户名

#!/bin/bash
grep closed /proc/acpi/button/lid/LID0/state  
 if [ $? = 0 ]
 then
 source /home/user_name/.Xdbus
 DISPLAY=:0.0 su user_name -c "gnome-screensaver-command -l"
 fi

/proc/acpi/button/lid/LID0/state还要使用文件管理器检查文件,因为 LID0 可能是 LID。

现在使用以下命令重新启动 ACPI

sudo /etc/init.d/acpid restart

确保笔记本电脑盖关闭时的电源管理选项设置为不执行任何操作

来源

相关内容