$ 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
Namun, ketika saya mencoba menguncinya :
$ xautolock -locknow
Could not locate a running xautolock.
Jika saya memutar yang lain xautolock
itu berfungsi:
$ 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
Apa yang menyebabkannya?
Sekarang saya sudah melihat ini di desktop dan laptop saya. Harap dicatat bahwa setidaknya pertama kali setelah penguncian boot berfungsi dengan baik. Hanya setelah beberapa waktu atau peristiwa yang tidak diketahui mulai gagal.
Saya belum bisa mereproduksi ini dengan andal. Artinya, saya sudah mencoba pendekatan berikut pada laptop saya dan dalam kedua kasus shortcut / perintah screensaver sebenarnya mengunci desktop setelahnya:
- Tutup penutupnya
- Tunggu komputer untuk hibernasi
- Buka tutupnya
- Tekan tombol daya
- Berikan kata sandi login yang diikuti oleh Enter
dan
- Kunci desktop
- Langkah yang sama seperti di atas
Melacak kode:
- Baris yang mencetak pesan kesalahan :
error1 ("Could not locate a running %s.\n", progName);
- Itu terjadi jika
messageToSend
benar dantype != XA_INTEGER
Sepertinya
type
diatur dalam pernyataan berikut:(void) XGetWindowProperty (d, root, semaphore, 0L, 2L, False, AnyPropertyType, &type, &format, &nofItems, &after, (unsigned char**) &contents);
Apakah ini berarti apakah menjalankan xautolock
terdeteksi dapat bergantung pada jendela yang difokuskan? Saya juga ingin tahu apakah panggilan ini dapat dikaitkan dengan bug yang dikenal ini :
- Opsi -disable, -enable, -toggle, -exit, -locknow, -unlocknow, dan -restart bergantung pada akses ke server X untuk melakukan pekerjaan mereka. Ini menyiratkan bahwa mereka akan ditangguhkan jika beberapa aplikasi lain telah meraih server untuk dirinya sendiri.
Apakah mungkin xautolock
konflik dengan xss-lock
, keduanya menggunakan slock
? Selain xautolock
baris di atas, saya juga memiliki baris ini di .xprofile :
xss-lock slock &
Karena keduanya xautolock
dan xss-lock
dapat menelepon slock
, saya curiga bahwa masalahnya seperti ini:
xautolock
berjalanslock
setelah 10 menit tidak aktif.xss-lock
juga mencoba untuk menjalankanslock
setelah 10 menit :$ xset q | grep --after-context=2 --line-regexp --fixed-strings 'Screen Saver:' Screen Saver: prefer blanking: yes allow exposures: yes timeout: 600 cycle: 600
- Hanya satu
slock
klien yang benar-benar melahirkan. xss-lock
membunuh yang salahslock
, yang menyebabkanxautolock
crash atau menyerah.
Karena xss-lock
dapat mendeteksi tidur laptop saya lebih suka menggunakannya xautolock
, tapi sepertinya saya tidak bisa xss-lock
bekerja dengannya notify-send
.
sumber
.xinitrc
: Saya beralih ke--user
file layanan dan itu tidak lagi menjadi masalah ...stop-screensaver=no
ke~/.mpv/config
. Tentu saja, ini berarti Anda harus menonaktifkan penguncian secara manual saat memutar video dengan mpv.Jawaban:
Bagi saya, proses xautolock masih berjalan di latar belakang, tetapi tidak mendengarkan
xautolock -locknow
perintah apa pun . Seperti yang disebutkan oleh @jrm, aplikasi harus menekan "screensaver" . Bagi kami berdua, ini karena mpv (pemutar video) menonaktifkan screensaver.Untuk mpv, perbaikannya adalah dengan menambahkan yang berikut ke
~/.config/mpv/config
atau~/.mpv/config
:Jika Anda tidak menggunakan mpv, itu mungkin aplikasi lain yang menonaktifkan screensaver. Cobalah beberapa yang biasa digunakan untuk melihat yang mana.
Jika Anda ingin mencegah penguncian layar otomatis selama pemutaran video , salah satu cara umum adalah dengan menggunakan fitur "sudut" xautolock:
Dengan perintah di atas, jika Anda meletakkan kursor mouse di sudut kanan bawah layar (dalam radius 30px), penguncian otomatis akan dinonaktifkan sementara.
Satu hal lagi untuk dicoba adalah
-resetsaver
opsi:Atau
-detectsleep
opsi:sumber
xautolock
, jadi pertanyaannya agak sedikit diperdebatkan sekarang. Menandai diterima sebagai jawaban yang paling berguna sejauh ini. Jika ada orang yang memiliki masalah yang sama persis, saya dapat menghapus pertanyaan ini untuk menghindari duplikat.