I have red-green-weakness (a bit of both, deuteranomaly and protanomaly) and on Windows there was a very helpful feature to convert the for me difficult-to-distinguish colors to nearby ones on the color spectrum per system-wide color filter. Is there something similar I could use on Linux distributions?

I'm currently using Xfce as desktop environment, but would have no problem switching to another if that means I could use such color filters again. So far I haven't found anything on the topic, the closest being gnome-mag, which had different colorblind options that could be enabled for panels, but had its last release in 2010 and seems to belong to gnopernicus, which had its final release in 2006 and is replaced by Orca. For Orca, however, I couldn't find any color filters, and gnome-mag was dropped before gnome 3.

In the meantime, I will look into how I could port CIE coordinates into an ICC profile, as this may result in what I'm hoping for, but unfortunately, I have no experience with either.


I've made some advancements with the ICC profile approach. I've looked a lot at how color deficiency simulation works and even found some open-source algorithms so that I don't have to do the implementation myself. With some small injections to the code, I modified the algorithms to spit out CLUTs, which I was able to then successfully convert into ICC profiles. These behave like desired: When applied to the system, anything pictured is displayed as a color deficient would (probably) see it. I still have some problems with understanding which whitepoint suites which use case best, though.

Still, if I can achieve similar results with daltonization (the process of 'correcting' color for deficiencies) instead of simulation, this should be what I'm looking for and would also work anywhere where ICC profile can be applied, which seems to be the case for all major OSs.

However, the algorithms I found for daltonization so far don't really convince me, so I'm trying to write one myself, and because I don't have much time to spend on this project at the moment, this might drag on a bit.

  • Your best bet is probably to start with custom themes to handle most of the basic UI stuff. Most applications will honor system themes, even if they're not 'official', though you might be able to find a usable theme if you search online. From there, though, there's not much on desktop Linux that does this (and I don't think color correction with an ICC profile is likely to help with anything but images). You might be able to do something if you can adjust the hardware itself though, but that's going to be tedious at best. Dec 27, 2019 at 3:05
  • I'm sorry @AustinHemmelgarn, it seems I've made a mistake when adding a comment replying to you, I thought I had answered a long time ago. Only now that dariox has answered below, I've realized that my comment didn't appear here. The UI is mostly no problem with my intensity of color weakness - it's seldom that I have to differentiate between crucial functions in excatly the colors problematic for me - more oftenly it's that a website or, like you said, an image uses colors to visualize some information, which is then hard for me to grasp Feb 9, 2020 at 15:33

1 Answer 1


You can try with the xcalib utility, http://manpages.ubuntu.com/manpages/bionic/man1/xcalib.1.html

  xcalib - Tiny monitor calibration loader for Xorg.

There is also compiz settings manager, that will let you tweak some adjustments. I use both in xfce, although for other purposes.

Xcalib works on the hardware level, i.e. the changes will affect all applications at once. Compiz on the other side, lets you pick selected application windows and apply the effect only to them.

Some use examples:

Apply a color profile to your display (profile must include the 'vcgt' tag):

xcalib bluish.icc

(source of the profile: https://github.com/OpenICC/xcalib/blob/master/bluish.icc)

Some effects can be applied manually even without any .icc profile:

Make the display negative:

xcalib -i -a

Make the display look "greenish":

xcalib -blue 1 0 1 -red 1 0 1 -a

Combine both above to obtain green inverted display:

xcalib -blue 1 0 1 -red 1 0 1 -a
xcalib -i a

display green + inverted

  • 1
    Thank you for your answer, but a calibration of f.e. the red and green values to better match correct display color, which xcalib could do, won't help a lot with color deficiencies - or is there another capability not mentioned in the manual? Feb 9, 2020 at 15:14
  • 1
    @BlastingAgent: yes, the original idea is to better match to some other reference (printed or another display), so if you display shows color white too reddish, you can apply the necessary correction. But this can be used on the other direction too. So AFAIK you can map a range of colors to another range completely different. I don't understand if you've already found some useful icc profile; if is not the case, then I'm sorry that the problem still remains as to find an appropiate icc profile, which I couldn't.
    – dariox
    Mar 7, 2020 at 16:40
  • I've posted a small update under my original question. In short, as soon as I find a good daltonization algorithm, I now can create a suitable ICC profile myself, which finally could be used with f.e. xcalib to apply a system wide color correction. So my current approach has shifted to creating a daltonization algorithm to solve my main issue. Also thanks for poiting me to xcalib! Mar 7, 2020 at 16:58

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .