已经尝试过以下所有解决方案:如何禁用键盘上的睡眠按钮?
gsettings set org.gnome.settings-daemon.plugins.power button-suspend "nothing"
gsettings set org.gnome.settings-daemon.plugins.power button-sleep "nothing"
gsettings set org.gnome.settings-daemon.plugins.power button-hibernate "nothing"
我现在有dconf-工具:
就我而言HP Hewlett Packard WZ972AA ABA 经典键盘:
这个“月亮”按钮仍然有效。还有其他想法吗?
答案1
除了 Gnome 电源设置之外,您还可以设置systemd
以下设置/etc/systemd/logind.conf
:
我的笔记本电脑如下所示:
$ cat /etc/systemd/logind.conf
# This file is part of systemd.
#
# systemd is free software; you can redistribute it and/or modify it
# under the terms of the GNU Lesser General Public License as published by
# the Free Software Foundation; either version 2.1 of the License, or
# (at your option) any later version.
#
# Entries in this file show the compile time defaults.
# You can change settings by editing this file.
# Defaults can be restored by simply deleting this file.
#
# See logind.conf(5) for details.
[Login]
#NAutoVTs=6
#ReserveVT=6
#KillUserProcesses=no
#KillOnlyUsers=
#KillExcludeUsers=root
#InhibitDelayMaxSec=5
#HandlePowerKey=poweroff
#HandleSuspendKey=suspend
#HandleHibernateKey=hibernate
HandleLidSwitch=ignore
#HandleLidSwitchDocked=ignore
#PowerKeyIgnoreInhibited=no
#SuspendKeyIgnoreInhibited=no
#HibernateKeyIgnoreInhibited=no
#LidSwitchIgnoreInhibited=yes
#HoldoffTimeoutSec=30s
#IdleAction=ignore
#IdleActionSec=30min
#RuntimeDirectorySize=10%
#RemoveIPC=yes
#UserTasksMax=12288
请注意,在我的系统上,我更改的唯一选项是HandleLidswitch
。对于您的系统,我将覆盖这些默认值:
#HandleSuspendKey=suspend
#HandleHibernateKey=hibernate
更改为:
HandleSuspendKey=ignore
HandleHibernateKey=ignore
systemd
有点独特,因为以井号(#
)开头的行不仅是注释,还代表采取的默认操作。
不幸的是,我没有你的键盘来测试这个配置。
笔记:保存更改后,重新启动以激活或使用:
sudo systemctl restart systemd-logind.service
答案2
这不是一个解决方案,而是一个变通方法,因为它禁用了暂停功能。
请按照以下两个步骤操作:
添加
HandleSuspendKey=ignore
到[Login]
部分/etc/systemd/logind.conf
。
如果您在日志中启用了调试级别,logind
您将获得如下日志条目:... systemd-logind[518]: Refusing operation, as it is turned off.
在日志中但它仍然因其他一些触发器而暂停。
添加
/etc/systemd/sleep.conf
:[Sleep] SuspendMode=false
现在它仍然对暂停按键做出反应,但失败了:
...systemd-logind[518]: Failed to process message type=method_call sender=:1.54 destination=:1.1 path=/org/freedesktop/login1 interface=org.freedesktop.login1.Manager member=Suspend cookie=26 reply_cookie=0 signature=b error-name=n/a error-message=n/a: Sleep verb not supported in journal
正如所说的那样:在有人能找到更好的解决方案之前,这是一个肮脏的解决方法。
答案3
请尝试“xev”以查看 Linux 是否读取了事件(按下按钮)。也许按钮直接触发了主板上的某个功能?
另一方面,如果您有 中的键码xev
,则应该能够用其他东西重新映射睡眠按钮。请参阅:如何重新映射某些键或设备?
答案4
在 X11 下,我能够使挂起键不挂起,而无需关闭所有媒体键或重新编译 Gnome。
- 设置,
HandleSuspendKey=ignore
和。/etc/systemd/logind.conf
sudo systemctl restart systemd-logind
请注意,这会终止您的用户会话。我不确定这是否绝对必要。 - 下列的这些说明,使用 识别睡眠键的键码
xmodmap -pk | grep Sleep
。我得到了150
。然后运行xmodmap -e 'keycode 150='
以取消该键的映射,并将该命令放在某个地方,比如~/.xinitrc
,它可以在登录时运行。
不幸的是,据报道这种基本方法很难在 Wayland 下运行。