xautolock
claramente 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 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 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
messageToSend
es verdad ytype != XA_INTEGER
Parece que
type
se 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 xautolock
se 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 xautolock
conflicto con los xss-lock
dos que están usando slock
? Además de la xautolock
línea anterior, también tengo esta línea en .xprofile :
xss-lock slock &
Dado que tanto xautolock
y xss-lock
se puede llamar slock
, estoy sospechando que el problema es algo como esto:
xautolock
se ejecutaslock
después de 10 minutos de inactividad.xss-lock
También intenta 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
- Solo
slock
se genera un cliente. xss-lock
mata el errorslock
, lo que hacexautolock
que se bloquee o se rinda.
Dado que xss-lock
puede detectar la suspensión del portátil, me gustaría usarlo en lugar de hacerlo xautolock
, pero parece que no puedo hacer que xss-lock
funcione notify-send
.
fuente
.xinitrc
: cambié a un--user
archivo de servicio y ya no es un problema ...stop-screensaver=no
a~/.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 -locknow
comando. 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/config
o~/.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
-resetsaver
opción:O la
-detectsleep
opció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.