Gnome 3: como definir o botão de energia para desligar em vez de suspender?

15

Estou usando o GNOME 3.18.1 em Arch Linux 4.2.5-1-ARCH x86_64 em um laptop Dell E6530. Desde que instalei este SO anos atrás, o botão liga / desliga do meu laptop sempre levou meu sistema operacional a desligar completamente.

No entanto, nas últimas semanas, esse comportamento mudou, de modo que pressionar o botão liga / desliga agora coloca o meu laptop no modo de economia de energia. Eu não mudei minhas configurações de energia. Eu sempre mantenho meu sistema atualizado usando pacman -Syyu , então suspeito que uma atualização tenha alterado essa funcionalidade.

Nas configurações de energia, não há opção para isso. Como posso restaurar o comportamento inicial para que pressionar esse botão desligue o sistema?

    
por Konrad Höffner 10.11.2015 / 15:36

8 respostas

15

Isso é causado pelas últimas gnome-settings-daemon updates ...
Não existe essa opção em configurações de energia porque foi removido pelos desenvolvedores do GNOME (a ação shutdown/power off é considerada "muito destrutiva" ).
Conclusão: você não pode mais desligar seu laptop pressionando o botão desligar .

No entanto, você pode adicionar uma nova opção dconf / gsettings (ou seja, shutdown ) ao plug-in de energia do daemon de configurações, se estiver disposto a corrigir e reconstruir gnome-settings-daemon :

--- gnome-settings-daemon-3.18.2/data/gsd-enums.h   2015-11-10 09:07:12.000000000 -0500
+++ gnome-settings-daemon-3.18.2/data/gsd-enums.h   2015-11-11 18:43:43.240794875 -0500
@@ -114,7 +114,8 @@
 {
   GSD_POWER_BUTTON_ACTION_NOTHING,
   GSD_POWER_BUTTON_ACTION_SUSPEND,
-  GSD_POWER_BUTTON_ACTION_HIBERNATE
+  GSD_POWER_BUTTON_ACTION_HIBERNATE,
+  GSD_POWER_BUTTON_ACTION_SHUTDOWN
 } GsdPowerButtonActionType;

 typedef enum
--- gnome-settings-daemon-3.18.2/plugins/media-keys/gsd-media-keys-manager.c    2015-11-10 09:07:12.000000000 -0500
+++ gnome-settings-daemon-3.18.2/plugins/media-keys/gsd-media-keys-manager.c    2015-11-11 18:47:52.388602012 -0500
@@ -1849,6 +1849,9 @@

         action_type = g_settings_get_enum (manager->priv->power_settings, "power-button-action");
         switch (action_type) {
+        case GSD_POWER_BUTTON_ACTION_SHUTDOWN:
+                do_config_power_action (manager, GSD_POWER_ACTION_SHUTDOWN, in_lock_screen);
+                break;
         case GSD_POWER_BUTTON_ACTION_SUSPEND:
                 do_config_power_action (manager, GSD_POWER_ACTION_SUSPEND, in_lock_screen);
                 break;

Depois de instalar a versão corrigida, uma nova opção shutdown estará disponível em dconf-editor em org > gnome > configurações-daemon > plugins > poder > power-button-action :

selecione isso para desligar usando o botão liga / desliga ou, se preferir, CLI, execute no terminal:

gsettings set org.gnome.settings-daemon.plugins.power power-button-action shutdown

Claro, para o acima funcionar, você também precisa das configurações corretas em /etc/systemd/logind.conf :

HandlePowerKey=poweroff
PowerKeyIgnoreInhibited=yes

Lembre-se de que, ao pressionar o botão liga / desliga, o sistema será desligado sem qualquer aviso.

    
por 12.11.2015 / 00:06
3

Como alternativa, você pode abrir a janela de configurações do teclado e atribuir um atalho de teclado personalizado ao comando gnome-session-quit --power-off , que exibirá o menu de desligamento. Eu tenho que configurar para Super + q .

    
por 16.01.2016 / 18:12
2

Como o @don_crissti explicou, a situação é boba, porque realmente não é possível apenas desligar sem confirmação usando as configurações normais.

No entanto, há uma solução alternativa: se o tipo de chassi da máquina estiver definido como "vm" (máquina virtual), o antigo comportamento de desligamento imediato assumirá as configurações. Basta digitar como root:

hostnamectl set-chassis vm

e reinicie uma vez. Não conheço nenhum efeito colateral dessas configurações.

    
por 12.01.2018 / 13:42
1

Como primeiro passo, você deve se certificar de que as Configurações | Alimentação (assumindo o Gnome v3) "Suspender e desligar" / "Suspensão automática" está desativado. Basicamente, desabilite os recursos de configuração de energia do GNOME e deixe o sistema assumir o controle.

    
por 10.11.2015 / 17:21
0

O atalho de teclado personalizado funciona, eu o defino como gnome-session-quit --power-off --force pressionando apenas o botão liga / desliga, que é tudo o que eu queria.

    
por 19.08.2016 / 18:09
0

Eu encontrei outra opção para realizar isso no Debian Stretch. Instalei o pacote acpi-support-base e editei o arquivo /etc/acpi/powerbtn-acpi-support.sh adicionando as seguintes linhas após o comentário do cabeçalho e antes de qualquer código.

## Bypass logic to force shutdown on power button
/sbin/shutdown -h -P now "Power button pressed"
exit 0

Este é um instrumento um pouco brusco, mas funciona para mim em um desktop e deve funcionar em um laptop. Ele também ignora as configurações do Gnome3, mas é mais fácil do que corrigir o Gnome e recompilar.

De acordo com a página do Arch Wiki sobre acpid , isso provavelmente pode ser implementado modificando /etc/acpi/handler.sh no Arch.

    
por 06.08.2017 / 18:00
0

Eu trabalhei em torno deste problema em um servidor meu, monitorando a saída do log de systemd-logind basicamente refinando as soluções apresentadas em outras respostas.

Esta solução requer dois arquivos. O script que aciona o evento de desligamento real

$ cat /usr/local/bin/shutdown_button_monitor.sh
#!/bin/sh

# ansible managed

# systemd-logind prints a line of the form 
# Dez 21 11:12:10 box03.yeepa.de systemd-logind[748]: Power key pressed.
# on key press, but doesn't handle the button because gnome3 blocks systemd from doing so.
# See 'systemd-inhibit' for that.

# first sleep a minute so we have chance to disable this scritp if it runs amok
sleep 1m

# so we workaround gnome a bit here.
journalctl -u systemd-logind --follow --lines=0 | \
while read line ; do
    if echo "$line" | grep --quiet 'Power key pressed'
    then
        systemctl poweroff
    fi
done

e o arquivo de serviço que inicia / reinicia o arquivo

$ cat /etc/systemd/system/shutdown_button_monitor.service
# ansible managed

[Unit]
Description=Power off the machine if the power button is pressed
# Workaround for gnomes block of the shutdown button
# https://unix.stackexchange.com/questions/242129/gnome-3-how-to-set-power-button-to-shutdown-instead-of-suspend#242452
# Monitor these blocks yourself with 'systemd-inhibit'

[Service]
User=root
ExecStart=/usr/local/bin/shutdown_button_monitor.sh
Restart=always
RestartSec=5

[Install]
WantedBy=multi-user.target
    
por 12.02.2018 / 10:48
0

No Ubuntu 18.04 ou qualquer outra variante similar do Linux com acpi (se você provavelmente não pode instalar), faça um arquivo chamado /etc/acpi/events/power com

sudo nano /etc/acpi/events/power

e coloque

event=button/power
action=/sbin/poweroff

dentro do arquivo, fechá-lo e

sudo service acpid restart

Esta é provavelmente a solução mais simples que definitivamente funciona.

    
por 06.10.2018 / 12:57