Так что, когда я в спящем режиме моего ноутбука, экран не блокируется автоматически. Чтобы решить эту проблему, я изменил /etc/acpi/powerbtn.sh
, чтобы он содержал:
su - myUsername -c "gnome-screensaver-command -l"
sudo pm-hibernate
exit 0
При запуске этого файла из командной строки он работает как задумано (то есть блокирует экран, а затем переводит его в спящий режим). К сожалению, при нажатии кнопки питания он все еще просто спит без блокировки экрана - что мне не хватает?
РЕДАКТИРОВАТЬ : я добавил строку whoami>>~/Desktop/test.txt
, чтобы проверить, какой пользователь выполнение скрипта /etc/acpi/powerbtn.sh
. При нажатии кнопки питания файл test.txt
создается, но остается пустым. Из этого я заключаю, что скрипт фактически вызывается при нажатии кнопки питания. Чего я не понимаю, так это того, как вывод whoami
может быть пустым ...
Полагаю, gnome-screensaver-command
нужно знать, какую переменную DISPLAY вы используете. Поскольку (теоретически) несколько пользователей могут войти в систему на одном компьютере (также графически), необходимо знать, чей дисплей (-и) необходимо заблокировать. Первый - ": 0". Попробуйте
su - myUsername -c "DISPLAY=:0 gnome-screensaver-command -l"