GNOME Bugzilla – Bug 794486
_ICC_PROFILE X11 atom are not handled correctly when more than one monitor is connected
Last modified: 2020-11-12 15:09:00 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.
> "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.
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
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).