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

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

我禁用了桌面上的电源按钮(按下它没有任何作用,没有关机,没有休眠/睡眠,因为我的孩子喜欢按它)
在我将我的 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

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%

您知道哪里出了问题吗?
谢谢您的帮助。

答案1

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

  1. 道路logind

    你试过了吗

    sudo systemctl restart systemd-logind
    

    或者(更好)重新启动?

  2. 道路acpid

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

    sudo nano /etc/acpi/events/powerbtn-acpi-support
    

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

    使该文件包含

    event=button[ /]power
    action=
    

    然后使用以下命令重新启动 acpi 守护进程

    sudo service acpid restart
    

笔记:

  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

答案2

Ubuntu 20.04 LTS 在 GUI 控件中提供了此功能。有一个选项可以让电源按钮在电源按钮行为下拉式菜单。
*
在此处输入图片描述

答案3

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

org.mate.power-manager

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

对 gsettings进行更通用的搜索也会有所帮助:
gsettings list-recursively | grep button在我的系统上另外还会得到:
...
com.canonical.unity.settings -daemon.plugins.power power-button-action 'suspend'com.canonical.unity.settings -daemon.plugins.power button-hibernate 'hibernate'com.canonical.unity.settings -daemon.plugins.power button-power 'suspend'com.canonical.unity.settings -daemon.plugins.power button-suspend 'suspend'com.canonical.unity.settings -daemon.plugins.power button-sleep 'hibernate'





答案4

由于某种原因,sleep.conf 很少被提及,我无法从 Ubuntu Jammy(22.04LTS)上提出的解决方案中获得任何其他工作,所以最终这个解决了它:

$ sudo nano /etc/systemd/sleep.conf

然后,更改以下行,如下所示以禁用所有电源选项:

AllowSuspend=no
AllowHibernation=no
AllowSuspendThenHibernate=no
AllowHybridSleep=no

此后,sudo ldconfig和/或重新启动,您就应该一切就绪了。

相关内容