Introduction

This is a specification for associating ICC1 colour profiles with X
screens. With this specification applications can obtain the appropriate
display profile for the screen they are on, and apply colour correction to
any images which are being shown to the user.

Specification

Currently there is only one atom base name defined.

_ICC_PROFILE

The _ICC_PROFILE atom is set on the root window of
the default (first) screen.

For root windows spanning more than one screen, as typical in Xinerama
multihead configurations, an atom for each screen is added holding the
appropriate ICC profile. All screens in a root window starting from
number one use _ICC_PROFILE as the atom name extended
with an underscore plus the screen number,
e.g. _ICC_PROFILE_1.

The atoms are of type XA_CARDINAL with 8-bit elements. The
value of the atom should be a literal ICC profile, that applications can
read and parse directly.

This property does not have to be set on every screen. When this
property is not set on a screen, the screen is uncalibrated, and no
colour correction for display should be done.

As profiles can be large applications should read the profile for a
particular screen once, and cache it. As a screen's profile may change
during the lifetime of the process, applications should ask to receive
property change notifications from the root window, even if they don't
currently have a profile set. Applications which can change screens
using mechanisms such as display migration should be aware that the new
screen is likely to have a different profile.