Jak zablokować ekran po wznowieniu ze stanu hibernacji?

12

Udało mi się hibernować i wznowić działanie mojego komputera stacjonarnego Ubuntu 12.04, korzystając z procedury opisanej w tej odpowiedzi . Jednak mam teraz problem, że za każdym razem, gdy komputer wznawia, nie blokuje ekranu.

Jak mogę zablokować ekran po wznowieniu działania systemu ze stanu hibernacji?

Vikrant Chaudhary
źródło

Odpowiedzi:

9

Dodałem alias do ~/.bashrcpliku

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

Tak, że blokuje ekran przed hibernacją.

Елин Й.
źródło
Wspaniale! Weź upvote ...
Ajoy
5

Byłem w stanie obejść ten problem, używając następującego polecenia

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

Pamiętaj, że powinieneś uruchomić to jako zwykły użytkownik, a nie jako użytkownik root, aby zablokować działanie, ponieważ domyślnie w Ubuntu nie ma hasła dla użytkownika root, więc po wznowieniu ekran blokady można odblokować, po prostu potrząsając mysz.

Vikrant Chaudhary
źródło
+1 Bardzo dziękuję za uwagę, że wygaszacz ekranu musi być uruchamiany jako zwykły użytkownik (nie jako root). To całkowicie ma sens ... O to chodzi ... Dziękuję!
zbynour,
Działa dobrze dla mnie: (Ubuntu 15.04 - 3.19.0-25-generic # 26-Ubuntu SMP Pt 24 lipca lip 21:17:31 UTC 2015 x86_64 x86_64 x86_64 GNU / Linux)
kantoni 6'15
3

mam inne obejście. skopiowane z tego /etc/acpi/sleep.shna /etc/acpi/hibernate.shkrótko przedpm-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

teraz mogę hibernować z blokadą z menu zasilania lub przyciskiem uśpienia

mzzzzb
źródło
Działa pięknie w 14.04 z szyfrowaną wymianą (i domem), jednak nie widzę tam sleep.sh - tylko po to, aby podzielić się doświadczeniem i wcisnąć kilka słów kluczowych.
AliN
0

Nie w systemie Ubuntu, ale następujące działania działają dla mnie:

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

Wymienić xdg-screensaver lockz poleceniem, aby zablokować ekran w systemie i systemctl suspendze systemctl hibernatejeśli chcesz zablokować ekran przed hibernacją.

Działa to poprzez równoległe zablokowanie ekranu w celu zawieszenia maszyny. Jednak polecenie blokowania ekranu działa jako inhibitor opóźniający uśpienie. W ten sposób systemd poczeka, aż ekran zostanie zablokowany przed wykonaniem.

Jeśli masz inhibitory blokujące zawieszenie, dodaj -iflagę na końcu.

piegry
źródło