重新启用 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,inhibit向 SessionManager 发送请求:

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 正在将 org.gnome.SessionManager.Presence 读取为以前的 gnome-scrennsaver,因此向 mutter 发送消息是假的,因为重置计时器应该只进行一次。

调光是通过发送 dpms force off 或 on 来实现的,不依赖于 dpms 定时器

欢呼吧,罗伯特

相关内容