After an evaluation, GNOME has moved from Bugzilla to GitLab. Learn more about GitLab.
No new issues can be reported in GNOME Bugzilla anymore.
To report an issue in a GNOME project, go to GNOME GitLab.
Do not go to GNOME Gitlab for: Bluefish, Doxygen, GnuCash, GStreamer, java-gnome, LDTP, NetworkManager, Tomboy.
Bug 794486 - _ICC_PROFILE X11 atom are not handled correctly when more than one monitor is connected
_ICC_PROFILE X11 atom are not handled correctly when more than one monitor is...
Status: RESOLVED OBSOLETE
Product: gnome-color-manager
Classification: Core
Component: general
git master
Other All
: Normal normal
: ---
Assigned To: gnome-color-manager-maint
gnome-color-manager-maint
Depends on:
Blocks:
 
 
Reported: 2018-03-19 15:18 UTC by Simon Raffeiner
Modified: 2020-11-12 15:09 UTC
See Also:
GNOME target: ---
GNOME version: ---



Description Simon Raffeiner 2018-03-19 15:18:21 UTC
According to the X specifications [0,1]:

"The atom name for the first monitor in a root window is _ICC_PROFILE.

For root windows spanning more than one monitor, as typical in Xinerama and XRandR multihead configurations, a atom for each monitor is added holding the appropriate ICC profile. The first monitor uses the _ICC_PROFILE atom name. All monitors in a root window starting from number one use _ICC_PROFILE as atom name extended with an underscore plus the monitor number, e.g. _ICC_PROFILE_1 . Monitor counting starts with zero. Thus a _ICC_PROFILE_0 atom should not appear. The counting follows the Xinerama API."

The current code only handles the first monitor and never sets _ICC_PROFILE_1 etc.
Comment 1 Richard Hughes 2018-03-22 09:12:14 UTC
> "The counting follows the xxx API"

What is the value of 'n' in '_ICC_PROFILE_n' when running using Xrandr? The Xrandr API has an text connection ID that is not tied to the monitor, only the port -- there's no explicit connection number anywhere.

Also, when you're using Wayland there are no "root windows" so you have to use the D-Bus API in that case.

I don't think it's possible to solve this bug. In my opinion, the ICC-profiles-in-X specification is just impossible to implement fully on a modern desktop stack.
Comment 2 Simon Raffeiner 2018-03-22 12:08:50 UTC
I don't know if it helps, and I don't know if the way they do it is correct, but the darktable-cmstest tool [0] and colord-kde [1] seem to have matching definitions of how to count/index the attached monitors. At least to the point where it looks like both colord and the X atom store the same profile for each of my three monitors (configured to display an extended desktop using XRandR).

Wayland is probably a completely different story since it doesn't have neither root windows nor X atoms.

[0] https://github.com/darktable-org/darktable/blob/dd610a2de9cccc301fa3810823ec839a442e5912/src/cmstest/main.c

[1] https://bugs.kde.org/show_bug.cgi?id=328248
Comment 3 André Klapper 2020-11-12 15:09:00 UTC
bugzilla.gnome.org is being replaced by gitlab.gnome.org. We are closing all
old bug reports and feature requests in GNOME Bugzilla which have not seen
updates for a long time.

If you still use gnome-color-manager and if you still see this bug / want this feature in a recent and currently supported version, then please feel free to report it at https://gitlab.gnome.org/GNOME/gnome-color-manager/-/issues/

Thank you for creating this report and we are sorry it could not be implemented
(volunteer workforce and time is quite limited).