Desligando o seu computador com o dedão do pé
Dica publicada em Linux / Miscelânea
Desligando o seu computador com o dedão do pé
Se você é daqueles que gosta de praticidade, aqui vai um truque legal para agilizar o desligamento do computador.
Quem aqui não tem o costume de ligar o PC com o dedão do pé? E por quê não usar este mesmo processo no desligamento?
Antes de tudo, o processo descrito a seguir funciona em placas mãe com fonte ATX. Todos nós sabemos que não é muito legal fazer isso com fontes AT. Afinal, as primeiras surgiram para isso mesmo, não?
Nota: Esta dica foi testada no Slackware 11.0 e com algumas modificações, certamente funcionará em outras distros.
Bem, primeiro, tenha certeza de estar com o kernel compilado com suporte a acpi ou com esse módulo compilado.
Se você estiver usando o kernel original do Slackware, que já tem suporte a acpi como módulo, basta adicionar a seguinte linha no arquivo /etc/rc.d/rc.modules:
Quem aqui não tem o costume de ligar o PC com o dedão do pé? E por quê não usar este mesmo processo no desligamento?
Antes de tudo, o processo descrito a seguir funciona em placas mãe com fonte ATX. Todos nós sabemos que não é muito legal fazer isso com fontes AT. Afinal, as primeiras surgiram para isso mesmo, não?
Nota: Esta dica foi testada no Slackware 11.0 e com algumas modificações, certamente funcionará em outras distros.
Bem, primeiro, tenha certeza de estar com o kernel compilado com suporte a acpi ou com esse módulo compilado.
Se você estiver usando o kernel original do Slackware, que já tem suporte a acpi como módulo, basta adicionar a seguinte linha no arquivo /etc/rc.d/rc.modules:
/sbin/modprobe button
Se você está com o kernel compilado já com suporte a acpi, este passo acima não são necessários - óbvio.
Em seguida, dê permissão de execução ao arquivo /etc/rc.d/rc.acpid:
# chmod +x /etc/rc.d/rc.acpid
Reinicie o computador.
Nota: Para isso, tenha certeza de estar com o pacote acpid corretamente instalado. Se você fez a instalação full, ele está. Senão, procure no cd de instalação do Slackware.
Pronto! Aperte o botão power do gabinete do seu computador e voiala... Ele explode!!! Brincadeira. Ele simplesmente é desligado, executando todas as tarefas necessárias (desmontar partições, finalizar serviços, etc).
Bem, agora imagine que você está fazendo algo importantíssimo no computador, e quem surge do nada? O seu irmãozinho de cinco anos, que "sem querer" aperta o botão power... Adeus o que você estava fazendo, pois não há confirmação alguma do desligamento do sistema.
Pensando nisso, eu primeiro bolei uma solução para esse problema.
Importante: Ela, por enquanto, funciona somente para usuários do ambiente gráfico KDE.
Funciona assim:
Abra o arquivo /etc/acpi/acpi_handler.sh para edição:
# vim /etc/acpi/acpi_handler.sh
Localize nele a linha 10 (:10) e deixe ela com essa cara:
power) su - <usuário> -c "export DISPLAY=:0; /opt/kde/bin/dcop kdesktop KDesktopIface logout"
Onde <usuário> é o nome de login que você usa no computador.
Salve e feche o arquivo (:x!) e reinicie o acpid:
# /etc/rc.d/rc.acpid restart
Aperte o botão power e aparecerá um diálogo perguntando se você quer desligar seu computador. Como se pode ver, essa é uma solução bem lusitana, e não é difícil perceber suas falhas:
- Se você decidir um dia iniciar no modo texto, ou que não seja KDE, o botão power não servirá para nada.
- Se a máquina for utilizada por mais de um usuário, esse recurso de desligar funcionará somente para um deles - o definido no arquivo.
- Se tiver mais de uma sessão gráfica em execução, esse recurso de desligar funcionará somente para uma delas - a :0.
- Outras falhas, que com certeza existirão, e que ajudarão a comprovar que esse método não funciona muito bem... ;)
Se o KDM estiver em execução, então:
Se o último usuário logado pelo KDM estiver usando o KDE, então:
Executa o processo de confirmação para este usuário.
Senão, desliga pelo processo sem confirmação.
Senão, desliga pelo processo sem confirmação.
Como deu para ver, esse truque precisa do KDM para funcionar. Mas não se preocupe, pois se você usa o KDE, provavelmente está usando o KDM também.
O conteúdo do script está na seguinte página:
Salve o conteúdo desta página num arquivo com o nome de acpi_handler.sh, no diretório /etc/acpi/ (antes crie uma cópia de backup do arquivo existente).
Dê permissão de execução à ele:
# chmod +x /etc/acpi/acpi_handler.sh
Em seguida, abra o arquivo /etc/acpi/events/default:
# vim /etc/acpi/events/default
E localize nele a linha 17 (:17), deixando-a assim:
event=button power.*
Salve e feche o arquivo (:x!) e reinicie o acpid:
# /etc/rc.d/rc.acpid restart
Eu ainda estou procurando um jeito de melhorar este script, mas ele já se encontra funcional, e você pode melhorá-lo, se quiser. E poste aqui no VOL. Eu cheguei até a escrever um diálogo em Tk, mas não ficou muito bom, pois é necessário usar o sudo, além de o Tk (8.5a4) estar atualmente quase tão pesado quanto um GTK+ ou Qt.
Links: Nota: Não tenho nada contra os portugueses. "Solução lusitana" é só maneira de falar. Tudo bem?
Nota final: Eu procurei esta solução por ter visto algo assim no GDM do Ubuntu e no M$ WindowsXP. Então pensei: Se o Windows é capaz de fazer, por que não o Linux? Acredite: o Windows muitas vezes serve como fonte de inspiração. Se é bom, vamos imitar!! ;)
Muito obrigado, espero ter ajudado aos que tiveram o mesmo problema que eu, e até a próxima.
tentei fazer essa paradinha ia....
mas nao sei se fiz algo errado... ou seial.. no meu nao deu mto certo nao...rsrs
flws