如何禁用 Ubuntu 18.04 的睡眠/挂起/休眠 HP 键盘按钮?

如何禁用 Ubuntu 18.04 的睡眠/挂起/休眠 HP 键盘按钮?

已经尝试过以下所有解决方案:如何禁用键盘上的睡眠按钮?

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

这不是一个解决方案,而是一个变通方法,因为它禁用了暂停功能。
请按照以下两个步骤操作:

  1. 添加 HandleSuspendKey=ignore[Login]部分/etc/systemd/logind.conf
    如果您在日志中启用了调试级别,logind您将获得如下日志条目:

    ... systemd-logind[518]: Refusing operation, as it is turned off. 
    

    在日志中但它仍然因其他一些触发器而暂停。

  2. 添加/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。

  1. 设置,HandleSuspendKey=ignore和。/etc/systemd/logind.confsudo systemctl restart systemd-logind请注意,这会终止您的用户会话。我不确定这是否绝对必要。
  2. 下列的这些说明,使用 识别睡眠键的键码xmodmap -pk | grep Sleep。我得到了150。然后运行xmodmap -e 'keycode 150='以取消该键的映射,并将该命令放在某个地方,比如~/.xinitrc,它可以在登录时运行。

不幸的是,据报道这种基本方法很难在 Wayland 下运行。

相关内容