Como desligar o computador do Openbox como item de menu?

3

Como posso adicionar um item de menu ao Openbox que inicia um aviso para cancelar ou fornecer uma senha de root e, em seguida, desliga X e o computador se a senha correta foi fornecida? A questão Desligar o computador do Openbox está relacionada, mas a resposta envolvia a digitação, não clicando nos menus.

A documentação sugere que se adicione um menu systemctl poweroff como este, mas os menus não parecem funcionar:

<item label="Shutdown">
    <action name="Execute">
        <command>systemctl poweroff</command>
    </action>
</item>

Estou usando o Debian 7.0.

    
por Village 03.02.2014 / 09:27

1 resposta

2

Na minha área de trabalho, uso os seguintes itens de menu para reinicializar e parar:

<item label='Shutdown'>
   <action name='Execute'>
     <command>/usr/local/bin/opBox-exit.sh halt</command>
   </action>
</item>
<item label='Reboot'>
   <action name='Execute'>
     <command>/usr/local/bin/opBox-exit.sh reboot</command>
   </action>
</item>

O script /usr/local/bin/opBox-exit.sh usa zenity para abrir uma caixa de diálogo cancelar confirmação e quando o botão confirmar foi pressionado, executa sudo halt ou sudo reboot . Eu configurei o arquivo sudoers para que meu usuário não precise digitar uma senha para executar halt e reboot com sudo . Para mim isso é mais conveniente. Aqui está o script completo

#!/usr/bin/env bash

if [ -z $1 ];then
   echo "Usage: $0 [reboot|halt]"
   exit
fi
if [ $1 = reboot ];then
   zenity --question --ok-label "Reboot" --text "Reboot $HOST?" && sudo /sbin/reboot
elif [ $1 = halt ];then
   zenity --question --ok-label "Shudown" --text "Shutdown $HOST?" && sudo /sbin/halt -p
fi

Quando você quiser um diálogo para a senha do usuário, recomendo que use gksudo halt -p em vez de todo o zenity --question ... && sudo halt -p stuff. Para isso, seu usuário ainda precisaria poder executar comandos via sudo . Dê uma olhada em man sudoers para mais informações.

gksudo está no pacote Debain gksu .

    
por 04.02.2014 / 10:10