xautolockclaramente se ejecuta :
$ 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
Sin embargo, cuando trato de bloquearlo :
$ xautolock -locknow
Could not locate a running xautolock.
Si giro otro xautolockfunciona:
$ 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
¿Lo que da?
Hasta ahora he visto esto en mi computadora de escritorio y portátil. Tenga en cuenta que al menos la primera vez después del bloqueo de arranque funciona bien. Es solo después de un tiempo o evento desconocido que comienza a fallar.
He no podido reproducir esta manera confiable. Es decir, he probado los siguientes enfoques en mi computadora portátil y en ambos casos el atajo / comando del protector de pantalla bloquea el escritorio después:
- Cerrar la tapa
- Espera a que la computadora hiberne
- Abre la tapa
- presiona el boton de poder
- Proporcione la contraseña de inicio de sesión seguida de Enter
y
- Bloquear el escritorio
- Los mismos pasos que arriba
Rastreando el código:
- La línea que imprime el mensaje de error :
error1 ("Could not locate a running %s.\n", progName); - Eso sucede si
messageToSendes verdad ytype != XA_INTEGER Parece que
typese establece en la siguiente declaración:(void) XGetWindowProperty (d, root, semaphore, 0L, 2L, False, AnyPropertyType, &type, &format, &nofItems, &after, (unsigned char**) &contents);
¿Esto significa que si xautolockse detecta la ejecución puede depender de la ventana que está enfocada? También me pregunto si esta llamada podría estar relacionada con este error conocido :
- Las opciones -disable, -enable, -toggle, -exit, -locknow, -unlocknow y -retart dependen del acceso al servidor X para hacer su trabajo. Esto implica que se suspenderán en caso de que alguna otra aplicación haya tomado el servidor por sí mismo.
¿Es posible que entre en xautolockconflicto con los xss-lockdos que están usando slock? Además de la xautolocklínea anterior, también tengo esta línea en .xprofile :
xss-lock slock &
Dado que tanto xautolocky xss-lockse puede llamar slock, estoy sospechando que el problema es algo como esto:
xautolockse ejecutaslockdespués de 10 minutos de inactividad.xss-lockTambién intenta correrslockdespués de 10 minutos :$ xset q | grep --after-context=2 --line-regexp --fixed-strings 'Screen Saver:' Screen Saver: prefer blanking: yes allow exposures: yes timeout: 600 cycle: 600- Solo
slockse genera un cliente. xss-lockmata el errorslock, lo que hacexautolockque se bloquee o se rinda.
Dado que xss-lockpuede detectar la suspensión del portátil, me gustaría usarlo en lugar de hacerlo xautolock, pero parece que no puedo hacer que xss-lockfuncione notify-send.
fuente

.xinitrc: cambié a un--userarchivo de servicio y ya no es un problema ...stop-screensaver=noa~/.mpv/config. Por supuesto, esto significa que debe deshabilitar manualmente el bloqueo al reproducir videos con mpv.Respuestas:
Para mí, el proceso xautolock todavía se estaba ejecutando en segundo plano, pero no estaba escuchando ningún
xautolock -locknowcomando. Como mencionó @jrm, una aplicación debe estar suprimiendo el "protector de pantalla" . Para los dos, esto se debió a que mpv (reproductor de video) deshabilitó el protector de pantalla.Para MPV, la solución es añadir lo siguiente a
~/.config/mpv/configo~/.mpv/config:Si no usa mpv, podría ser otra aplicación que deshabilite el protector de pantalla. Pruebe algunos de los más utilizados para ver cuál es.
Si desea evitar el bloqueo automático de la pantalla durante la reproducción de video , una forma común es usar la función de "esquinas" de xautolock:
Con el comando anterior, si coloca el cursor del mouse en la esquina inferior derecha de la pantalla (dentro de un radio de 30 píxeles), el bloqueo automático se desactivará temporalmente.
Una cosa más para probar es la
-resetsaveropción:O la
-detectsleepopción:fuente
xautolock, por lo que la pregunta es un poco discutible ahora. Marcado como aceptado como la respuesta más útil hasta ahora. Si alguien tiene exactamente el mismo problema, puedo eliminar esta pregunta para evitar un duplicado.