
xautolock
está claramente funcionando:
$ 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
Porém, quando tentobloqueie-o:
$ xautolock -locknow
Could not locate a running xautolock.
Se eu girar outro, 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
O que da?
Até agora eu já vi isso em meu desktop e laptop. Observe que pelo menos na primeira vez após o bloqueio de inicialização funcionar bem. Somente depois de algum tempo ou evento desconhecido é que ele começa a falhar.
Eu tenhonãofoi capaz de reproduzir isso de forma confiável. Ou seja, tentei as seguintes abordagens no meu laptop e em ambos os casos oatalho/comando do protetor de telana verdade, bloqueia a área de trabalho depois:
- Feche a tampa
- Espere o computador hibernar
- Abra a tampa
- Pressione o botão liga / desliga
- Forneça a senha de login seguida deEnter
e
- Bloqueie a área de trabalho
- Mesmas etapas acima
Rastreando o código:
- A linha que imprime a mensagem de erro:
error1 ("Could not locate a running %s.\n", progName);
- Isso acontecese
messageToSend
é verdadeetype != XA_INTEGER
Parece
type
está definidona seguinte declaração:(void) XGetWindowProperty (d, root, semaphore, 0L, 2L, False, AnyPropertyType, &type, &format, &nofItems, &after, (unsigned char**) &contents);
Isso significa que a xautolock
detecção da corrida pode depender dojanelaisso está focado? Também estou me perguntando se esta chamada pode estar relacionada a issobug conhecido:
- As opções -disable, -enable, -toggle, -exit, -locknow, -unlocknow e -restart dependem do acesso ao servidor X para fazer seu trabalho. Isso implica que eles serão suspensos caso algum outro aplicativo tenha capturado o servidor sozinho.
É possível que xautolock
entre em conflito com xss-lock
ambos os quais estão usando slock
? Além da xautolock
linha acima eu também tenho issolinha em .xprofile:
xss-lock slock &
Como ambos xautolock
e xss-lock
podem ligar slock
, suspeito que o problema seja mais ou menos assim:
xautolock
funcionaslock
após 10 minutos de inatividade.xss-lock
tambémtenta correrslock
depois 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
- Apenas um
slock
cliente é realmente gerado. xss-lock
mata o erradoslock
, o que faz comxautolock
que caia ou desista.
Como xss-lock
posso detectar o sono do laptop, gostaria de usá-lo em vez de xautolock
, mas não consigo trabalhar xss-lock
com ele notify-send
.
Responder1
Para mim, o processo xautolock ainda estava rodando em segundo plano, mas não ouvia nenhum xautolock -locknow
comando. Conforme mencionado por @jrm,um aplicativo deve estar suprimindo o "protetor de tela". Para nós dois, isso ocorreu porque o mpv (reprodutor de vídeo) desativou o protetor de tela.
Para mpv, a correção é adicionar o seguinte a ~/.config/mpv/config
ou ~/.mpv/config
:
stop-screensaver=no
Se você não usa mpv, pode ser outro aplicativo que está desativando o protetor de tela. Experimente alguns dos mais usados para ver qual é.
Se você quiserevitar o bloqueio automático da tela durante a reprodução do vídeo, uma maneira comum é usar o recurso "cantos" do xautolock:
xautolock -corners 000- -cornersize 30
Com o comando acima, se você colocar o cursor do mouse no canto inferior direito da tela (dentro de um raio de 30px), o bloqueio automático será temporariamente desativado.
Mais uma coisa para tentar é a -resetsaver
opção:
xautolock -resetsaver
Ou a -detectsleep
opção:
xautolock -detectsleep
Responder2
Você pode usar xdg-screensaver lock
mesmo quando xautolock -locknow
não estiver funcionando.