web-dev-qa-db-ja.com

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-toolsで今持っています:

enter image description here

私の場合HP Hewlett Packard WZ972AA ABA Classic Keyboard

enter image description here

この「月」ボタンはまだ機能しています。

5
mature

Gnomeの電源設定に加えて、/etc/systemd/logind.confにあるsystemd設定を設定できます。

私のラップトップは次のようになります。

$ 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
3

Linuxでイベント(ボタンを押す)が読み取られるかどうかを確認するには、「xev」を試してください。ボタンがメインボードの機能を直接トリガーしているのでしょうか?

一方、xevにキーコードがある場合は、スリープボタンを他のもので再マッピングできるはずです。参照: 特定のキーまたはデバイスを再マップするにはどうすればよいですか?

2
LupusE

解決策ではありませんが、一時停止を無効にするための回避策です。
次の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
    

前述のように、誰かがより良い解決策を見つけることができるまで、それは汚い回避策です。

2
user942015