Como impedir que o botão Liga / Desliga desligue diretamente o sistema?

23

Eu fiz uma nova instalação do Ubuntu 13.10. Quando pressiono o botão liga / desliga, meu computador desliga imediatamente. No Ubuntu 13.04, eu tenho um bom menu, onde eu posso escolher o que fazer. Agora se foi e eu quero de volta. Aqui está o meu /etc/acpi/powerbtn.sh em pastebin.

eu já fiz

gsettings set org.gnome.settings-daemon.plugins.power button-WORD 'interactive'

onde WORDé hibernate, power, sleepe suspend.

Wauzl
fonte
1
Examinei o meu /etc/acpi/powerbtn.she descobri que ele simplesmente não faz nada. O menu estou falando pode ser convocado pelo comandognome-session-quit --power-off
Wauzl
lulz. gostaria de ler o seu comentário antes de entrar em um ganso selvagem tentando encontrar esse comando.
minha resposta não funcionou para você?
Votou sua resposta e tenho certeza que teria funcionado; Eu reinstalei meu sistema inteiro. Eu também tive outros problemas. Isso (oviosamente) o corrigiu para mim.
Wauzl
ah k acabei de vê-lo parado no site sem comentar, então pensei que a notificação poderia ter sido perdida. estranho, totalmente reinstalar corrigiu isso? você baixou a última versão 13.10? Eu fiz uma nova instalação e recentemente tive esse problema.

Respostas:

29

Verifique seu /etc/systemd/logind.confarquivo. Deve ficar assim:

[Login]
#NAutoVTs=6
#ReserveVT=6
#KillUserProcesses=no
#KillOnlyUsers=
#KillExcludeUsers=root
#Controllers=
#ResetControllers=cpu
#InhibitDelayMaxSec=5
#HandlePowerKey=poweroff
#HandleSuspendKey=suspend
#HandleHibernateKey=hibernate
#HandleLidSwitch=suspend
#PowerKeyIgnoreInhibited=no
#SuspendKeyIgnoreInhibited=no
#HibernateKeyIgnoreInhibited=no
#LidSwitchIgnoreInhibited=yes
#IdleAction=ignore
#IdleActionSec=30min

Remova o comentário da linha que diz #HandlePowerKey=poweroffe altere o valor para ignore.

Em seguida, reinicie o logind com o comando: sudo restart systemd-logindou reinicie o seu computador.

EDIT: como criar um novo manipulador acpi Crie um novo arquivo no /etc/acpi/events/. O conteúdo do arquivo deve ser:

event=<acpi_event_code>
action=<script_to_call>

onde <acpi_event_code>está o código que você obtém usando a acpi_listenferramenta e <script_to_call>o caminho completo para o script que você deseja chamar quando esse evento acontece.

Eles devem ter mudado alguma coisa na 13.10 porque parece que tenho poucos arquivos na minha pasta / etc / accpi / events em comparação com a 13.04.

jeremija
fonte
Isso não traz de volta o meu menu amado. Não faz nada quando pressiono o botão liga / desliga agora.
Wauzl
Se o powerbtn.sh for realmente executado com o botão liga / desliga pressionado, você poderá tentar executar o comando do menu de desligamento se o servidor X estiver em execução e o gnome for o seu ambiente de área de trabalho. Dê uma olhada na saída do exportcomando para determinar quais variáveis ​​testar. Se o script powerbtn.sh não for executado, tente ver a qual evento acpi vincular executando acpi_listene pressionando o botão liga / desliga . Além disso, talvez haja uma opção no gnome para trazer o menu de energia de volta, mas não tenho certeza, já faz um tempo desde a última vez que usei o gnome.
jeremija
Eu tentei isso e o powerbtn.sh(provavelmente) não foi executado, porque nada acontece quando pressiono o botão. O acpi_listenbotão diz que o botão aciona um evento acpi. Infelizmente, minhas teclas para aumentar e diminuir o volume também não funcionam. Talvez isso esteja relacionado?
Wauzl
Você pode tentar o seguinte: grep "<acpi_event_code>" /etc/acpi/events/*onde <acpi_event_code>está o código do evento acpi que você viu em acpi_listen. Se você obtiver um resultado, visualize esse arquivo e veja o nome do script que ele chama. Se você não obtiver um resultado, tente adicionar um novo arquivo no arquivo /etc/acpi/events/. Veja a resposta editada para mais detalhes.
jeremija
Confirme se isso funciona com 16.04 LTS no meu mac.
Benjamin R
4

jeremijah me colocou no caminho certo, então parabéns!

Editei /etc/systemd/logind.confcomo recomendado, mas também fiz isso .

Comunidade
fonte
1

Se as soluções acima não funcionarem para você, aqui está uma solução rápida:

  • Instale o xtrlock

Este utilitário faz o trabalho para você. Embora isso possa não responder à pergunta, nas muitas soluções que tentei (incluindo as desta página), nenhuma parece funcionar

Para instalar:

sudo apt install xtrlock 

Para usar: Digite xtrlockna linha de comando. Isso congelará o mouse, o teclado

Para desbloquear, digite sua senha e pressione [Entrar]


Também pode congelar o botão liga / desliga.

PS Esta solução é particularmente útil para quem tem filhos e deseja desativar o botão liga / desliga por esse motivo.

xtrlock - Bloqueie a exibição do X até a senha fornecida, deixando as janelas visíveis Fonte: http://manpages.ubuntu.com/manpages/artful/man1/xtrlock.1x.html

Dody Body
fonte
Por favor, expanda sua resposta. Este aplicativo está disponível nos repositórios? Como você o instalou, por linha de comando ou pelo Ubuntu Software Center? Se via linha de comando, qual comando você usou? Você configurou, de que maneira?
user68186
1

Primeiro, você pode editar seu arquivo de mapa de teclas para alterar o comportamento do botão liga / desliga e atribuí-lo a outra tecla

Edite o arquivo: /usr/share/X11/xkb/symbols/inet(editar chave POWR)

Então você precisará desativar o botão liga / desliga com eficiência. Um bom método é com o xinput

Os xinput --listbotões de energia de execução têm sua própria entrada ... escolha o número do dispositivo e execute

xinput disable devnumber algo como xinput disable 8

intika
fonte