The problem here is that Ubuntu uses old version of xcalib
, that leverages X11 capabilities to change screen output. And there are a numerous issues with that:
- Newer versions of Ubuntu use Wayland by default instead of Xorg/X11.
- If you use proprietary nvidia drivers, the required X11 features are not supported either.
So, what to do then, if one of the probable reasons above is your case too? Well, replacing Wayland with Xorg is a trivial task in Ubuntu. But how about drivers?
I've been using xcalib
for screen modification, like image inversion, and I was very frustrated from the fact, that it stopped working for nvidia drivers! I even tried to live with nouveau (an open-source version), but it was not so stable as the proprietary analog.
Luckily, I found the great solution to the problem! It was described in current thread here. But it was not explained WHY newer xcalib
got back to work for all the cases and even beyond! And, I think, it's worth providing more details on that...
If you look into this commit on xcalib
github (dated on Feb 17, 2013), you will notice, that one dramatic change in tool's logic was implemented: since that commit XRandr API used instead of old approach, that allows us to easily use newer xcalib
versions for most of the cases, that didn't work before!
I missed this neat fix, while was trying to resolve my issue, because after reading, that needed X11 features were not supported, I just decided, that updating xcalib
to the recent version would not help, and wasted a lot of my time because of that!
So, you just need to install the last version of xcalib
in your system and... this should be enough to make it work again!
xrandr --verbose
– user.dz Jan 06 '17 at 16:11