$ 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
Tuy nhiên, khi tôi cố gắng khóa nó :
$ xautolock -locknow
Could not locate a running xautolock.
Nếu tôi quay cái khác, xautolocknó hoạt động:
$ 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
Đưa cái gì?
Đến bây giờ tôi đã thấy điều này trên cả máy tính để bàn và máy tính xách tay của tôi. Xin lưu ý rằng ít nhất là lần đầu tiên sau khi khóa khởi động hoạt động tốt. Chỉ sau một thời gian không xác định hoặc sự kiện nó bắt đầu thất bại.
Tôi đã không thể tái tạo điều này một cách đáng tin cậy. Đó là, tôi đã thử các cách tiếp cận sau trên máy tính xách tay của mình và trong cả hai trường hợp, phím tắt / lệnh bảo vệ màn hình thực sự khóa máy tính để bàn sau đó:
- Đóng nắp
- Đợi máy tính ngủ đông
- Mở nắp
- Bấm nút nguồn
- Cung cấp mật khẩu đăng nhập theo sau Enter
và
- Khóa máy tính để bàn
- Các bước tương tự như trên
Truy tìm mã:
- Dòng in thông báo lỗi :
error1 ("Could not locate a running %s.\n", progName); - Điều đó xảy ra nếu sự
messageToSendthật vàtype != XA_INTEGER Có vẻ như
typeđược đặt trong tuyên bố sau:(void) XGetWindowProperty (d, root, semaphore, 0L, 2L, False, AnyPropertyType, &type, &format, &nofItems, &after, (unsigned char**) &contents);
Điều này có nghĩa là việc chạy xautolockđược phát hiện có thể phụ thuộc vào cửa sổ được tập trung không? Tôi cũng tự hỏi nếu cuộc gọi này có thể liên quan đến lỗi đã biết này :
- Các tùy chọn -disable, -enable, -toggle, -exit, -locknow, -unlocknow và -restart phụ thuộc vào quyền truy cập vào máy chủ X để thực hiện công việc của họ. Điều này ngụ ý rằng họ sẽ bị đình chỉ trong trường hợp một số ứng dụng khác đã tự mình lấy máy chủ.
Có thể là xautolockxung đột với xss-lock, cả hai đều đang sử dụng slock? Ngoài xautolockdòng trên tôi cũng có dòng này trong .xprofile :
xss-lock slock &
Vì cả hai xautolockvà xss-lockcó thể gọi slock, tôi nghi ngờ rằng vấn đề xảy ra như thế này:
xautolockchạyslocksau 10 phút không hoạt động.xss-lockcũng cố gắng chạyslocksau 10 phút :$ xset q | grep --after-context=2 --line-regexp --fixed-strings 'Screen Saver:' Screen Saver: prefer blanking: yes allow exposures: yes timeout: 600 cycle: 600- Chỉ có một
slockkhách hàng thực sự được sinh ra. xss-lockGiết nhầmslock, gây raxautolocksụp đổ hoặc bỏ cuộc.
Vì xss-lockcó thể phát hiện giấc ngủ của máy tính xách tay, tôi muốn sử dụng nó thay vì xautolock, nhưng dường như tôi không thể làm xss-lockviệc được notify-send.
.xinitrc: Tôi đã chuyển sang một --usertệp dịch vụ và nó không còn là vấn đề nữa ...
stop-screensaver=novào ~/.mpv/config. Tất nhiên, điều này có nghĩa là bạn phải tắt thủ công khóa khi phát video với mpv.