Problem Description:
When connecting a screen or projector via HDMI, the image has too much contrast/crushed blacks. When using Xorg, it was easy to solve this by using nvidia settings → HDMI → change color range from ‘full’ to ‘limited’. Also it was possible to fine tune the output by adjusting the gamma(contrast) curve.
With Wayland, this is no longer possible. I cannot find a way to change color range, any idea?
This is a problem of a wrong signal. Wayland sends full RGB (0–255) but i need limited range (16–235). It can only be solved by giving out the correct signal via HDMI, changing settings on the projector or trying to adjust image settings wont help.
Relevant System Information: Asus Laptop with nvidia 4070
What I’ve Tried:
Xandr has no effect, nvidia settings do no longer have the option to adjust.
This superuser question seems to go in the opposite direction, but the answer looks like it can work for you too; just force limited range instead of full, I guess.
A few words of caution, though, because, yet again, someone instructs people to manipulate files owned by the package manager, which will overwrite them on the very next upgrade of gdm3.
The way to properly instate an override of the gdm3.service is:
systemctl edit gdm3
which opens an editor for the override and one then adds these lines:
saves the file and exits. Systemd will do the rest. Obviously that line needs to be adjusted; I’ve just copied it for illustration.
Also, do mind the - prefix of the command, which means that errors will be ignored, should they occur when running that command line, which is a good thing for robustness of the service – wouldn’t want to be left without a graphical login – but it can also hide errors.