$ 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
Однак, коли я намагаюся його заблокувати :
$ xautolock -locknow
Could not locate a running xautolock.
Якщо я закручую іншого, xautolock
це працює:
$ 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
Що дає?
До цього часу я бачив це як на своєму робочому столі, так і на ноутбуці. Зверніть увагу, що принаймні перший раз після блокування завантаження працює чудово. Лише після невідомого часу чи події він починає провалюватися.
Я не зміг надійно відтворити це. Тобто, я спробував наступні підходи на своєму ноутбуці, і в обох випадках клавіатурне скорочення / команда заставки фактично блокує робочий стіл після цього:
- Закрийте кришку
- Зачекайте, поки комп’ютер сплять
- Відкрийте кришку
- Натисніть кнопку живлення
- Укажіть пароль для входу, за яким слід Enter
і
- Блокуйте робочий стіл
- Ті ж кроки, що і вище
Відстеження коду:
- Рядок, який друкує повідомлення про помилку :
error1 ("Could not locate a running %s.\n", progName);
- Це станеться, якщо
messageToSend
є правдою іtype != XA_INTEGER
Схоже,
type
це встановлено в наступному викладі:(void) XGetWindowProperty (d, root, semaphore, 0L, 2L, False, AnyPropertyType, &type, &format, &nofItems, &after, (unsigned char**) &contents);
Чи означає це, що xautolock
виявлення запуску може залежати від фокусованого вікна ? Мені також цікаво, чи може цей дзвінок пов’язаний з цією відомою помилкою :
- Параметри -disable, -enable, -toggle, -exit, -locknow, -unlocknow та -restart залежать від доступу до сервера X для виконання своєї роботи. Це означає, що вони будуть призупинені, якщо якась інша програма захопить сервер все для себе.
Чи можливо xautolock
конфлікти xss-lock
, з якими обидва користуються slock
? На додаток до xautolock
рядка вище, я також маю цей рядок у .xprofile :
xss-lock slock &
Оскільки обидва можуть xautolock
і xss-lock
дзвонити slock
, я підозрюю, що проблема має щось подібне:
xautolock
працюєslock
через 10 хвилин бездіяльності.xss-lock
також намагається запуститиslock
через 10 хвилин :$ xset q | grep --after-context=2 --line-regexp --fixed-strings 'Screen Saver:' Screen Saver: prefer blanking: yes allow exposures: yes timeout: 600 cycle: 600
slock
Насправді породжується лише один клієнт.xss-lock
вбиває неправильнеslock
, що призводитьxautolock
до збоїв або відмови.
Оскільки я xss-lock
можу виявити сон ноутбука, я хотів би використовувати його замість xautolock
, але я не можу зробити з ним xss-lock
роботу notify-send
.
.xinitrc
: я перейшов до --user
сервісного файлу, і це вже не проблема ...
stop-screensaver=no
до ~/.mpv/config
. Звичайно, це означає, що вам доведеться відключити блокування вручну під час відтворення відео з mpv.