$ ps wafux | grep [x]autolock
user 21410 0.0 0.0 20124 2628 ? S Nov05 0:04 xautolock -time 10 -notify 30 -notifier notify-send --urgency low --expire-time=10000 -- 'Locking screen in 30 seconds' -locker slock
Jednak gdy próbuję to zablokować :
$ xautolock -locknow
Could not locate a running xautolock.
Jeśli uruchomię inny xautolock, działa:
$ xautolock -time 10 -notify 30 -notifier "notify-send --urgency low --expire-time=10000 -- 'Locking screen in 30 seconds'" -locker slock&
[2] 18828
$ ps wafux | grep [x]autolock
user 21410 0.0 0.0 20124 2628 ? S Nov05 0:04 xautolock -time 10 -notify 30 -notifier notify-send --urgency low --expire-time=10000 -- 'Locking screen in 30 seconds' -locker slock
user 18828 0.0 0.0 20124 2708 pts/1 S 08:30 0:00 \_ xautolock -time 10 -notify 30 -notifier notify-send --urgency low --expire-time=10000 -- 'Locking screen in 30 seconds' -locker slock
$ xautolock -locknow # Runs fine and locks the desktop
Co daje?
Do tej pory widziałem to zarówno na komputerze stacjonarnym, jak i laptopie. Należy pamiętać, że przynajmniej pierwszy raz po zablokowaniu rozruchu działa dobrze. Dopiero po jakimś nieznanym czasie lub zdarzeniu zaczyna się zawodzić.
I nie był w stanie odtworzyć ten sposób wiarygodny. Oznacza to, że wypróbowałem następujące rozwiązania na moim laptopie iw obu przypadkach skrót / polecenie wygaszacza ekranu faktycznie blokuje pulpit:
- Zamknij pokrywę
- Poczekaj, aż komputer przejdzie w stan hibernacji
- Otwórz pokrywkę
- wciśnij przycisk zasilania
- Podaj hasło logowania, a następnie Enter
i
- Zablokuj pulpit
- Te same kroki jak powyżej
Śledzenie kodu:
- Linia, która wypisuje komunikat o błędzie :
error1 ("Could not locate a running %s.\n", progName); - Dzieje się tak, jeśli
messageToSendjest to prawdą itype != XA_INTEGER Wygląda na to, że
typejest ustawiony w następującej instrukcji:(void) XGetWindowProperty (d, root, semaphore, 0L, 2L, False, AnyPropertyType, &type, &format, &nofItems, &after, (unsigned char**) &contents);
Czy to oznacza, że xautolockwykrycie działania może zależeć od skupionego okna ? Zastanawiam się również, czy to wywołanie może być powiązane z tym znanym błędem :
- Opcje -disable, -enable, -toggle, -exit, -locknow, -unlocknow i -restart zależą od dostępu do serwera X do wykonania swojej pracy. Oznacza to, że zostaną zawieszone na wypadek, gdyby jakaś inna aplikacja złapała serwer dla siebie.
Czy to możliwe, że xautolockkonflikty xss-lock, z których oba korzystają slock? Oprócz xautolockpowyższej linii mam również tę linię w pliku .xprofile :
xss-lock slock &
Ponieważ zarówno xautolocki xss-lockmoże wywołać slock, mam podejrzenie, że problem wygląda mniej więcej tak:
xautolockdziałaslockpo 10 minutach bezczynności.xss-lockpróbuje także uruchomićslockpo 10 minutach :$ xset q | grep --after-context=2 --line-regexp --fixed-strings 'Screen Saver:' Screen Saver: prefer blanking: yes allow exposures: yes timeout: 600 cycle: 600- Odradza się tylko jeden
slockklient. xss-lockzabija źleslock, co powodujexautolockawarię lub poddanie się.
Ponieważ xss-lockmogę wykryć sen na laptopie, chciałbym go użyć zamiast tego xautolock, ale wydaje się, że nie mogę xss-lockpracować notify-send.
.xinitrc: przełączyłem się na --userplik usługi i nie stanowi to już problemu ...
stop-screensaver=nodo niego ~/.mpv/config. Oczywiście oznacza to, że musisz ręcznie wyłączyć blokowanie podczas odtwarzania filmów w MPV.