noodlylight / fusilli

X Window Manager (Compiz fork)
Other
23 stars 5 forks source link

Please consider adding full-screen color correction #1

Open patrakov opened 9 years ago

patrakov commented 9 years ago

Hi.

There is a "compicc" project that provides a third-party plugin for compiz-0.8 that does full-screen color correction using ICC profiles. Unlike just setting the gamma table in the video card, that plugin is able to compensate for wide-gamut monitors. Could you please implement a similar feature?

http://sourceforge.net/projects/compicc/

http://www.oyranos.org/compicc/

noodlylight commented 9 years ago

Hi!

Thanks for contributing this issue!

I'm open to the idea of color management in fusilli.

I did some research on the subject and found that there are two ways to do color management: the one you mentioned (Oyranos) and colord.

I think I'll try to implement the colord route, but I'm not sure yet.

patrakov commented 9 years ago

Well, there is one major obstacle on the colord route.

Colord requires some agent in order to add profiles to X11 devices. Please see http://www.freedesktop.org/software/colord/faq.html#gcm for details. The important point is that this functionality is available only for GNOME and KDE users due to dependency on very desktop-specific components such as gnome-settings-daemon and kded. However, GNOME will not allow one to run alternative window managers at all, and kwin already has color correction, making a switch to fusilli pointless. This bug is more about MATE and XFCE users, who don't have such component. Well, there is https://github.com/agalakhov/xiccd , but it is packaged nowhere and seems abandoned. The point is that colord, as of now, is useless for the target audience of this issue.

Kwin seems to listen to property changes on the root window. The logic is: if someone except kwin (oyranos, kolord-kde, xiccd) sets the _ICC_PROFILE property, then it gets used and its content is replaced with the sRGB profile. Approximately the same logic is used by compicc. Result: the system works, no matter whether colord or oyranos is used to store profiles.

patrakov commented 9 years ago

The spec is here: https://github.com/oyranos-cms/libxcm/blob/master/docs/X_Color_Management.txt

noodlylight commented 9 years ago

I'll need to learn more about icc before I decide, so I'm locking this issue for now.