Gnome 3 で画面の消去を再度有効にする

Gnome 3 で画面の消去を再度有効にする

Gnome 3.28 を実行しています。画面のブランクに問題があります。具体的には、画面がブランクにならず、どうすれば一貫してブランクにできるかわかりません。(何年も前に、画面のブランクを完全に無効にしましたが、どうやって無効にしたのかはもうわかりません。) この中で、ブランクについて言及する場合、特に DPMS オフの動作を希望/好んでいます。

gnome-preferences の「電源」セクションで「空白の画面」を設定しても何も起こりません。 xset q次の結果が返されます。

DPMS (Energy Star):
  Standby: 0    Suspend: 0    Off: 0
  DPMS is Enabled
  Monitor is On

を使用すると、画面の消去をオンにできますxset dpms 1200 2400 4800。これは機能します。ただし、dbus を使用して画面の消去を禁止することを要求するアプリケーション (Chrome の Youtube など) を実行すると、gnome 電源設定デーモンによってこれらの値がゼロに設定され、元に戻らなくなります。

何が起こっているかを追跡し、たとえば Youtube を起動すると、inhibitSessionManager にリクエストが送信されます。

method call time=1533650079.657788 sender=:1.1216 -> destination=org.gnome.SessionManager serial=3 path=/org/gnome/SessionManager; interface=org.gnome.SessionManager; member=Inhibit
   string "/usr/bin/google-chrome-stable"
   uint32 0
   string "Playing video"
   uint32 12
signal time=1533650079.659445 sender=:1.14 -> destination=(null destination) serial=10679 path=/org/gnome/SessionManager; interface=org.gnome.SessionManager; member=InhibitorAdded
   object path "/org/gnome/SessionManager/Inhibitor975"
method return time=1533650079.659468 sender=:1.14 -> destination=:1.1216 serial=10680 reply_serial=3
   uint32 754926118
signal time=1533650079.659475 sender=:1.14 -> destination=(null destination) serial=10681 path=/org/gnome/SessionManager; interface=org.freedesktop.DBus.Properties; member=PropertiesChanged
   string "org.gnome.SessionManager"
   array [
      dict entry(
         string "InhibitedActions"
         variant             uint32 12
      )
   ]
   array [
   ]

これにより、gsd-powerデーモンは mutter に省電力モードをオフにするように要求します。

method call time=1533650079.666562 sender=:1.36 -> destination=:1.16 serial=182 path=/org/gnome/Mutter/DisplayConfig; interface=org.freedesktop.DBus.Properties; member=Set
   string "org.gnome.Mutter.DisplayConfig"
   string "PowerSaveMode"
   variant       int32 0

これは機能し、DPMS 設定がゼロになります。YouTube セッションを閉じると、一致する抑制解除要求が表示されます。

method call time=1533650081.283611 sender=:1.1216 -> destination=org.gnome.SessionManager serial=4 path=/org/gnome/SessionManager; interface=org.gnome.SessionManager; member=Uninhibit
   uint32 754926118
signal time=1533650081.286730 sender=:1.14 -> destination=(null destination) serial=10690 path=/org/gnome/SessionManager; interface=org.gnome.SessionManager; member=InhibitorRemoved
   object path "/org/gnome/SessionManager/Inhibitor975"
method call time=1533650081.286768 sender=:1.14 -> destination=org.freedesktop.DBus serial=10691 path=/org/freedesktop/DBus; interface=org.freedesktop.DBus; member=RemoveMatch
   string "type='signal',sender='org.freedesktop.DBus',interface='org.freedesktop.DBus',member='NameOwnerChanged',path='/org/freedesktop/DBus',arg0=':1.1216'"
method return time=1533650081.286778 sender=org.freedesktop.DBus -> destination=:1.14 serial=3032 reply_serial=10691
method return time=1533650081.286784 sender=:1.14 -> destination=:1.1216 serial=10692 reply_serial=4
signal time=1533650081.286789 sender=:1.14 -> destination=(null destination) serial=10693 path=/org/gnome/SessionManager; interface=org.freedesktop.DBus.Properties; member=PropertiesChanged
   string "org.gnome.SessionManager"
   array [
      dict entry(
         string "InhibitedActions"
         variant             uint32 4
      )
   ]
   array [
   ]

しかし、mutter に省電力モードを再度オンにするように指示するものは何もありません。通常、これを実行するものは何ですか。また、これを妨げるものは何ですか。

答え1

画面をロックしないと暗くならないので、GDM はオンになっていますか。

問題は、gdm が以前の gnome-scrennsaver として org.gnome.SessionManager.Presence を読み取っているため、リセット タイマーは 1 回だけ実行される必要があるため、mutter にメッセージを送信するのは偽物であることです。

調光は、dpmsタイマーに依存せずにdpmsを強制的にオフまたはオンにすることで行われます。

乾杯、ロバート

関連情報