The story is that I used to calibrate my display using DispcalGUI, as described here, but it is no longer in the Ubuntu (20.04) repository, so I had to find another solution.
ArgyllCMS
I found inspiration in this YouTube video by Shane MILTON.
Also the ArgyllCMS website ( documentation ) and man-pages were very helpful .
In the end, I wrote a shell script to do the calibration, so that I could repeat all steps again easily (see below).
In order ro run the below procedure, you need Argyll to be installed on your system. You can check easily if it is there already (most probably it is) by typing the below command in a terminal window:
dispwin
If Argyll is not there, you can install it like this:
sudo apt update
sudo apt install argyll
dispwin # Should work this time
About getting and running the ArgyllCMS script
The scripts I wrote are shell scripts (bash) and can be downloaded from github.
You need to have the git package installed on your machine.
You can check if it is installed using :
git --version
If it is not there, you can install it from the Ubuntu repository:
sudo apt update
sudo apt install git
git --version
Once git is available, you can download the project like this:
Go to a directory where you want it downloaded, for example:
cd ~/Documents
Download from github:
git clone https://github.com/yepsoftware/calibrate
The project is now here:
cd ~/Documents/calibrate
ls -l
Make sure that:
Your screen-saver and display sleep timer is turned off. The upcoming tests run for a while and we do not want the screen to go to sleep in that time.
Your display has reached its normal operating temperature. So have it powered on for at least 15-20 minutes before you start the calibration/profiling.
Then do a manual configuration of your display using the controls on your display (not using software that comes with the OS or with the video card). Use this web page to configure your display as good as you can using the controls on the display.
You have some 'initial' setup now.
Also use the screen controls to set the color space (if that option is available).
Mostly sRGB will do perfectly.
Using the 'calibrate' script
First of all, read the README.txt file that comes with the project!
Then run the calibrate script:
cd ~/Documents/calibrate
./calibrate
The script pretty much does what is Shane MILTON describes so well in the YouTube video above.
When you run the script, it presents you with a menu like this:
=========================
= Calibrate menu - V1.0 =
=========================
0 - Exit
1 - Init
2 - Calibrate
3 - Gen targets
4 - Profile
5 - Create icc
6 - Create gamut plot
7 - Compare with sRGB gamut
Your choice:
The usage is simple, run the options 1, 2, 3, ..., 7 and finally 0, one by one and follow the instructions.
In the end, you will have a .icc file in the target directory (default target directory is : ~/Documents/iccProfiles)
Installing the profile
The script only creates a .icc profile.
It does not install it !
Note: I sometimes needed to log off/on or even to reboot after installing the profile to have it correctly set, maybe a caching effect ...
You have 2 options to install your newly created profile:
Option 1:
go to the GNOME control center Settings => Color and install the new profile.
This updates the
colord database and the
X11 atom _ICC_PROFILE (see below)
The profile is also copied to these directories:
$HOME/.local/share/icc # if installed for this user only
/var/lib/colord/icc # if installed for all users
Then, in addition, run this command at the command line:
dispwin -v -c -I <icc_profile_filename>
It creates/updates a file called:
$HOME/.config/color.jcnf (see below)
and also copies your profile to this directory:
$HOME/.config/color/icc/devices/display
Option 2: (installs the profile only for the current user)
run the ./install_profile script that you find in the project you downloaded:
cd ~/Documents/calibrate
./install_profile <icc_profile_name>
where <icc_profile_name> is the path and name of the icc profile created above.
Checking if the profile is properly installed
After the installation steps above, your new profile should be available at various location in your Linux environment.
To check the consistency, run the check_profile script that you downloaded with the project:
cd ~/Documents/calibrate
./check_profile
It lists the following information:
The colord database
The colord database is here: /var/lib/colord/mapping.db .
To list its contents, the check_profile script uses this command:
colormgr get-devices
The colord database gets updated when you add your profile to the GNOME control center (Settings => Color) or by running the install_profile script.
The X11 atom
The check_profile script uses the below command to display the first 14 bytes of the X11 _ICC_PROFILE atom:
xprop -display :0.0 -len 14 -root _ICC_PROFILE
From the screenshot above, you can see that the X11 atom _ICC_PROFILE does contain the icc profile (colored parts match).
The 'dispwin' command above, creates/updates a file called: $HOME/.config/color.jcnf . This is a JSON (readable text) file that maps the EDID of your screen to a profile.
The check_profile script uses this command to display the color.jcnf file (if it exists):
cat $HOME/.config/color.jcnf
Page last update: May-25, 2021