gnome 3에서 화면 공백을 다시 활성화합니다.

gnome 3에서 화면 공백을 다시 활성화합니다.

그놈 3.28을 실행합니다. 화면 공백에 문제가 있습니다. 더 구체적으로 말하자면, 화면이 꺼지지 않고 더 이상 화면을 계속 공백으로 만드는 방법을 알 수 없습니다. (언젠가, 몇 년 전에 저는 화면 블랭킹을 완전히 없앴는데, 더 이상 어떻게 했는지 전혀 모릅니다.) 여기에서 블랭킹에 관해 언급할 때 저는 특히 DPMS 끄기 동작을 원하거나 선호합니다.

gnome-preferences의 "Power" 섹션에서 "Blank Screen"을 설정해도 아무런 효과가 없습니다. 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 전원 설정 데몬이 이러한 값을 다시 0으로 설정하고 절대 다시 설정하지 않습니다.

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 설정을 0으로 바꿉니다. 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를 읽고 있으므로 타이머 재설정이 한 번만 수행되어야 하기 때문에 Mutter로 메시지를 보내는 것은 가짜라는 것입니다.

디밍은 dpms 타이머를 사용하지 않고 dpms force off 또는 on을 전송하여 수행됩니다.

건배, 로버트

관련 정보