Skip to content
udifuchs edited this page Mar 15, 2018 · 3 revisions

Color management for OLED displays

The OLED display on the Lenovo Thinkpad Yoga has two unique properties relative to LCD displays:

  1. There is no backlight.
  2. It has a wide color gamut.

Currently, the Linux driver cannot control the brightness of the Thinkpad Yoga display: (see this bug)

icc-brightness works around this by applying an ICC profile that dims the display.

The wide color gamut means that the screen colors look very saturated. This can also be corrected with an ICC profile. Usually you need a spectrometer to create a calibration profile for your display. For the Thinkpad Yoga, it seems that there is already an embedded ICC profile. I don't know how this profile is generated, but it can be found at these two locations:

/var/lib/gdm3/.local/share/icc/
/home/USER/.local/share/icc/

with the title "ThinkPad X1 Yoga 2nd".

The problems is that neither Wayland nor Xorg can apply this profile to the entire display. Instead each application has to support it by itself. Any professional photo editing application will support ICC display profiles.

For web browsers, Firefox has hidden support in the about:config page. Set gfx.color_management.mode to 1 (the default is 2). After restarting Firefox, it will apply the current display ICC profile set by colord. You can also point gfx.color_management.display_profile to the ICC profile file instead. If seems that Firefox applies the profile to all static content. It does not apply to movies and animated images.

For media players, mpv supports ICC profiles with the --use-embedded-icc-profile command-line option. You can also use the --icc-profile=<file> option to specify which ICC profile should be used.

There is an issue that icc-brightness only works with sRGB profiles. The workaround is to specify the ICC profile directly, using gfx.color_management.display_profile in Firefox and --icc-profile in mpv.

Clone this wiki locally