Jak zatrzymać wygaszanie / zaciemnianie ekranu?

14

Po pewnym czasie ponownie zainstalowałem Debian 7 (Wheezy). Po raz pierwszy korzystam z otwartych sterowników Nvidia (nie w wersji nouveau) i vesafb do konsol wirtualnych.

Nie mogę przez całe życie powstrzymać wygaszania ekranu. Nie ma wygaszacza ekranu, nic, po prostu gaśnie, po kilku minutach bezczynności. Nie dzieje się tak tylko podczas VLC (który miał taki problem w przeszłości), ale podczas czegokolwiek.

Co gorsza, wydaje się, że dzieje się to losowo. Czasami ekran nie gaśnie przez wiele godzin, a czasem tak się stanie.

Kroki, które do tej pory podjąłem:

  1. Dodano kilka wierszy, /etc/X11/xorg.confaby zatrzymać dpms:

    Section "ServerLayout"
         Option         "BlankTime"     "0"
         Option         "StandbyTime"   "0"
         Option         "SuspendTime"   "0"
         Option         "OffTime"       "0"
         ...
    Section "Monitor"
      ...
         Option          "DPMS" "false"
    
  2. Dodano w moim .xinitrcpliku:

    xset s off         # don't activate screensaver
    xset -dpms         # disable DPMS (Energy Star) features.
    xset s noblank     # don't blank the video device
    
  3. Wyłączono WSZYSTKIE wygaszacze ekranu i tryby oszczędzania energii w ustawieniach KDE.

  4. Dodano następującą pętlę w moim /etc/init.d/rc.local:

    for index in $(seq 1 6)
    do
            setterm -blank 0 -powerdown 0 -powersave off > /dev/tty${index}
    done
    
  5. Poprawiłem mój wygaszacz ekranu xdg łatką, która wymusiła na VLC odrodzenie wygaszacza ekranu. (Od tego czasu przestałem używać VLC i powróciłem do Dragon player).

To zamienia się w koszmar i jest naprawdę bardzo denerwujące. Zanim zacznę nuke vesafb i ​​setterm (które, jak sądzę, są w jakiś sposób za to odpowiedzialne), chciałbym wiedzieć, czy ktoś kiedykolwiek napotkał ten problem i jak udało mu się go rozwiązać.

Alex
źródło
Spróbuj przenieść wszystkie pliki zasilania * z ~ / .kde / share / config /, a następnie włącz zarządzanie energią na wszystkich kartach (stosując je podczas ich przeglądania), a następnie wyłącz je ponownie.
kirill-a
1
Aby zawęzić problem, biegnij xscreensaver-command -watchgdzieś w xtermie. Po zdarzeniu niepożądanym-pustym ekranie sprawdź, czy generuje zdarzenie BLANK. Jeśli tak, to na pewno zostanie on wygaszony przez działanie serwera X. W przeciwnym razie jest niższy na stosie i możesz skupić się na sterownikach wideo.
aecolley
@ aecolley dziękuję za sugestię. Brak sygnału wyjściowego w terminalu po niepożądanym wygaszeniu ekranu. Używam zastrzeżonego sterownika wideo NVIDIA, nie widziałem żadnych ustawień dotyczących oszczędzania energii w narzędziu ustawień graficznych. Nawiasem mówiąc, wygaszanie wystąpiło, gdy było tylko kilka okien przeglądarki i otwartych Mendeley, a nie VLC.
rumtscho
Zobacz moją aktualizację: unix.stackexchange.com/a/440648/3285
Evan Carroll

Odpowiedzi:

6

DPMS może być odporny na ścieranie!

Wypróbuj to polecenie:

xset dpms 0 0 0 && xset s noblank  && xset s off

Jeśli to działa, dodaj go do dowolnego pliku autostartu używanego przez KDE.

Nawiasem mówiąc, VLC ma opcję Preferencje >> Wideo >> Wyłącz wygaszacz ekranu . Jeśli ta opcja jest zaznaczona, ekran nie zostanie wygaszony podczas odtwarzania VLC wideo, ale DPMS zostanie włączony później (niezależnie od tego, czy był włączony przed uruchomieniem VLC). Dlatego pozostaw tę opcję niezaznaczoną, a VLC nie powinno powodować żadnych problemów z wygaszaniem.

MajorBriggs
źródło
Nie jestem pewien, czy to rozwiązuje cały problem (ekran wygasa w nieregularnych odstępach czasu, więc będę musiał pozostawić komputer nietknięty przez 2 godziny na test). Ale część o tym, że VLC samo włącza DPMS, jest bardzo interesującym tropem, więc postanowiłem dać ci nagrodę.
rumtscho,
1
Daj nam znać, jeśli okaże się to trwałe. Używam Debiana z Openbokiem i to jest jedyny sposób, aby zdjąć DPMS z moich pleców. Btw DPMS jest aktywny tylko wtedy, gdy nie jest zainstalowany żaden inny wygaszacz ekranu, więc jeśli wszystko inne zawiedzie, możesz spróbować (ponownie) zainstalować xscreensaver i skonfigurować, aby wyłączyć wygaszanie.
MajorBriggs,
@MajorBriggs: Używam również Debiana z Openbox. Czy polecasz dodanie tego wiersza do ~ / .xinitrc tuż przed exec openbox-session? Dzięki.
user001
Właśnie dodałem polecenie do autostartu Openbox: ~/.config/openbox/autostart.shi to działa dobrze.
MajorBriggs,
Do LXDE dodaję te polecenia w~/.config/lxsession/LXDE/autostart
Monica Dla CEO
2

Aby odtworzyć ten problem, musimy wiedzieć, co xdg-screensaversię dzieje.

Uzyskiwanie identyfikatora okna głównego

  1. Zaktualizuj xdg-screensaverponownie.
  2. Otwórz terminal
  3. Biegać xwininfo -root
  4. Skopiuj identyfikator okna, w tym przypadku jest to 0x131

    xwininfo: Window id: 0x131 (the root window) (has no name)
    

Wyłączanie wygaszacza ekranu

Teraz biegnij

    xdg-screensaver suspend <window id>

Możesz potwierdzić, że działało, uruchamiając xdg-screensaver status

Renable

Aby ponownie uruchomić

    xdg-screensaver resume <window id>

Możesz potwierdzić, że działało, uruchamiając xdg-screensaver status

Czy wygaszacz ekranu wygasł / wygasł, gdy suspendwygasłeś (zablokowałeś)? Jeśli tak, to jest to błąd xdg-screensaver.

Inne notatki

Jeśli kiedykolwiek zechcesz wyłączyć DPMS, chociaż nigdy bym tego nie zrobił - chyba że monitor nie obudziłby się z czymś nieobliczalnym z trudnym - możesz po prostu uruchomić

xset -dpms;

To powstrzyma go przed wygaszaniem przy wyłączaniu. Mówiąc ogólnie, nie chcesz wyłączać wygaszania (czyszczenia ekranu) ani wyłączać zarządzania energią. Chcesz dowiedzieć się, co powoduje, że jest puste lub wyłącza się, gdy tego nie chcesz, i chcesz to naprawić.

Evan Carroll
źródło
1

Spróbuj uruchomić ten skrypt heartbeat.sh, który zresetuje X czas bezczynności co 55 sekund.

#!/bin/bash

while sleep 55
do
    #xscreensaver-command -deactivate
    #xdg-screensaver reset
    xset s reset
done
user.dz
źródło
1

Sekcja powinna być „ServerFlags”, a nie „ServerLayout”.

Section "ServerFlags"
     Option         "BlankTime"     "0"
     Option         "StandbyTime"   "0"
     Option         "SuspendTime"   "0"
     Option         "OffTime"       "0"
     ...

Więcej informacji można znaleźć w pliku konfiguracyjnym dla Xorg

chelahmy
źródło
1

Jestem delegowania odpowiedzi, jak już nieco udało się rozwiązać ten problem. Mówię nieco, ponieważ wciąż mam problemy.

Wygląda na to, że Wheezy potrzebuje wygaszacza ekranu. Wyłączyłem wszystkie opcje, które mogłem znaleźć, nawet załatałem xscreensaver, ale bezskutecznie. Powyższe poprawki próbowałem w swoim pytaniu, czasem generują problemy po zalogowaniu, czasem nie!

To, co jednak wydaje się rozwiązać problem, to dwie rzeczy:

  1. Przestałem używać VLC. Uwielbiam to, używałem go przez wiele lat, ale to winowajca odradza te sesje wygaszacza ekranu. Teraz używam Dragon-Player i mogę oglądać filmy bez zbliżania się wygaszacza ekranu.

  2. Zmusiłem KDE do użycia wybranego przeze mnie wygaszacza ekranu. Wydaje się, że czasami zastępuje domyślny wygaszacz ekranu .

Czasami ekran sam się wyłącza, bez wyświetlania wybranego przeze mnie wygaszacza ekranu. To nie są moje monitory (używam podwójnej konfiguracji, więc byłoby dziwnie, gdyby oba były wyłączone). Wydaje się to być przypadkowe, ponieważ czasami ekran pozostaje włączony przez wiele godzin bez wyłączania się.

Próbowałem nawet załatać xscreensaver, ale nic nie działało. Mam nadzieję, że zostanie to naprawione w następnym stabilnym Debianie.

Alex
źródło