Jak zapobiec blokowaniu ekranu, gdy pokrywa jest zamknięta?

14

Mam Ubuntu 11.10 z Gnome 3 (bez Unity), wygaszacz ekranu gnome został usunięty i zastąpiony przez xscreensaver. Wszystkie wygaszacze ekranu działają dobrze - nie ma żadnych skarg. Kiedy zamykam pokrywę laptopa, nawet na sekundę, ekran blokuje się (a okno dialogowe z pytaniem o moje hasło należy do programu xscreensaver). Chciałbym, żeby tak się nie stało ...

Rzeczy, które próbowałem / oglądałem już:

  • ustawienia wygaszacza ekranu - pole wyboru „Zablokuj ekran po” nie jest zaznaczone (chociaż próbowałem go również i ustawiłem na 720 minut)
  • gconf-editor - apps -> gnome-screensaver -> lock_enablednie jest zaznaczone
  • Ustawienia systemowe -> Zasilanie - „Po zamknięciu pokrywy” ustawiono na „Nie rób nic” zarówno dla akumulatora, jak i klimatyzacji
  • Ustawienia systemowe -> Ekran - Blokada jest „wyłączona”
  • gconf-editor - apps -> gnome-power-manager -> buttons -> lid_ac&& lid_batterysą ustawione na „nic”

  • edytor dconf - apps -> org -> gnome -> desktop -> screensaver -> lock_enablednie jest zaznaczony

Wyjście z gsettings list-recursively org.gnome.settings-daemon.plugins.power:

org.gnome.settings-daemon.plugins.power active true
org.gnome.settings-daemon.plugins.power button-hibernate 'hibernate'
org.gnome.settings-daemon.plugins.power button-power 'suspend'
org.gnome.settings-daemon.plugins.power button-sleep 'suspend'
org.gnome.settings-daemon.plugins.power button-suspend 'suspend'
org.gnome.settings-daemon.plugins.power critical-battery-action 'hibernate'
org.gnome.settings-daemon.plugins.power idle-brightness 30
org.gnome.settings-daemon.plugins.power idle-dim-ac false
org.gnome.settings-daemon.plugins.power idle-dim-battery true
org.gnome.settings-daemon.plugins.power idle-dim-time 10
org.gnome.settings-daemon.plugins.power lid-close-ac-action 'nothing'
org.gnome.settings-daemon.plugins.power lid-close-battery-action 'nothing'
org.gnome.settings-daemon.plugins.power notify-perhaps-recall true
org.gnome.settings-daemon.plugins.power percentage-action 2
org.gnome.settings-daemon.plugins.power percentage-critical 3
org.gnome.settings-daemon.plugins.power percentage-low 10
org.gnome.settings-daemon.plugins.power priority 1
org.gnome.settings-daemon.plugins.power sleep-display-ac 600
org.gnome.settings-daemon.plugins.power sleep-display-battery 600
org.gnome.settings-daemon.plugins.power sleep-inactive-ac false
org.gnome.settings-daemon.plugins.power sleep-inactive-ac-timeout 0
org.gnome.settings-daemon.plugins.power sleep-inactive-ac-type 'suspend'
org.gnome.settings-daemon.plugins.power sleep-inactive-battery true
org.gnome.settings-daemon.plugins.power sleep-inactive-battery-timeout 0
org.gnome.settings-daemon.plugins.power sleep-inactive-battery-type 'suspend'
org.gnome.settings-daemon.plugins.power time-action 120
org.gnome.settings-daemon.plugins.power time-critical 300
org.gnome.settings-daemon.plugins.power time-low 1200
org.gnome.settings-daemon.plugins.power use-time-for-policy true

gnome-settings-daemon działa:

<~> $ ps -ef | grep gnome-settings-daemon
1000      1719  1645  0 19:37 ?        00:00:01 /usr/lib/gnome-settings-daemon/gnome-settings-daemon
1000      1726     1  0 19:37 ?        00:00:00 /usr/lib/gnome-settings-daemon/gsd-printer
1000      1774  1645  0 19:37 ?        00:00:00 /usr/lib/gnome-settings-daemon/gnome-fallback-mount-helper

Coś jeszcze mogę sprawdzić? Dzięki!

Joe Casadonte
źródło
Spróbuj, dconf-editorczy są tam jakieś opcje.
Zoke
Spojrzałem na edytor dconf, opublikował wyjście gsettings - nie wydaje się być w żadnym z nich ...
Joe Casadonte
działa twój demon ustawień gnome - nb to powinno wyświetlić dwa wpisy / usr / libps -ef | grep gnome-settings-daemon
fossfreedom
@fossfreedom - tak, działa gnome-settings-daemon.
Joe Casadonte,
Mam ten sam problem. Może to jest błąd? bugs.launchpad.net/ubuntu/+source/xscreensaver/+bug/994754
Aibara

Odpowiedzi:

7

Udało mi się znaleźć sposób obejścia tego problemu, choć wydaje mi się, że istnieje lepsze rozwiązanie. Spojrzałem na to, co się dzieje, kiedy moja pokrywa została zamknięta i otwarta, /etc/acpi/lid.shi zauważyłem, że xscreensaver był wywoływany automatycznie. Nie jestem pewien, czy różne laptopy mają różne ustawienia, a co tam - naprawdę nie wiem zbyt wiele o tych rzeczach.

W każdym razie próbowałem zmusić go do przestrzegania pliku konfiguracyjnego i nie blokowania, ale nie mogłem tego pojąć, więc po prostu usunąłem linie, które dotyczyły programu xscreensaver. Teraz wszystko działa świetnie: bez blokowania, a jeśli pokrywa jest zamknięta, minęło czas ustawiony dla uruchomienia programu xscreensaver, rozpocznie się normalnie (a nie blokuje).

Nadal nie jestem pewien, dlaczego xscreensaver jest skonfigurowany do automatycznego wywoływania po zamknięciu pokrywy lub dlaczego ignoruje swoje ustawienia i blokuje się, gdy pokrywa jest otwarta. Nie rozumiem również, dlaczego w przypadku mojego starszego laptopa zdarza się to sporadycznie (czasem blokuje się za każdym razem, czasem wcale), pomimo posiadania tego samego pliku lid.sh.

Powinienem również zauważyć, że używam Ubuntu 12.04 z Unity, choć nie sądzę, że to coś zmieni.

Aibara
źródło
Dziękuję Ci! Dziękuję dziękuję dziękuję dziękuję DZIĘKUJĘ!
Joe Casadonte,
Nie ma problemu! Doprowadzało mnie to również do szaleństwa.
Aibara,
Fajne rozwiązanie. W tej chwili zaglądam do mojego pliku /etc/acpi/lid.sh i nie jestem pewien, który xscreensaver wywoła, aby skomentować - jest -unthrottle i -deactivate. Próbowałem wpisać „xscreensaver --help” w wierszu polecenia, aby zobaczyć, co one robią, ale powiedział mi, że tak naprawdę „xscreensaver” nie jest zainstalowany - czy to znaczy, że mam inny problem? Używam też Ubuntu 12.04 Unity, ale myślę, że może to być coś specyficznego dla laptopa: używam Lenovo ThinkPad T420s.
Alex
Hm, chyba że ręcznie zainstalowałeś xscreensaver, prawdopodobnie go nie masz. To nie jest domyślne.
Aibara,
2
Hej, mam ten sam problem z Ubuntu 14.04, ale najwyraźniej nie ma pliku /etc/acpi/lid.sh. Czy to samo dla ciebie? czy masz inne rozwiązanie?
Yekhezkel Yovel
3

Od GTK3 używam

gsettings set org.gnome.desktop.lockdown disable-lock-screen 'true'

Zapobiegnie to blokowaniu wszystkich ekranów. Jeśli nadal chcesz móc zablokować ekran, możesz użyć opcji „Zmień konto użytkownika ...” jako zamiennika. W wersji 11.10 po prostu skonfiguruj skrót klawiaturowy dla polecenia

gdmflexiserver -xnest

Dla 12.04+ jego

dm-tool switch-to-greeter
edm
źródło
Działa to z wygaszaczem ekranu gnome, ale niestety nie z xscreensaver.
Aibara
Samo pierwsze polecenie działa w 12.10
alfC
Wspaniale, działa świetnie 13.04! Dla tych, którzy chcą wiedzieć, jakie są ich ustawienia, wystarczy użyć „gsettings get org.gnome.desktop.lockdown disable-lock-screen”, najprawdopodobniej powie „false”.
Elijah Lynn
3

Używam Ubuntu 12.04 Classic (myślę, że chyba Unity) i miałem takie same problemy. Oto, czego chciałem: Gdy ekran nie jest zablokowany, zamknięcie i ponowne otwarcie pokrywy nie powinno powodować blokowania ekranu.

Można to łatwo osiągnąć dconf-editor; po prostu przejrzyj org > gnome > desktop > screensaveri odznacz lock-enabledwpis.

PS: Wydaje się to łatwe, ale odpowiedź była trudna do znalezienia.

Gurjeet Singh
źródło
BTW: To samo ustawienie znajduje się w Ustawienia-> Jasność i Blokada-> Blokada. Potwierdzone działanie w Ubuntu 14.04, zamknięcie pokrywy nie blokuje już systemu. Prawdopodobnie był to błąd we wcześniejszych wersjach Ubuntu.
jmiserez
To rozwiązało problem w Ubuntu MATE, jednak musiałem przejść do wygaszacza ekranu org-mate-screen, aby odznaczyć wpis.
Muzaffar,
1

Używam Gnome Classic 12.04, a odpowiedź Aibary Iduas nie zadziałała dla mnie, ale doprowadziła mnie do odpowiedzi. Musiałem edytować /usr/share/acpi-support/screenblank, usuwając zawarte w nim odwołania do xscreensaver.

użytkownik79937
źródło
0

Aby wyłączyć blokowanie ekranu po wznowieniu, ustaw LOCK_SCREEN=falsew/etc/default/acpi-support

Uruchomione (jako root lub sudo) to polecenie:

sed -i.bak s/'LOCK_SCREEN=true'/'LOCK_SCREEN=false'/ /etc/default/acpi-support

Utworzy kopię zapasową pliku (/etc/default/acpi-support.bak) i zmieni wymaganą opcję LOCK_SCREEN na false.

pl1nk
źródło
0

Chcę, aby mój ekran był blokowany podczas zawieszania, hibernacji, gdy wygaszacz ekranu staje się aktywny z powodu braku aktywności w skonfigurowanym czasie lub gdy blokuję się ręcznie.
Nie chcę, aby ekran był blokowany, gdy zamykam pokrywę na krótki czas (podczas transportu laptopa). Zamykając wieko chcę tylko wyłączyć wyświetlacz.
Wszystko to można skonfigurować za pomocą GUI-utils, z wyjątkiem nie blokowania ekranu, gdy pokrywa jest zamknięta - wydaje się, że tej funkcji brakuje w bieżącym GNOME :(

Niemniej jednak poniższy skrypt wykonuje dla mnie pracę

=== /etc/acpi/local/lid.sh.pre ===

#!/bin/bash

. /etc/default/acpi-support  ## in this file: LOCK_SCREEN_LID=false

function fail () {
  echo $@ >> /tmp/lid_no_screensaver.log
  beep
}

function screensaver_disable () {
  export DISPLAY=$1
  USER=$2
  if sudo -u $USER LANG=C gnome-screensaver-command -q | grep -q 'screensaver is active' ; then
    TIME_ACTIVE=$(DISPLAY=':0' sudo -u joe LANG=C gnome-screensaver-command --time | sed -r -e 's/The screensaver has been active for ([[:digit:]]*) seconds./\1/')
    [ $TIME_ACTIVE -ge 10 ] && return  ## we don't stop the screensaver when he should lock
  fi

  sudo -u $USER gnome-screensaver-command --deactivate
  ( sleep 1
    sudo -u $USER LANG=C gnome-screensaver-command -q | grep -q 'screensaver is inactive' || fail 'Unable to deactivate screensaver :('
  ) &
}

if [ "$LOCK_SCREEN_LID" = false ] ; then
  for DISPLAY in $(ps aux | grep X | grep -v grep | sed -e 's|^[^/]*||' | cut -d' ' -f2) ; do
    for USER in $(ps aux | grep gnome-screensaver | grep -v grep | cut -d' ' -f1) ; do
      if ! grep -q open /proc/acpi/button/lid/*/state; then
        screensaver_disable $DISPLAY $USER
      fi
    done
  done
fi

=== / etc / default / acpi-support ===

LOCK_SCREEN_LID=false

Przetestowano za pomocą wygaszacza ekranu gnome + GNOME 3.4.2 + Debian Wheezy

Johannes Lötzsch
źródło
0

Żadna z powyższych odpowiedzi nie działała dla mnie. Musiałem to zrobić:

sudo vim /etc/UPower/UPower.conf

# <snip> ...

ignoreLid=true

# <snip> ...

Wymagało to ponownego uruchomienia komputera. Twoje inne ustawienia Ubuntu / GNOME dotyczące zdarzeń Lid są prawdopodobnie nukowane.

pztrick
źródło
-1

Zainstaluj narzędzie gnome-tweak-toolZainstaluj narzędzie gnome-tweak-tool . Kliknij „Shell” po prawej stronie i tam możesz wybrać, co zrobić z baterią lub bez niej.

rockr101
źródło
Niestety oboje powiedzieli „nic nie rób”.
Joe Casadonte,
Te opcje wydają się nie odpowiadać wymaganiom; przynajmniej na Ubuntu 12.04.
Gurjeet Singh