为什么桌面锁定会在一段时间后停止工作?


14

xautolock显然正在运行

$ 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

是什么赋予了?

到目前为止,我已经在台式机和笔记本电脑上看到了这一点。请注意,至少在引导锁定后第一次可以正常工作。只有在某个未知的时间或事件之后它才开始失败。


无法可靠地重现此内容。也就是说,我已经在笔记本电脑上尝试了以下方法,在两种情况下,屏幕保护程序快捷方式/命令实际上都随后锁定了桌面:

  1. 关上盖子
  2. 等待计算机进入休眠状态
  3. 打开盖子
  4. 按下电源按钮
  5. 提供登录密码,然后输入 Enter

  1. 锁定桌面
  2. 与上述相同的步骤

跟踪代码:

  1. 打印错误消息的行error1 ("Could not locate a running %s.\n", progName);
  2. 如果messageToSend是真的,那会发生type != XA_INTEGER
  3. 看起来type在以下语句中设置的:

    (void) XGetWindowProperty (d, root, semaphore, 0L, 2L, False,
                               AnyPropertyType, &type, &format,
                               &nofItems, &after,
                               (unsigned char**) &contents);
    

这是否意味着是否xautolock可以检测到运行取决于所关注的窗口?我也想知道此调用是否可能与该已知错误有关

  1. -disable,-enable,-toggle,-exit,-locknow,-unlocknow和-restart选项取决于对X服务器的访问以完成其工作。这意味着在某些其他应用程序自己夺走了服务器的情况下,它们将被挂起。

是否有可能xautolockxss-lock两者都使用冲突slock?除了xautolock上面的行,我在.xprofile中也有以下

xss-lock slock &

既然xautolockxss-lock都可以通话slock,我怀疑问题出在这样的地方:

由于xss-lock可以检测到笔记本电脑睡觉,我想用它代替xautolock,但我似乎无法做出xss-lock与工作notify-send


您正在使用哪个Unix?
卡巴斯德,2015年

我遇到了同样的问题。我没有对它进行深入研究,但我也想知道一个答案。
HalosGhost 2015年

您如何开始?我最近从.xinitrc以下位置启动时发现了同样的东西:我切换到--user服务文件,这不再是问题...
jasonwryan 2015年

1
用mpv(而不是mplayer)播放视频会触发此问题。两位玩家的配置均为空。
jrm

1
此触发器的最佳解决方法是添加stop-screensaver=no~/.mpv/config。当然,这意味着使用mpv播放视频时必须手动禁用锁定。
jrm

Answers:


5

对我来说,xautolock进程仍在后台运行,但是它没有监听任何xautolock -locknow命令。如@jrm所述,应用程序必须禁止显示“屏幕保护程序”。对于我们俩来说,这是由于mpv(视频播放器)禁用了屏幕保护程序。

对于mpv,解决方法是在~/.config/mpv/config或中添加以下内容~/.mpv/config

stop-screensaver=no

如果您不使用mpv,则可能是另一个禁用屏幕保护程序的应用程序。尝试一些常用的,看看是哪一个。


如果要防止在视频播放期间自动锁定屏幕,一种常见的方法是使用xautolock的“角落”功能:

xautolock -corners 000- -cornersize 30

使用以上命令,如果将鼠标光标放在屏幕的右下角(半径30像素以内),将自动禁用自动锁定。


还有一件事可以尝试-resetsaver

xautolock -resetsaver

-detectsleep选项:

xautolock -detectsleep

好提示,谢谢!我已经知道我的视频播放器(VLC)禁用屏幕锁定已有很多年了,但是老实说,现在这个问题已经很久了,我无法回想起我是否只是因为这个事实而无所适从。无论如何,我已经停止使用了xautolock,所以现在的问题有点儿争议。标记为目前为止最有用的答案。如果有人遇到完全相同的问题,我可以删除此问题以避免重复。
l0b0
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.