<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <title>ucmm conventions and format.</title> <meta http-equiv="content-type" content="text/html; charset=ISO-8859-1"> <meta name="author" content="Graeme Gill"> </head> <body> <h2>ucmm organization and conventions.<br> </h2> ucmm (Unix micro Color Management Module) is a color management module designed just to handle the necessary configuration needed to track the installation and association of ICC profiles with Unix/Linux X11 displays. It could be expanded at some point to also hold the associations for other devices such as scanner and printers.<br> <br> It consists primarily of a small configuration database that associates a display monitor (identified by its EDID or the X11 display name if an EDID is not known) with an ICC Display profile.<br> <br> There are two configuration contexts, <span style="font-weight: bold;">local system</span> and <span style="font-weight: bold;">per user</span>, the latter taking precedence when both are present.<br> <br> ucmm follows the <a href="http://standards.freedesktop.org/basedir-spec/basedir-spec-0.6.html">XDG Base Directory specifications</a> for the location of the configuration file and display profiles.<br> <br> For the <span style="font-weight: bold;">local system</span> context, the ucmm configuration file is located at:<br> <br> $XDG_CONFIG_DIRS/color.jcnf<br> or /etc/xdg/color.jcnf<br> <br> and display profiles are stored in<br> <br> $XDG_DATA_DIRS/color/icc/devices/display/<br> or /usr/local/share/color/icc/devices/display/<br> <br> For <span style="font-weight: bold;">per user</span> contents, the ucmm configuration file is located at:<br> <br> $XDG_CONFIG_HOME/color.jcnf<br> or $HOME/.config/color.jcnf<br> <br> and display profiles are stored in<br> <br> $XDG_DATA_HOME/color/icc/devices/display/<br> or $HOME/.local/share/color/icc/devices/display/<br> <br> The configuration format of the <span style="font-weight: bold;">color.jcnf</span> files uses the <a href="http://www.json.org/">JSON JavaScript Object Notation</a>, a lightweight data-interchange format.<br> <br> A hierarchy of members is used to represent a hierarchical key/value pair format.<br> <br> The monitor to ICC profile association is organized as independent records, having the form:<br> <br> <span style="font-weight: bold;">key</span> <span style="font-weight: bold;">value</span><br> <br> devices/display/<span style="font-weight: bold;">N</span>/EDID Monitor EDID in upper case Hexadecimal <br> devices/display/<span style="font-weight: bold;">N</span>/ICC_PROFILE Full path to the associated ICC profile<br> <br> or<br> <br> devices/display/<span style="font-weight: bold;">N</span>/NAME X11 display name <br> devices/display/<span style="font-weight: bold;">N</span>/ICC_PROFILE Full path to the associated ICC profile<br> <br> where <span style="font-weight: bold;">N</span> is a number starting from 1, that distinguishes each record, but otherwise has no special meaning.<br> <br> The first form is the preferred form, since it associates the profile with the actual 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).<br> <br> The following is an example of a per user color.jcnf:<br> <br> {<br> "devices": {<br> "display": {<br> "1": {<br> "EDID": "0x00FFFFFFFFFFFF0034A1731751720000150901010C1F17CDE8A11E9E554A982712474FA4CE0045598180315961590101010101010101000000FE004D6F6E69746F720A2020202020000000FE004D6F6E69746F720A2020202020000000FE004D6F6E69746F720A2020202020000000FE004D6F6E69746F720A2020202020003D",<br> "ICC_PROFILE": "/home/graeme/.local/share/color/devices/display/mon1.icc"<br> },<br> "2": {<br> "NAME": ":0.1",<br> "ICC_PROFILE": "/home/graeme/.local/share/color/devices/display/mon2.icc"<br> }<br> }<br> }<br> }<br> <br> <h3>Implementation</h3> The configuration file format is in the <span style="font-weight: bold;"></span>Argyll source in the jcnf sub directories, and the ucmm functionality in the ucmm sub directories, and is made available under an MIT like free use license. </body> </html>