Ubuntu, Gnome, Wayland, nVidia, Intel integrated graphics.
I have a wide-gamut OLED screen. When regular sRGB is mapped to it, it leads to oversaturation. I can use color profiles in color managed applications to get accurate colors, but it’s not system-wide and it have no effect on most of the apps. On Windows 11, I was able to change hue/saturation both in Intel Command Center and in ASUS preinstalled bloatware. On Linux, I’ve spent a lot of time, built below markdown file and I still have no suitable saturation control. Did I miss something?
If you’re using KDE and you have a swappedRedAndGreen.icc color profile preinstalled in your color management settings, can you enable it to check if it affects whole system or only color managed applications (like some of image viewers)? If you have SDR Color Intensity in your KDE Display settings and it works, can you check if CTM is supported by your system (xrandr --properties | grep ctm)?
Gnome Extensions
There are some saturation extensions which work nice for X11 but bad for Wayland+fractional scaling, they degrade performance in any case: https://extensions.gnome.org/ https://github.com/zb3/gnome-saturation-extension
nVidia Settings
In some systems nVidia control panel has color settings:
nvidia-settings
Should look like this: https://askubuntu.com/a/664299 but no such option for me. Maybe switching between Open/Proprietary nvidia drivers will enable color settings? When I switch Primary GPU from Intel to nVidia and reboot, new props appear, but no color props. ctm doesn’t appear in xrandr either. xrandr display id changes to eDP-1-1. Performance and heat issues appear. Mouse lags a little bit.
xrandr and xcalib
X11 only.
# You can make white less white, but can't change black in xrandr with gamma/brightness props:
xrandr --output eDP-1 --gamma ('{0}:{0}:{0}' -f 1.9) --brightness 0.5
# This one changes black point!
xcalib -brightness 10 -alter
xcalib defaults: gamma=1.0 brightness=0.0 and contrast=100.0.
To reset xcalib use one of these:
- Restart PC;
Alt+F2->xcalib -clear-> Enter;Ctrl+Alt+Deleteand wait for 60s or pressRight, Enter
xrandr BroadcastRGB
# Check Broadcast RGB available values (default: Automatic):
xrandr --props | sls 'Broadcast RGB' -Context 0,1 | select -f 1
#> Broadcast RGB: Limited 16:235
# supported: Automatic, Full, Limited 16:235
# Change to Limited:
xrandr --output eDP-1 --set "Broadcast RGB" "Limited 16:235"
# Black is now less black, white is less white, screen is softer.
# Will reset to default after reboot.
libvibrant
X11 only https://github.com/libvibrant/libvibrant https://unix.stackexchange.com/a/730078
git clone --depth 1 https://github.com/libvibrant/libvibrant.git
# sudo apt install cmake
# sudo apt install libx11-dev libxrandr-dev libxext-dev libxi-dev
# sudo apt install nvidia-settings libxnvctrl-dev
cmake ..
& ./build/cli/vibrant-cli --version
# FAIL
# CTM should be supported by driver/display for libvibrant to work:
# xrandr --properties | sls ctm
For non-laptop screens there are ddcutil and ddccontrol. They should work as if you’re changing your settings using physical buttons on your display.
KDE has saturation settings? https://zamundaaa.github.io/wayland/2023/12/18/update-on-hdr-and-colormanagement-in-plasma.html “SDR Color Intensity” option. Maybe it relies on CTM?
KDE can affect whole screen appearance with regular ICC profiles without VCGT tag?


wlr-randrdoesn’t work:compositor doesn't support wlr-output-management-unstable-v1. Probably wrandr (it’s not even in apt repo) will not work either, also gamma is about contrast, not saturation.