如何在 Ubuntu 20LTS 上禁用电源按钮的行为

Mat*_*lák 8 shutdown hibernate power-management 20.04

我禁用了桌面上的电源按钮(按下它什么也没做,没有关机,没有休眠/睡眠,因为我的孩子喜欢按它)
在我将 ubuntu 从 18LTS 升级到 20LTS 后,禁用的电源按钮行为不再起作用。当它被按下时,它会休眠 PC。

这是我当前的设置 gsettings list-recursively org.gnome.settings-daemon.plugins.power

org.gnome.settings-daemon.plugins.power lid-close-ac-action 'suspend'
org.gnome.settings-daemon.plugins.power time-critical 300
org.gnome.settings-daemon.plugins.power power-button-action 'nothing'
org.gnome.settings-daemon.plugins.power lid-close-suspend-with-external-monitor false
org.gnome.settings-daemon.plugins.power button-hibernate 'nothing'
org.gnome.settings-daemon.plugins.power idle-dim true
org.gnome.settings-daemon.plugins.power button-power 'nothing'
org.gnome.settings-daemon.plugins.power lid-close-battery-action 'suspend'
org.gnome.settings-daemon.plugins.power priority 0
org.gnome.settings-daemon.plugins.power idle-brightness 30
org.gnome.settings-daemon.plugins.power active true
org.gnome.settings-daemon.plugins.power critical-battery-action 'suspend'
org.gnome.settings-daemon.plugins.power button-suspend 'nothing'
org.gnome.settings-daemon.plugins.power button-sleep 'nothing'
org.gnome.settings-daemon.plugins.power percentage-critical 3
org.gnome.settings-daemon.plugins.power sleep-inactive-ac-timeout 3600
org.gnome.settings-daemon.plugins.power sleep-inactive-ac-type 'nothing'
org.gnome.settings-daemon.plugins.power ambient-enabled true
org.gnome.settings-daemon.plugins.power notify-perhaps-recall true
org.gnome.settings-daemon.plugins.power percentage-low 10
org.gnome.settings-daemon.plugins.power percentage-action 2
org.gnome.settings-daemon.plugins.power sleep-inactive-battery-type 'suspend'
org.gnome.settings-daemon.plugins.power time-low 1200
org.gnome.settings-daemon.plugins.power sleep-inactive-battery-timeout 1200
org.gnome.settings-daemon.plugins.power time-action 120
org.gnome.settings-daemon.plugins.power use-time-for-policy true
Run Code Online (Sandbox Code Playgroud)

cat /etc/systemd/logind.conf

[Login]
#NAutoVTs=6
#ReserveVT=6
#KillUserProcesses=no
#KillOnlyUsers=
#KillExcludeUsers=root
#InhibitDelayMaxSec=5
HandlePowerKey=ignore
HandleSuspendKey=ignore
HandleHibernateKey=ignore
#HandleLidSwitch=suspend
#HandleLidSwitchDocked=ignore
#PowerKeyIgnoreInhibited=no
#SuspendKeyIgnoreInhibited=no
#HibernateKeyIgnoreInhibited=no
#LidSwitchIgnoreInhibited=yes
#HoldoffTimeoutSec=30s
#IdleAction=ignore
#IdleActionSec=30min
#RuntimeDirectorySize=10%
#RemoveIPC=yes
#InhibitorsMax=8192
#SessionsMax=8192
#UserTasksMax=33%
Run Code Online (Sandbox Code Playgroud)

你有什么想法可能是错的吗?
感谢您的帮助。

san*_*lio 5

我不确定你的文件有什么问题。

  1. 道路logind

    你试过了吗

    sudo systemctl restart systemd-logind
    
    Run Code Online (Sandbox Code Playgroud)

    或者(更好)重新启动?

  2. 道路acpid

    此外,这是获得您正在寻找的行为的可能方法。使用以下文件创建 ACPI 处理程序/etc/acpi/events/

    sudo nano /etc/acpi/events/powerbtn-acpi-support
    
    Run Code Online (Sandbox Code Playgroud)

    (注意:根据官方信息,“规则是由简单的配置文件定义的。acpid 将查找配置目录(默认为 /etc/acpi/events),并解析所有不以句点('. ') 或以波形符 (~) 结尾。")

    使该文件包含

    event=button[ /]power
    action=
    
    Run Code Online (Sandbox Code Playgroud)

    然后重新启动 acpi 守护进程

    sudo service acpid restart
    
    Run Code Online (Sandbox Code Playgroud)

笔记:

  1. 纸板方式很有趣。

资料来源:

https://superuser.com/questions/1523918/run-script-when-power-button-pressed

https://wiki.archlinux.org/index.php/acpid

如何防止电源按钮直接关闭系统?

https://superuser.com/questions/699905/change-behavior-of-linux-power-button/699925


WU-*_*ANG 2

检查是否有其他桌面环境在运行,例如:
com.canonical.unity.settings-daemon.plugins.power

org.mate.power-manager

你可能做出了正确的改变,但是针对错误的环境......

对 gsettings 进行更通用的搜索也可以有所帮助:
gsettings list-recursively | grep button在我的系统上还会产生:



com.canonical.unity.settings-daemon.plugins.power 电源按钮操作“暂停”
com.canonical.unity.settings-daemon.plugins.power 按钮休眠“休眠”
com.canonical.unity.settings-daemon。 plugins.power 按钮-电源'挂起'
com.canonical.unity.settings-daemon.plugins.power 按钮-挂起'挂起'
com.canonical.unity.settings-daemon.plugins.power 按钮-睡眠'休眠'