Как автоматически заблокировать экран при закрытии крышки и сохранить работающие программы (не спящие) на ноутбуке 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
и вставьте следующее. Измените имя пользователя с вашим именем пользователя
#!/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
Убедитесь, что опция управления питанием для закрытой крышки ноутбука не работает