Desliga a tela e tela de bloqueio no gerenciador de energia do Xfce quando a tampa do laptop está fechada?

3

Eu tenho um Dell XPS 13 (modelo 2015) e estou usando o Ubuntu 15.10 com o Xmonad. Eu tenho xfce4-power-manager em execução e gnome-screensaver é usado para bloquear a tela. Na caixa de diálogo de configurações do xfce4-power-manager, há uma configuração "Quando a tampa do laptop está fechada", que possui três opções (separadamente para quando na bateria e quando conectado): Desligue a tela, Suspender e Bloquear tela. / p>

Se eu escolher "Desligar a exibição", a tela não ficará bloqueada ao fechar a tampa. Eu gostaria de ter a tela bloqueada quando eu fechar a tampa. No entanto, quando seleciono "Bloquear tela", a tela não parece estar desligada. Para economizar bateria, também gostaria de desligar a tela. Qual seria uma maneira boa (fácil e / ou um pouco canônica) de obter os dois?

A pergunta Bloqueio de tela após o apagamento com gnome-screensaver e XFCE pode estar relacionado, mas não tem respostas.

    
por JiK 08.02.2016 / 12:01

3 respostas

2

Eu não acho que é possível fazer isso no gerenciador de energia do XFCE. No entanto, você pode criar um script para bloquear a tela e desativá-la, e fazer com que ela seja iniciada assim que você fechar a tampa, ignorando as configurações do gerenciador de energia.

Como iniciar um script personalizado é relatado na página de ajuda oficial do Ubuntu . Eu vou escrever as passagens em seqüência, para entender o motivo de cada passo, leia o post original. Talvez não seja o processo mais fácil (é bem fácil de qualquer maneira, já que você precisa inserir uma série de comandos especificados e preencher arquivos com conteúdo preciso), mas acho que é o único caminho a ser seguido. Além disso, é bastante canônico, tanto com o minúsculo quanto com o C, já que a solução está na ajuda oficial do Ubuntu.

Primeiro, crie um script para disponibilizar variáveis de ambiente para o root, para que ele possa executar comandos no ambiente do usuário normal. (Coloco mousepad nos comandos, pois é o editor de texto padrão do XFCE. Substitua por GEdit , SciTE , Emacs , nano , vim ou qualquer outro editor que você use)

$ mousepad ~/export_x_info

Com o seguinte conteúdo

# Export the dbus session address on startup so it can be used by any other environment
sleep 5
touch $HOME/.Xdbus
chmod 600 $HOME/.Xdbus
env | grep DBUS_SESSION_BUS_ADDRESS > $HOME/.Xdbus
echo 'export DBUS_SESSION_BUS_ADDRESS' >> $HOME/.Xdbus

# Export XAUTHORITY value on startup so it can be used by cron
env | grep XAUTHORITY >> $HOME/.Xdbus
echo 'export XAUTHORITY' >> $HOME/.Xdbus

E torne-o executável

$ chmod 700 ~/export_x_info

Adicione em SettingsSession and StartupApplication autostart para configurá-lo para ser executado na inicialização.

Crie /etc/acpi/events/lm_lid

# mousepad /etc/acpi/events/lm_lid

Com este conteúdo

event=button/lid.*
action=/etc/acpi/lid.sh

Isso executará /etc/api/lid.sh quando o botão da tampa for acionado. Vamos criá-lo

# mousepad /etc/api/lid.sh

#!/bin/bash

/home/%user/lid_event

(obviamente, substitua %user pelo seu nome de usuário)

Isso significa que o script executará /home/%user/lid_event . Vamos criar também

$ mousepad ~/lid_event

grep -q closed /proc/acpi/button/lid/LID/state
if [ $? = 0 ]
then
    /home/%user/close;
else
    /home/%user/open;
fi

Isso executará ~/open se a tampa estiver aberta e ~/close se estiver fechada. Mais uma vez, vamos criá-los:

$ mousepad ~/close

Já que para desativar a tela, você precisa de xset dpms force off e, para bloqueá-la, precisa de xflock4 . Ela gravará isso em close :

#This runs so that root can run the following command under the user's environment
source /home/%user/.Xdbus
#Lock and turn off screen
DISPLAY=:0.0 su %user -c "xflock4 && xset dpms force off"

Por dentro, como sugerido pela ajuda do Ubuntu, você pode tocar um som de sua escolha (fiz um teste com o arroto de Barney Gumble)

#This runs so that root can run the following command under the user's environment
source /home/%user/.Xdbus
#play a open sound
DISPLAY=:0.0 su %user -c "aplay %path/to/a/sound/of/your/choice"

Vamos torná-los todos executáveis

$ chmod +x ~/lid_event
$ chmod +x ~/open
$ chmod +x ~/close

Reinicie o acpid

# /etc/init.d/acpid restart

Inicie o ~/export_x_info (ou reinicie seu laptop para que ele seja iniciado automaticamente na inicialização) e feche / abra sua tampa para ver se funciona.

Nota: no meu laptop, a tela de bloqueio também a desativaria, por isso não pude testar 100% da ação dupla, mas funcionou para bloqueá-la. Além disso, a página de ajuda coloca, por exemplo, uma ação para alterar o status do Pidgin para fora quando você fecha a tampa e como "Estou aqui" ao abri-lo, muito útil.

TL; DR (se esse problema ocorrer a uma pessoa preguiçosa ou a um novato): insira os comandos no plano de fundo cinza ( # significa que você precisa de privilégios de root elevados ou simplesmente digite sudo antes do comando, enquanto $ significa que você deve inserir o comando como usuário regular). Quando o comando chamar um editor de texto (por exemplo, mousepad ), copie e cole a peça no segundo plano amarelo do editor e salve e feche.

    
por 10.03.2016 / 14:30
0

Eu não estou no meu laptop no momento, mas verifique se o Power Manager - > Bateria (e AC) - > Monitor - > "Colocar a tela em suspensão quando o computador está inativo por" e "Desligar a exibição quando o computador está inativo por" não estão definidos como "Nunca". O número não importa, mas "Nunca" substituirá a opção de fechamento da tampa.

Além disso, certifique-se de que os aplicativos que você está executando não desativem o recurso de economia de energia da tela. Os players de mídia e os jogos geralmente têm opções para impedir que a tela seja desligada durante a execução.

    
por 07.03.2016 / 12:13
0

xflock4 pode invocar diferentes protetores de tela dependendo de quais estão instalados em seu sistema: veja /usr/bin/xflock4 .

Aqui, eu tenho xscreensaver , que é a opção preferida em xflock4 . Pode ser configurado por xscreensaver-command -prefs , onde você pode configurar a tela para ser desligada após um atraso de sua escolha.

    
por 11.03.2016 / 15:18