#599941 /usr/bin/xset: xset dpms etc seems to operate on all screens rather than just those provided such as :0.1, in X zaphod mode

Package:
xserver-xorg-core
Source:
xorg-server
Description:
Xorg X server - core server
Submitter:
Tim Connors
Date:
2010-10-19 06:42:04 UTC
Severity:
normal
#599941#5
Date:
2010-10-12 16:13:24 UTC
From:
To:
My xorg.conf is set up to have dpms enabled on one screen (:0.1 -- I'm
using zaphod mode, so :0.0 is a separate screen to :0.1), but disable
on another screen (:0.0, a status screen that must always remain on).

This works, as is expected.  However, if I say:

DISPLAY=:0.1 xset dpms 1200 2400 3600

Then it affects :0.0 as well (even though xorg.conf says that screen
has DPMS disabled!).  It should only affect the asked for display.
Perhaps it should affect all displays if I was trying to talk to :0
rather than :0.0.

Those not using zaphod mode, but using xinerama mode instead,
obviously would have only the one DISPLAY, and thus xset should affect
them all.

#599941#10
Date:
2010-10-12 18:26:53 UTC
From:
To:
The dpms timeouts are global to the X server, not per screen.
Similarly, DPMSEnabled is a global boolean flag.  I don't think there's
a bug here.

Cheers,
Julien

#599941#15
Date:
2010-10-18 21:29:28 UTC
From:
To:
reopen 599941
thanks

Well, it's a regression.

You used to be able to say:

Section "ServerFlags"
    Option         "Xinerama" "0"

# no blank because want right hand display to be lit all the time
#    Option      "BlankTime" "60"
    Option      "BlankTime" "0"
    Option      "StandbyTime" "120"
    Option      "SuspendTime" "180"
    Option      "OffTime" "240"
EndSection

#the "aatxth" mimic display (not to be DPMS blanked)
Section "Monitor"
    # HorizSync source: edid, VertRefresh source: edid
    Identifier     "Monitor0"
    ...
    Option         "DPMS" "false"
EndSection

#the night assistant's terminal (to be DPMS blanked)
Section "Monitor"
    # HorizSync source: edid, VertRefresh source: edid
    Identifier     "Monitor1"
    ...
    Option         "DPMS" "true"
EndSection

(perhaps combined with
DISPLAY=:0.0 xset s off
in .xsession - at least, that's the setup I ended up with on and old
system here)

And have Monitor1 DPMS blank after 2 hours, and have the Monitor0 stay
on and remain unblank.

The best I can do now with the above xorg.conf is to have Monitor1 DPMS
blank after 2 hours, and Monitor0 to remain DPMS on, but go blank.  (so
dpms isn't global, as it shouldn't be, because it is should be legal to
plug different monitors with different capabilities in at the same time).

So it looks to me that Xorg now blanks all screens when the server reaches
the DPMS timeout.  It should have blanked when it reached the screenblank
timeout, which is disabled here, and shouldn't have blanked when it
reached the dpms timeout, instead disabling the appropriate sync signals
on the appropriately enabled monitors (not a global flag.  Never has
been, never should be).