Verifica-se que o bloqueio de tela pode ser controlado através do mecanismo RPC D-Bus. Você pode enviar consultas e comandos via D-Bus usando o comando qdbus
. Os métodos endereçáveis são agrupados em objetos, que pertencem aos serviços. Correndo
qdbus
imprime uma lista de serviços e você pode ver essa lista para encontrar o serviço de bloqueio de tela, que é org.freedesktop.ScreenSaver
. Então
qdbus org.freedesktop.ScreenSaver
imprime uma lista de objetos endereçáveis no serviço de proteção de tela, que inclui /MainApplication
. (Também inclui /ScreenSaver
e, embora tenha vários métodos úteis, não tem o que eu queria.)
qdbus org.freedesktop.ScreenSaver /MainApplication
imprime uma lista de métodos que podem ser chamados e seus argumentos e tipos de retorno. Aquele que você quer aqui é
method void org.kde.KApplication.reparseConfiguration()
O próprio arquivo de configuração está em $HOME/.kde/share/config/kscreensaverrc
e está em um formato simples. Você pode editar este arquivo (programaticamente, se desejado) e, em seguida, invocar
qdbus org.freedesktop.ScreenSaver /MainApplication reparseConfiguration
para reconfigurar o bloqueio de tela com a nova configuração.
O script de shell completo é:
timeout=${1:-3600}
perl -i -lpe 's/^Enabled=.*/Enabled=False/' $HOME/.kde/share/config/kscreensaverrc
qdbus org.freedesktop.ScreenSaver /MainApplication reparseConfiguration
sleep $timeout
perl -i -lpe 's/^Enabled=.*/Enabled=True/' $HOME/.kde/share/config/kscreensaverrc
qdbus org.freedesktop.ScreenSaver /MainApplication reparseConfiguration
Frew Schmidt também apontou que muitas vezes há uma configuração de sistema separada que atribui funções a certas posições de ponteiro do mouse, de modo que é possível desativar temporariamente o bloqueio de tela colocando o ponteiro no canto superior direito, ou o que for. No KDE isso é controlado em Configurações do Sistema → Comportamento do Espaço de Trabalho → Bordas da Tela.