Как автоматически заблокировать экран при закрытии крышки и сохранить работающие программы (не спящие) на ноутбуке 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

Убедитесь, что опция управления питанием для закрытой крышки ноутбука не работает

источник

Другие вопросы по тегам