Para sistemas executando o KDE 4.x, será
qdbus org.freedesktop.ScreenSaver /ScreenSaver Lock
Para Ubuntu / Gnome: qdbus org.gnome.ScreenSaver /ScreenSaver Lock
O Qdbus, conforme escrito acima, envia apenas uma mensagem no barramento de mensagens que o bloqueador de tela recebe. O comando, no entanto, bloqueará a tela. qdbus apenas pergunta gentilmente "alguém bloqueará a tela, por favor?" A vantagem de usar o qdbus é que ele é suportado em outras plataformas que não o KDE. O texto abaixo funciona apenas para o KDE4.
Agora assista e aprenda: o)
Para descobrir isso com mais detalhes, é necessário um pouco de truque para o bash:
- listar todos os processos enquanto desbloqueados
ps -ef
;
- bloquear a tela
qdbus ..........
;
- espere um momento para bloquear a tela
sleep 1
- em seguida, liste os processos enquanto bloqueados
ps -ef
- encontre as diferenças entre a saída dos dois comandos
diff <( cmd1 ) <( cmd2 )
A linha de comando:
diff <( ps -ef ) <( qdbus org.freedesktop.ScreenSaver /ScreenSaver Lock; sleep 1; ps -ef )
0a1
>
242d242
< jhendrix 17088 16352 0 21:11 pts/4 00:00:00 /bin/bash
245,246c245,247
< jhendrix 17091 17088 0 21:11 pts/4 00:00:00 ps -ef
< jhendrix 17092 17089 0 21:11 pts/4 00:00:00 qdbus org.freedesktop.ScreenSaver /ScreenSaver Lock
---
> jhendrix 17093 2801 11 21:11 ? 00:00:00 /usr/lib/kde4/libexec/kscreenlocker --forcelock
> jhendrix 17095 17093 11 21:11 ? 00:00:00 kblankscrn.kss -root
> jhendrix 17099 17089 0 21:11 pts/4 00:00:00 ps -ef
Isso restringe a lista de possíveis comandos para bloquear a tela, não é? Agora, a resposta para sua pergunta é simples: para bloquear a tela a partir da linha de comando, use: /usr/lib/kde4/libexec/kscreenlocker --forcelock
o blankscrn.kss é um processo filho do kscreenlocker, portanto, é o kscreenlocker que deve ser executado.
Para visualizar a sintaxe do comando:
/usr/lib/kde4/libexec/kscreenlocker --help
O que faz? Basicamente, ele desenha uma grande janela preta que cobre a tela inteira e a força a ficar por cima de tudo. Ele captura todas as teclas digitadas e abre uma caixa de diálogo de login.
Finalmente, em qual pacote ele vem (kde-workspace-bin)?
$ dpkg -S /usr/lib/kde4/libexec/kscreenlocker
kde-workspace-bin: /usr/lib/kde4/libexec/kscreenlocker
kscreensaver
pode ser você deveps aux
isso