Как заблокировать экран после выхода из спящего режима?

12

Я смог успешно перейти в спящий режим и возобновить работу настольного ПК с Ubuntu 12.04, используя процедуру, описанную в этом ответе . Тем не менее, у меня теперь есть проблема, что всякий раз, когда компьютер возобновляет работу, он не блокирует экран.

Как заблокировать экран после выхода системы из спящего режима?

Викрант Чаудхари
источник

Ответы:

9

Я добавил псевдоним в ~/.bashrcфайл

alias hibernate='sudo echo "Hibernating..."; gnome-screensaver-command -l; sudo pm-hibernate;'

Так что он блокирует экран перед спящим режимом.

Елин Й.
источник
Замечательный! Возьмите upvote ...
Аджая
5

Я смог обойти эту проблему, используя следующую команду

sudo pm-hibernate; gnome-screensaver-command -l

Обратите внимание, что вы должны запускать это как обычный пользователь, а не как пользователь root для блокировки на работу, потому что по умолчанию в Ubuntu нет пароля для пользователя root, поэтому после возобновления экран блокировки можно разблокировать, просто встряхивая мышь.

Викрант Чаудхари
источник
+1 Большое спасибо за примечание, что заставку нужно запускать как обычный пользователь (а не как root). Это полностью имеет смысл ... В этом все дело ... Спасибо!
zbynour
У меня все заработало: (Ubuntu 15.04 - 3.19.0-25-generic # 26-Ubuntu SMP пт 24 июля 21:17:31 UTC 2015 x86_64 x86_64 x86_64 GNU / Linux)
кантон
3

У меня есть другой обходной путь. я скопировал это от /etc/acpi/sleep.shдо /etc/acpi/hibernate.shтолько доpm-hibernate

if [ x$LOCK_SCREEN = xtrue ]; then
    if pidof xscreensaver > /dev/null; then
    for x in /tmp/.X11-unix/*; do
        displaynum=`echo $x | sed s#/tmp/.X11-unix/X##`
        getXuser;
        if [ x"$XAUTHORITY" != x"" ]; then
        export DISPLAY=":$displaynum"
        . /usr/share/acpi-support/screenblank
        fi
    done
    fi
fi

теперь я могу переходить в спящий режим с блокировкой из меню питания или кнопкой сна

mzzzzb
источник
Он прекрасно работает 14.04 с зашифрованным обменом (и дома), однако я не вижу там sleep.sh - просто чтобы поделиться опытом и нажать некоторые ключевые слова.
AliN
0

Не на Ubuntu, но у меня работает следующее:

systemd-inhibit --what sleep --why "Lock screen" --mode delay xdg-screensaver lock & systemctl suspend

Заменить xdg-screensaver lockс помощью команды для блокировки экрана на вашей системе , и systemctl suspendс , systemctl hibernateесли вы хотите , чтобы заблокировать экран перед спячки.

Это работает, блокируя экран параллельно приостановке машины. Однако команда блокировки экрана работает как ингибитор, который задерживает сон. Таким образом, systemd будет ожидать блокировки экрана перед выполнением.

Если у вас есть ингибиторы, которые блокируют приостановку, добавьте -iфлаг в конце.

piegames
источник