
xautolock
esta claramente corriendo:
$ 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 intentoCiérralo:
$ xautolock -locknow
Could not locate a running xautolock.
Si hago girar otro, xautolock
funciona:
$ 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 tanto en mi computadora de escritorio como en mi computadora portátil. Tenga en cuenta que al menos la primera vez después del bloqueo del arranque funciona bien. Sólo después de algún momento o evento desconocido comienza a fallar.
Tengonopodido reproducir esto de forma fiable. Es decir, probé los siguientes enfoques en mi computadora portátil y en ambos casos elatajo/comando del salvapantallasen realidad bloquea el escritorio después:
- Cerrar la tapa
- Espere a que la computadora hiberne
- Abre la tapa
- presiona el boton de poder
- Proporcione la contraseña de inicio de sesión seguida deEnter
y
- Bloquear el escritorio
- Los mismos pasos que arriba
Seguimiento del código:
- La línea que imprime el mensaje de error.:
error1 ("Could not locate a running %s.\n", progName);
- Eso pasasi
messageToSend
es verdadytype != XA_INTEGER
Parece que
type
Está establecidoen el siguiente comunicado:(void) XGetWindowProperty (d, root, semaphore, 0L, 2L, False, AnyPropertyType, &type, &format, &nofItems, &after, (unsigned char**) &contents);
¿Significa esto que la xautolock
detección del funcionamiento puede depender delventanaque esta enfocado? También me pregunto si esta llamada podría estar relacionada con esto.error conocido:
- Las opciones -disable, -enable, -toggle, -exit, -locknow, -unlocknow y -restart dependen del acceso al servidor X para realizar su trabajo. Esto implica que se suspenderán en caso de que alguna otra aplicación se haya apoderado del servidor.
¿Es posible que xautolock
entre en conflicto con xss-lock
ambos que están usando slock
? Además de la xautolock
línea de arriba también tengo estolínea en .xprofile:
xss-lock slock &
Dado que ambos xautolock
pueden xss-lock
llamar slock
, sospecho que el problema es más o menos así:
xautolock
se ejecutaslock
después de 10 minutos de inactividad.xss-lock
tambiénintenta correrslock
despué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
slock
En realidad, solo se genera un cliente.xss-lock
mata lo incorrectoslock
, lo que provocaxautolock
que se bloquee o se rinda.
Como xss-lock
puedo detectar la suspensión de la computadora portátil, me gustaría usarlo en lugar de xautolock
, pero parece que no puedo xss-lock
trabajar con él notify-send
.
Respuesta1
Para mí, el proceso xautolock todavía se estaba ejecutando en segundo plano, pero no escuchaba ningún xautolock -locknow
comando. Como lo menciona @jrm,una aplicación debe estar suprimiendo el "salvapantallas". Para ambos, esto se debió a que mpv (reproductor de video) deshabilitó el protector de pantalla.
Para mpv, la solución es agregar lo siguiente a ~/.config/mpv/config
o ~/.mpv/config
:
stop-screensaver=no
Si no utiliza mpv, es posible que sea otra aplicación la que deshabilite el protector de pantalla. Pruebe algunos de los que se utilizan habitualmente para ver cuál es.
Si quieresevitar el bloqueo automático de la pantalla durante la reproducción de vídeo, una forma común es utilizar la función "esquinas" de xautolock:
xautolock -corners 000- -cornersize 30
Con el comando anterior, si coloca el cursor del mouse en la esquina inferior derecha de la pantalla (dentro de un radio de 30 px), el bloqueo automático se desactivará temporalmente.
Una cosa más para probar es la -resetsaver
opción:
xautolock -resetsaver
O la -detectsleep
opción:
xautolock -detectsleep
Respuesta2
Es posible que pueda utilizarlo xdg-screensaver lock
incluso cuando xautolock -locknow
no esté funcionando.