CompIcc Code
Brought to you by:
beku
Compicc
The Compiz ICC colour server, or short compicc, lets you colour manage your
whole desktop at once and in hardware. Play movies, watch images on wide or
narrow gamut displays. Each connected monitor is colour corrected for its
own.
CompICC is written to help the many colour management unaware applications.
It takes them off any decision, what to do around monitor profiles. To do
so CompICC does its work unquestioned. The result is a more consistent
desktop.
== Features ==
CompICC uses Oyranos to configure the ICC profiles for each monitor.
The order of monitor configuration inside Oyranos is, first look in the
Oyranos DB for a explicit configured ICC profile, if no then scan
the installed ICC profiles for one matching the to be setup device, if not
generate on the fly from the monitors EDID data block, if not
try from the Xorg log and as a last means take sRGB, if not
fail miserably ;-)
CompICC is a opt out colour correction mechanism. This means, CompICC does
its work unquestioned. This implicit style of colour management helps to
render a consistent desktop. Naive applications can continue to assume they
are drawing in sRGB. sRGB is the standard colour space for the internet.
There are some applications, which want to do own colour corrections for
displaying large gamut photos, proofing or monitor calibration. Those need
to tell CompICC not to colour correct a certain region of their window to
do advanced colour management of their own. After updating these colour
management aware applications they will work the same as before. Without
updating to the X Color Management specification they see all monitors as
in sRGB, which is not wrong for most of them. Calibration tools need to
support the X Color Management specification to continue to work as
expected. The only workaround for them is to disable CompICC during
calibration and ICC profiling.
Internet:
git: git://compicc.git.sourceforge.net/gitroot/compicc/compicc (read-only)
Dependencies:
Compiz 0.8.x
Oyranos colour management system >= 0.9.0
Debian:
locales
build-essential
libxml2-dev (if you want xml importing/exporting)
pkg-config
x11proto-xext-dev
libxxf86vm-dev
libxrandr-dev
libxinerama-dev
oyranos-0.9.0 +
doxygen
libxfixes-dev
Fedora:
compiz-devel
(nouveau might need mesa-dri-drivers-experimental)
openSUSE:
(nouveau might need http://software.opensuse.org/search?q=Mesa-nouveau3d)
Debian/Ubuntu:
(nouveau might need libgl1-mesa-dri-experimental)
Building:
$ ./configure
$ make
$ make install
for a local build use:
$ ./configure --plugindir=$HOME/.compiz/plugins --icondir=$HOME/.local/share/icons --regdir=$HOME/.compiz/metadata
While that is nice for testing, For a regular installation compiz needs to
see its plugins at starttime, typical registred with system wide ldconfig.
Install:
The plugin is a library und should be in your library path during compiz
start. For tests the following might be enough, after substituting the path:
$ LD_LIBRARY_PATH=/path/to/my/libs compiz --replace ccp
For normal start I found placing the used path in the system library path
the most relyable way. After substituting the paths name run as root:
$ echo /path/to/my/libs > /etc/ld.so.conf.d/my_libs.conf
$ ldconfig
The Oyranos and other libraries must be made visible to the library loader
in the same way.
Usage:
Use ccsm to switch the plugin on. Its named Colour Management, but might be
translated according to your locale settings.
Advanced settiging can be activated by setting a root window
Atom called _ICC_COLOR_DISPLAY_ADVANCED to "1".
Setting to "0" will nethertheless update the colour transformations in
CompICC.
Example:
$ xprop -root -format _ICC_COLOR_DISPLAY_ADVANCED 8s -set _ICC_COLOR_DISPLAY_ADVANCED 1
The desktop colour server can apply proofing and out of gamut marking
to the whole desktop, except the early colour bind regions, by activating
the _ICC_COLOR_DISPLAY_ADVANCED atom. This is an very specialised feature.
Applications can be synchronised by the Oyranos settings.
Trouble:
If the plugin is not visible in ccsm, make shure the icon and
registration file is visible to compiz' configuration manager.
If its clear that the compicc plugin does not run after switching on or
crashes, look in the $HOME/.xsession-errors or similiar named log file.
If CompIcc runs, but you are not shure if it works, then
a good idea is to use qcmsevents or xprop to look for the
_ICC_COLOR_DESKTOP atom. It should be present on the root window.
$ xprop -root | grep _ICC_COLOR_DESKTOP
A false colour profile is good for clear diagnostic:
$ wget http://www.oyranos.org/wiki/images/c/c0/FakeBRG.icc
$ mv -v FakeBRG.icc ~/.local/shared/color/icc
$ oyranos-monitor FakeBRG.icc
As a result the monitor should swap colours.
To report bugs you can run compiz with debug info on and send the log text:
$ compiz --replace --debug ccp