summaryrefslogtreecommitdiff
path: root/doc/ucmm.html
blob: 31d95cb8b29e879b7e915ec54c2de4d97efe3413 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
<!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>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $XDG_CONFIG_DIRS/color.jcnf<br>
or&nbsp;&nbsp; /etc/xdg/color.jcnf<br>
<br>
and display profiles are stored in<br>
<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $XDG_DATA_DIRS/color/icc/devices/display/<br>
or&nbsp;&nbsp; /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>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $XDG_CONFIG_HOME/color.jcnf<br>
or&nbsp;&nbsp; $HOME/.config/color.jcnf<br>
<br>
and display profiles are stored in<br>
<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $XDG_DATA_HOME/color/icc/devices/display/<br>
or&nbsp;&nbsp; $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>
&nbsp; <span style="font-weight: bold;">key</span>&nbsp;&nbsp;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
<span style="font-weight: bold;">value</span><br>
<br>
&nbsp; devices/display/<span style="font-weight: bold;">N</span>/EDID&nbsp;&nbsp;
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp;&nbsp;
&nbsp;&nbsp;&nbsp;&nbsp; Monitor EDID&nbsp; in upper case Hexadecimal <br>
&nbsp; devices/display/<span style="font-weight: bold;">N</span>/ICC_PROFILE&nbsp;&nbsp;
&nbsp;&nbsp; Full path to the associated ICC profile<br>
<br>
or<br>
<br>
&nbsp; devices/display/<span style="font-weight: bold;">N</span>/NAME
&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp;&nbsp;
&nbsp;&nbsp;&nbsp; X11 display name <br>
&nbsp; devices/display/<span style="font-weight: bold;">N</span>/ICC_PROFILE&nbsp;&nbsp;
&nbsp;&nbsp; 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>
&nbsp; "devices": {<br>
&nbsp;&nbsp;&nbsp; "display": {<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; "1": {<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; "EDID":
"0x00FFFFFFFFFFFF0034A1731751720000150901010C1F17CDE8A11E9E554A982712474FA4CE0045598180315961590101010101010101000000FE004D6F6E69746F720A2020202020000000FE004D6F6E69746F720A2020202020000000FE004D6F6E69746F720A2020202020000000FE004D6F6E69746F720A2020202020003D",<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; "ICC_PROFILE":
"/home/graeme/.local/share/color/devices/display/mon1.icc"<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; },<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; "2": {<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; "NAME": ":0.1",<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; "ICC_PROFILE":
"/home/graeme/.local/share/color/devices/display/mon2.icc"<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br>
&nbsp;&nbsp;&nbsp; }<br>
&nbsp; }<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>