Color management on Wayland
One of the things that had been discussed during a kwin sprint in July 2019 was color management. Currently, we have a component called Night Color which is kind of responsible for color correction, however it's more oriented for adjusting screen color temperature.
Color temperature is one of the things that user should be able to tweak, but there is a lot more... From design perspective, we need a generic color management system in kwin. It should be capable of adjusting screen brightness, gamma correction, and so on. Things may get tricky if we want to apply both a custom screen color temperature and an ICC profile to calibrate white point, but luckily for us lcms2 has everything we could have dreamed of. lcms2 makes it very easy to interpret the VCGT tag, and combine tone curves.
So far, most developers that are involved in color management discussions agree that the compositor has to perform necessary color space conversions. Ideally, applications should tag their surfaces with color space metadata and from that point on, the compositor ensures that the surfaces will be displayed properly on the screen. [2] introduces a new wayland protocol that can be used to set the color space metadata.
Open Questions
Maybe add some colord integration?
Done. See !436 (merged)
Is color management an integral part of the compositor? If it's not, put it in a plugin.
Yes, it is.
What is the role of Night Color?
Night Color is responsible for only adjusting the screen color temperature.