Skip to content

WIP: color-control: Control color properties of output

Sefa Eyeoglu requested to merge Scrumplex/wayland-protocols:color-control into main

A client might want to change certain color properties, such as gamma or saturation for an output. This protocol allows modification of saturation values, as well as gamma values for RGB respectively.

On X11, clients modify CRTC properties directly via XRandR. This is undesirable, as there is no way of limiting which properties should be modifiable. By introducing abstract color properties like saturation_r we give clients control over color output properties, while the compositor handles setting the correct properties for the requested configurations.

This protocol can be used by games to change gamma on a compositor level (Source Engine games do this on X11). It would also allow other applications to control these values. Particularly, the library libvibrant I worked on would use this interface to allow easy manipulation of color saturation. This can be used to modify color saturation based on the currently running application. This would allow the user to enable a reading mode, which removes all saturation from the output. Other uses would be in games.

NOTE: This is a WIP protocol

Also, this is the first time I propose something in the Wayland space, so there might be problems with this, or things I have overlooked.

Currently there are no implementations of this in any compositor.

I drafted this interface very spontaneously, so it might change after trying to implement it in a compositor.

It currently only contains controls for saturation and gamma, while more properties could be exposed. I don't know how well this will play with 10bit-color or other things I might have overlooked.

Merge request reports