Back to the main page
General architecture plan
CUPS query architecture plan
Detailed CUPS integration plan
The configuration of devices to profiles is stored in the colord mapping
database, which is /var/lib/colord/mapping.db by default.
The schema is really simple, and as follows:
CREATE TABLE mappings (id TEXT PRIMARY KEY,device TEXT,profile TEXT, timestamp INTEGER DEFAULT 0);
Multiple profiles can of course be assigned to the same device.
Persistent devices and profiles can also be saved to the storage database,
which is /var/lib/colord/storage.db by default.
The schema is again really simple, and as follows:
CREATE TABLE devices (device_id TEXT PRIMARY KEY,device TEXT); CREATE TABLE properties (device_id TEXT,property TEXT,value TEXT);
One user may want to set the default for all users.
We cannot reference files in /home/foo/.icc/ when logged in
as user bar, as the user will not have access permissions, or in the
worst case, /home/foo may be encrypted and inaccessible even as root.
For this reason, colord copies the ICC profiles to a system-wide directory,
/usr/lib/color that is per-machine and accessible to all users.
It is encouraged that other CMS implementations also read ICC profiles from the per-machine
/usr/lib/color directory.
GNOME Color Manager is a session framework that makes it easy to manage, install and generate color profiles in the GNOME desktop.
GNOME Color Manager is a ''thin solution'' where it defers to the application the pixbuf transforming (using something like lcms, or cairo) and only providing a simple UI and minimalist D-Bus interface for interested applications to query.
GCM ships quite a few data files and binary files. Most users will interact with ICC files by double clicking on them, and with color management using ''System Settings->Color''. It's not expected that users should need to run any command line programs at all.
I think most of the CMM functionality can be (and should be) integrated into the platform, e.g. GTK and Cairo.
It's my opinion that it's best to have two different applications for something that share a common specification, rather than trying to be a jack-of-all-trades. It's a cliché, but KDE users do want options, and GNOME users do want things to 'just work'. You can't design a library, or even an application for those different user types. This is why I developed GNOME Color Manager, not ColorManager.
I do think the concept of a monolithic CMS is flawed. Color management has to be integral to the stack, so Xorg, GTK, Cairo, etc. all have to play their part. You can't really push a monolithic library when you need to interface with so many parts of the stack. I see GCM as a the cherry on colord, with all the heavy lifting being done by cairo, lcms and ArgyllCMS. GCM just provides the configuration widgets in the session and makes the data available to applications.
Back to the main page