Você está criando um hábito de ajustes estranhos, não é?
De qualquer forma, este é estranho, mas interessante. Lamento dizer que não tenho uma solução completa, mas encontrei alguns itens interessantes que justificam uma resposta. Eles podem te dar algumas idéias de onde ir a partir daqui.
-
A FAQ do Gnome-Screensaver indica que o protetor de tela emite um sinal DBus quando o status ocioso da sessão mudanças:
Is there a way to perform actions when the screensaver activates or deactivates? Or when the session becomes idle?
One way is to watch for the D-Bus signals from gnome-screensaver. (...)
A FAQ fornece um exemplo de comando dbus-monitor :
dbus-monitor --session "type='signal',interface='org.gnome.ScreenSaver',member='SessionIdleChanged'"
Embora eu acredite que os detalhes da interface e do membro estejam desatualizados para o Ubuntu 9.10; os valores apropriados parecem ser interface = org.freedesktop.ConsoleKit.Session e member = IdleHintChanged . (Consulte a documentação do ConsoleKit .)
Quando o bloqueio do protetor de tela é ativado, o sinal IdleHintChanged é emitido após a senha ser inserida com sucesso no diálogo de desbloqueio.
-
O comando gdmflexiserver -xnest pode ser usado a partir da linha de comando para voltar à tela de login. Ele funciona dentro da sua sessão X por si só, mas você pode usar dbus-launch para executá-lo de, digamos, uma sessão SSH:
DISPLAY=:0 dbus-launch gdmflexiserver -xnest
Isso "ativa" a tela de login do GDM, sem registrar a sessão do usuário atual, assim como a opção de menu "Alternar usuário ..." faz (pelo menos tanto quanto eu posso dizer) .
O truque será encontrar alguma maneira de colar esses dois juntos. Parece-me que o que você gostaria de fazer é basicamente:
- Desativar o bloqueio do protetor de tela;
- Registre um ouvinte com o DBus que ouve o sinal IdleHintChanged em todas as sessões;
- Peça ao ouvinte que execute o comando gdmflexiserver quando detectar o sinal.
O passo 1 é necessário para que você não receba a solicitação de senha. Se a etapa 2 funcionar corretamente e a etapa 3 começar, você terá a janela de login sempre que o sistema sair do protetor de tela. Mas o passo 2 é o que eu não sei como fazer.