well, more accurately it lets you talk to waylands color management protocol, on behalf of many apps. (flatpaks and xwayland apps are not tested.)
For the past few weeks I’ve been diving into the rabbithole of trying to get accurate colors on wayland.
Getting colors to display correctly under Wayland with color management turned off and a .icc loaded in darktable or gimp is kind of convoluted, but doable.
The problem is that then everything else on the desktop will be oversaturated and wrong. So you can choose between all colors being limited to srgb – or some apps using wide gamut colors, and everything else being wrong.
cm-shim tries to solve this problem by sitting between applications and the compositor, negotiating the color space to use on the apps behalf. If the compositor knows the correct color space, it can do its color transforms correctly.
I’ve tried to make this project as easy to set up and test as possible. (and uninstall, if you dont like it)
If you find any part of the setup instructions unclear and confusing, please let me know! I have a sort of sidequest going of trying to make setting up a color managed pipeline in Wayland Linux as straightforward and intelligible as possible, for as many people as possible – regardless of technical expertise.
This project is very much vibecoded. I don’t speak rust (or any programming language) natively, so for now it should be treated more as a proof of concept or a prototype. I have some understanding of what the different blocks do, but i don’t really understand wayland internals. If you are proficient in rust, or know anything about wayland protocols, pull requests, or outright adopting it would be very welcome.
However, it seems to me to be working better than i expected. In the github repo, you can see some details of how ive tried to verify that it works as expected.
Also, hopefully; more apps being able to utilize waylands color management protocol can maybe force help incentivize wayland and compositor developers to make sure their color management works properly. More users using the color management protocols will also help surface more bugs and inconsistencies.
Also, if you want to have better color managed wide gamut support in hyprland, go and click on the upvote button on wilecoyote2015 excellent suggestion to add a color passthrough window rule, so the developers know theres an interest. With this, colour management in hyperland would be a breeze!