[Openicc] Proposed "ucmm" display profile configuration convention used by ArgyllCMS.

Stefan Döhla color at doehla.de
Mon Jun 2 04:43:58 PDT 2008

Hi Graeme,

good to hear that there's some momentum for a Linux CMM. But I'm 
curious: What's the reason for another format (JSON) instead of XML or a 
simple INI file? XML is much more readable and there's a gazillion 
libraries for creating/parsing/modifying XML documents. And as a side 
note - by defining an XML schema there are even further possibilities 
(like e.g. automatic validity checking, full element documentation 
inside the schema, strict element types, ...). A schema is sufficient as 
documentation/specification for the file format (certainly, only if it 
includes the semantics of the fields).

- Stefan

Graeme Gill wrote:
> [snip]

> I've written a small library to facilitate access to
> the .jcnf files, that will be licensed under an "MIT" license,
> that makes use of Lloyd Hilaiel's YAJL JSON parser, and takes
> care of the necessary conversion to/from key/value form,
> and file locking. The intention is to add this as a back
> end to Elektra, to permit a common color configuration format,
> while not tying color configuration to Elektra.
> [snip]

> The configuration format of the color.jcnf files uses the
> JSON JavaScript Object Notation <http://www.json.org/>,
> a lightweight data-interchange format.
> A hierarchy of members is used to represent a hierarchical key/value pair format.
> The monitor to ICC profile association is organized as independent records, having the form:
>    key                                value
>    devices/display/N/EDID             Monitor EDID  in upper case Hexadecimal
>    devices/display/N/ICC_PROFILE      Full path to the associated ICC profile
> or
>    devices/display/N/NAME             X11 display name
>    devices/display/N/ICC_PROFILE      Full path to the associated ICC profile
> where N is a number starting from 1, that distinguishes each record, but otherwise
> has no special meaning.
> The first form is the preferred form, since it associates the profile with
> the actual physical display, and therefore it is possible to have the profile track
> the display, no matter which X11 screen it is plugged into. The second
> form is a fallback, for situations in which a monitor does not have an
> EDID, or where the X11 server is configured in a way that does not
> permit access to the EDID (i.e.., on a second screen when Xinerama is running).
> For example, the following is an example of a per user color.jcnf:
> {
>    "devices": {
>      "display": {
>        "1": {
>          "EDID": "0x00FFFFFFFFFFFF0034A1731751720000150901010C1F17CDE8A11E9E554A982712474FA4CE0045598180315961590101010101010101000000FE004D6F6E69746F720A2020202020000000FE004D6F6E69746F720A2020202020000000FE004D6F6E69746F720A2020202020000000FE004D6F6E69746F720A2020202020003D",
>          "ICC_PROFILE": "/home/graeme/.local/share/color/devices/display/mon1.icc"
>        },
>        "2": {
>          "NAME": ":0.1",
>          "ICC_PROFILE": "/home/graeme/.local/share/color/devices/display/mon2.icc"
>        }
>      }
>    }
> }

More information about the openicc mailing list