3

I'm trying to adjust the color calibration for my LCD video display.

I purchased a Datacolor Spyder X Pro colorimeter which is supposed to be supported.

I installed argyll 2.3.1 and its support files, colord-sensor-argyll 1.4.6-3, icc-profiles 2.1-2, gnome-color-manager 3.36.0-2, and displaycal 3.9.11-1.

I open Settings and go to the Color section, select my display, and click on the calibrate button. I go through the following steps... enter image description here enter image description here enter image description here enter image description here enter image description here enter image description here

And here's where I get stopped. Where is the Start button?

enter image description here

Update #1 - 2/21/24:

This appears to be a bug that goes all the way back to Ubuntu 22.10. I'm told that it works fine in 22.04, but I haven't verified that yet.

Post note: I just installed 22.04 in a Virtualbox VM, and the Start button appears, when it should, during calibration.

Update #2 - 2/22/24:

After implementing the patch from the answer by Daniel T (thanks BTW), it does now get a "Start" button, but after clicking it, the color patch remains white, and it errors out with "internal error".

See the following information from the terminal, and syslog.

al@al-Inspiron-7700-AIO:~/Desktop$ sh askubuntu_color_calibration_fix.sh 
09:18:10.5465       cc-color-panel[18961]: WARNING: calibration failed with code 1: Timeout was reached

al@al-Inspiron-7700-AIO:~/Desktop$ cd /var/log al@al-Inspiron-7700-AIO:/var/log$ tail syslog 2024-02-22T09:18:26.993688-08:00 al-Inspiron-7700-AIO ubuntu-report[3390]: level=error msg="data were not delivered successfully to metrics server, retrying in 120s" 2024-02-22T09:18:35.407512-08:00 al-Inspiron-7700-AIO systemd[3355]: Started app-gnome-org.gnome.Settings-19159.scope - Application launched by gnome-shell. 2024-02-22T09:18:35.707775-08:00 al-Inspiron-7700-AIO gnome-shell[3900]: Window manager warning: Buggy client sent a _NET_ACTIVE_WINDOW message with a timestamp of 0 for 0x2c00004 2024-02-22T09:19:21.000134-08:00 al-Inspiron-7700-AIO gnome-shell[3900]: Can't update stage views actor <unnamed>[<MetaWindowActorX11>:0x56149c6b1f90] is on because it needs an allocation. 2024-02-22T09:19:21.000796-08:00 al-Inspiron-7700-AIO gnome-shell[3900]: Can't update stage views actor <unnamed>[<MetaSurfaceActorX11>:0x56149e0ec310] is on because it needs an allocation.

Post note: I have a Dell AIO with a touch screen.

Update #3 - 2/22/24:

Here's the screenshot that Daniel T's patch created...

enter image description here

Update #4 - 2/22/24:

After installing gnome-color-manager, DisplayCAL worked. GNOME Settings still fail.

heynnema
  • 70,711
  • I am not familiar with how 23.10 looks, but my concern is whether you are using the factory default theme or not. From web-development, I bring the experience that theme customizations and custom themes may mistakenly misplace some rarely used UI elements. I would start over using the distro's factory default theme, in which there is less chance for such a mishap to occur. – Levente Feb 22 '24 at 02:23
  • 1
    Possibly this Bug? – stumblebee Feb 22 '24 at 02:59
  • @Levente Thanks for your comment. No, it's unadulterated 23.10. The screenshots are coming straight out of a standard distribution. – heynnema Feb 22 '24 at 04:04
  • 1
    @stumblebee You're a good sleuth! You found it exactly. I wonder why it hasn't been fixed in 4 months? – heynnema Feb 22 '24 at 04:07
  • And actually, I think the problem has been there since 23.04!!! 23.10 also has significant other bugs too. If I can find them, I wonder how it ever got released. – heynnema Feb 22 '24 at 04:20
  • 1
    I sent a MR to https://gitlab.gnome.org/GNOME/gnome-control-center/-/merge_requests/2311 – Daniel T Feb 22 '24 at 11:19
  • @DanielT Excellent! – heynnema Feb 22 '24 at 14:27
  • Based on the extensive buggyness of the feature in a Gnome 4 environment, I would suggest loading up a live USB session with an Ubuntu release with the most refined version of the Gnome 3 desktop, that is, 20.04. I would hope that a calibration should be possible in a live session (you can install the dependencies, as 20.04 remains supported yet), and that afterwards, one can hopefully export a color profile that could be transferred to your current 23.10 OS. – Levente Feb 22 '24 at 18:29
  • Could you [edit] the post with a screenshot of the window with the broken start button? Both so we can see what it can look like and so that I can send a screenshot with the real button to GNOME developers – Daniel T Feb 22 '24 at 18:39
  • @Levente Yes. I just tried a 22.04 VM, and it failed, for more reasons that one. I'll try your suggestion and try a 20.04 VM. Thanks. – heynnema Feb 22 '24 at 18:39
  • @DanielT The screenshot you request is already in my question. Do you need more? – heynnema Feb 22 '24 at 18:40
  • @heynnema I see 1 Settings, 5 wizard, and 1 Display Calibration window screenshot without the Start button. Can you add a Display Calibration window screenshot with the Start button please? – Daniel T Feb 22 '24 at 19:15
  • 1
    @DanielT Oh, I'm sorry... I misunderstood your request. It's posted now under Update #3. Cheers! – heynnema Feb 22 '24 at 19:27
  • Thank you. I updated my MR with the screenshot confirming this. Also, are you on Wayland or X11? Certain parts of the code suggest only X11 is supported – Daniel T Feb 22 '24 at 19:58
  • 1
    @DanielT It's X11 – heynnema Feb 22 '24 at 20:15

2 Answers2

4

It is possible to make the start button show up:

mkdir askubuntu_color_calibration_fix
gresource extract /bin/gnome-control-center /org/gnome/control-center/color/cc-color-calibrate.ui |
    sed 's/ internal-child="action_area"//' > askubuntu_color_calibration_fix/cc-color-calibrate.ui
export G_RESOURCE_OVERLAYS="/org/gnome/control-center/color=$(realpath askubuntu_color_calibration_fix)"
# export GTK_DEBUG=interactive
gnome-control-center

When the Settings app is launched this way, it should show the Start button. For me, GNOME doesn't let me click Calibrate without a colorimeter leaving me to use GtkInspector and set the window to visible, which may look different from a normal system:

gtk inspector display calibration

The problem is caused by the port to GTK4 being untested. The row that holds the button is supposed to be there, but GTK4 doesn't understand the unnecessary internal-child attribute. The action_area value doesn't seem to be used by the code. I just patched it out and injected it with a GResource overlay.

Daniel T
  • 4,594
  • 2
    I find the all-around knowledge being demonstrated here beyond impressive and inspiring! Also, thank you for contributing to the color-calibration feature. – Levente Feb 22 '24 at 12:27
  • 1
    I would also mention that the here introduced hotfix will impact, and survive, only the current session. While the gresource extract + sed commands will create a corrected file that will persist on the disk, the file will not be used until the export G_RESOURCE_OVERLAYS command; which normally impacts only the current session. Given how color calibration needs to be done seldomly, and the cumbersomeness of gresource overlays otherwise, limiting the lifetime of the solution to the current session is even an advantage. I keep finding this intervention impressively compact and expedient. – Levente Feb 22 '24 at 12:45
  • 2
    I agree with @Levente... the level of expertise and commitment is fantastic. I'll try out your code later today. – heynnema Feb 22 '24 at 14:28
  • Quick question... do I place this code into a .sh file, or just execute it directly in Terminal? – heynnema Feb 22 '24 at 14:33
  • @heynnema It doesn't matter. You might find it simpler to just paste each line into terminal, keeping in mind there is a pipe between lines 2-3 – Daniel T Feb 22 '24 at 14:51
  • @DanielT Although it now gets a Start button, it fails after that. Please see the update in my question. Thanks. – heynnema Feb 22 '24 at 17:33
  • @heynnema For the failure after the start button, I might need to look at the C code, which would be more difficult. Even if I find something, it won't be as simple as G_RESOURCE_OVERLAYS. The thing that's most likely to have a possible fix is the communication between Settings and argyll. Have you tried either Levente's LiveCD suggestion or just running /usr/bin/displaycal instead? – Daniel T Feb 22 '24 at 18:37
  • @DanielT Levente's suggested 20.04. I had just tried a 22.04 VM, and it failed to create a fully functional VM... I'll try 20.04. I briefly tried displaycal, but I didn't follow it all the way through... but it looked like it was working. I'll try it again. – heynnema Feb 22 '24 at 18:44
  • @DanielT I just retried displaycal, only this time I went all the way to the end... and it failed... and the terse error looked like it was complaining that it couldn't communicate with the color-manager, so I installed gnome-color-manager and then displaycal worked properly when rerun. – heynnema Feb 22 '24 at 19:30
  • @heynnema Did the GNOME settings app's color calibration also start working? If not, you could post an answer – Daniel T Feb 22 '24 at 20:00
  • @DanielT GNOME Settings color calibration is still broken (even after installing gnome-color-manager). Post an answer that says what? That it's really really broken? I haven't tried 20.04 yet, but I now have the .iso. – heynnema Feb 22 '24 at 20:28
  • @heynnema I meant that you could post an answer saying that "displaycal worked properly" is a good workaround (since you said you installed it at the beginning of your original question) – Daniel T Feb 22 '24 at 20:30
  • 1
    @DanielT Thanks so much for all of your help! – heynnema Feb 22 '24 at 21:52
3

I installed argyll 2.3.1 and its support files, colord-sensor-argyll 1.4.6-3, icc-profiles 2.1-2, gnome-color-manager 3.36.0-2, and displaycal 3.9.11-1.

Even after @DanielT's patch, and the Start button re-appeared, the GNOME Settings still failed to calibrate. I tried some older Ubuntu versions (23.04, 22.10), with the same problem. I'm told, but haven't verified it, that 20.04 would work.

Post note: it works in a 22.04 VM.

Let's hope they fix this in the upcoming 24.04 (along with the busted backlight code, and the GNOME Shell restart crashes).

I tried DisplayCAL and it worked.

heynnema
  • 70,711
  • Is displaycal some standalone, redundant solution, like an alternative to argyll? Is it a GUI program, similar / comparable concept to the screenshots you posted above? Actually, there are so many dependencies named: what is displaycal an alternative to, and which of its dependencies are common with the mainstream choice through gnome settings? – Levente Feb 23 '24 at 00:23
  • 2
    @Levente displaycal is a standalone app with a GUI. It's in the Ubuntu repos. Just install it, and run it. You'll also need the files that I call out in my first paragraph, if you don't already have them installed. When the standard Ubuntu calibration software is busted, displaycal will work. – heynnema Feb 23 '24 at 01:26