Como acordar do protetor de tela diretamente para a tela de login no Ubuntu

6

(também conhecido como Como trocar de usuário sem digitar a senha, parte II) (veja parte I )

Eu tenho o Ubuntu 9.10 com uma conta de usuário para minha esposa e outra para mim. "Wake-from-screensaver" deve resultar em "escolher usuário" sem ter que digitar qualquer senha. Eu sei como fazer isso no Windows, mas não sou bom com o Linux (ainda).

Parte disso foi respondida na minha pergunta anterior que me ajudou a passar a tela de login sem as senhas (após a inicialização e depois escolhendo "trocar usuário"), mas assim que o protetor de tela entra em ação e eu o acordo novamente, o sistema não apresenta a tela "escolher usuário". Em vez disso, ele desativa o protetor de tela e apresenta a área de trabalho do usuário mais recente ou (se a proteção de tela estiver configurada para bloquear a tela) solicita a senha do usuário (que pode ser superada clicando no botão "alternar usuário") escolhendo o mesmo usuário novamente).

Assim, a tela de login ("escolha usuário") foi tratada. Como faço o (qualquer) protetor de tela retornar para a tela de login no wake, em vez de para a área de trabalho do usuário atual? O Windows pode fazer isso, tenho certeza que o Linux também - mas como?

    
por Torben Gundtofte-Bruun 16.03.2010 / 21:34

3 respostas

2

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:

  1. Desativar o bloqueio do protetor de tela;
  2. Registre um ouvinte com o DBus que ouve o sinal IdleHintChanged em todas as sessões;
  3. 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.

    
por 30.03.2010 / 14:07
1

Eu entendo que esta pergunta é há anos, mas alguns usuários ainda podem estar procurando por isso.

Pode-se preferir que a tela de login do Ubuntu bloqueie a tela ao acordar (por exemplo, não mostrar o papel de parede em uma casa criptografada), e isso é possível no Ubuntu 12.10 e 13.04 (não tenho certeza sobre versões anteriores).

Então, para fazer isso, abra o Editor Dconf (pré-instalado no Ubuntu 12.10+) e vá para:

org > gnome > área de trabalho > protetor de tela

Digite o comando dbus-launch gdmflexiserver -xnest para a variável embedded-keyboard-command . Em seguida, marque embedded-keyboard-enabled para o mesmo esquema.

    
por 12.08.2013 / 08:09
0

Eu vou ter que fornecer minha própria resposta aqui, que aparentemente não há solução (fácil) para o que eu estou pedindo.

Uma solução potencialmente existe, mas não está completa e requer uma compreensão profunda do Linux - como pode ser visto na primeira resposta. Portanto, não é uma resposta pronta para usar que eu gostaria de aceitar como "a" resposta.

Pergunta:

How do I make the (any) screensaver return to the login screen at wake, rather than to the current user's desktop?

Resposta: Você não pode.

    
por 02.04.2010 / 13:14