Cintiqs on GNU/Linux: How to setup brightness, contrast and more.

Published on

2023-01: Update, I added a feedback for the Cintiq 13 Pro.
2022-12: Update, I added a feedback for the Cintiq 16 on Ubuntu 22.04.
2023-03: Update, I added info about a change in how numeric are set.

Last month, during a discussion on Twitter with the GNU/Linux artist Tyson Tan, Neotheta and Wacom Official, I started to talk about the impossibility for GNU/Linux users to setup the brightness/contrast/RGB on their Cintiqs. And during this discussion Jason Gerecke -maintainer of the Linuxwacom driver- wrote a solution to this issue. Today, I'm reporting this solution on this article for better archiving and in the hope it will help future GNU/Linux artists at finding a solution to their problem.

About the issue:

Cintiqs are tablets made by Wacom with a display monitor built inside the surface of the pen tablet. In my carreer, I owned four Cintiqs. If you want to read my opinions about this tablets, read my full tablet history log article here. On the older models, the monitor had physical buttons to setup the brightness/contrast/RGB, something similar to many common monitors on the market. But around 2010, Wacom replaced the buttons by a driver (a software available only for Windows and Mac). That's why I never could manage to change the brightness and the contrast of my hardware. I had to use the default factory setting but this one was unfortunately too dark by default.

Install:

You need to open a terminal and install ddcutil. On my Kubuntu operating system, I install it with this line:

sudo apt install ddcutil

(Note: if you are new on GNU/Linux, use Ctrl+Shift+V to paste inside a terminal)

Getting the identifier of your Cintiq:

sudo modprobe i2c-dev

then

sudo ddcutil detect

Thanks to this two commands, you can list and get the identifier of the detected hardware by ddcutil. Unfortunately this two commands crashes my computer and freeze the display. I have to hard reboot holding the power button six seconds each time I'm using them. But the display freeze after printing the result on the screen and you'll have to run this commands only once to know your identifier. In my case, my Cintiq has a three letter capitalized identifier: WAC.

Listing the available settings:

sudo ddcutil --mfg=WAC capabilities

This command will list all the capabilities of the 'WAC' device (screenshot under). Each capabilities are identified by a number (eg. Brightness is number 10).


Screenshot: Konsole, listing the capabilities of my Cintiq13HD.

Knowing the current value of a setting:

To know the current intensity value of the brightness, you have to use 'getvcp 10' with this line:

sudo ddcutil --mfg=WAC getvcp 10

This command line output looks like that:
VCP code 0x10 (Brightness): current value = 50, max value = 100

Changing the value of a setting

Now if I want to switch the value of the brightness to 75%, I have to use 'setvcp 10' followed by 75:

sudo ddcutil --mfg=WAC setvcp 10 75

All other capabilities can be changed using setvcp. To change the color preset (14) to option 5 (6500K):

sudo ddcutil --mfg=WAC setvcp 14 05

Conclusion:

Thanks to this control on the brightness/contrast/RGB of my Cintiq, I was able to match the same luminous intensity in cd/m² as my other monitors. I was also finally able to calibrate the Cintiq to sync with the colors of my other monitors. I also discovered it was possible to draw on this device during the day without having to close the windows and set my workplace into the dark. It was long, tedious to setup this device via the command line but it was possible. This totally made me focus back on digital drawing using this hardware. Thank you again Jason Gerecke for sharing this solution and obviously not thank you Wacom for publishing only drivers for Mac and Windows on your website. This story is just another proof that being an artist on GNU/Linux requires a lot of knowledge... or you might spend years of your life painting in the darkness (as I did).

Update

Variations for the Cintiq 13 Pro

A feedback from Han Young in the comment section:

The wacom cintiq pro 13 I'm testing refused to comply to the set brightness command. After two days of debugging, I found out that only after restore factory defaults can I set the brightness. The capability code for cintiq pro 13 is 04, so I just execute sudo ddcutil --mfg=WAC setvcp 04 1

Variations for the Cintiq 16 under Ubuntu 22.04

Here are a set of notes I received by email about the Cintiq 16 (2021) under Ubuntu 22.04, thanks Pierre Haessig:

sudo ddcutil detect 

This commands works fine, doesn't crash the computer, but be careful as it returns two devices (they have same identifier Mfg Id "WAC").

sudo ddcutil --mfg=WAC 

This commmand will fail with a "Display not found". However, you can use another method than --mfg to target the monitor by its bus number:

sudo ddcutil --bus=15 capabilities 

The Bus id 15 comes from the line "I2C bus: /dev/i2c-15", part of the output of the command "detect".

You won't find listed on this model the feature number 10 "luminosity", but you'll find "contrast". However, this will not prevent the command

sudo ddcutil --bus=15 getvcp 10

To works and output the brightness: "VCP code 0x10 (Brightness ): current value = 50, max value = 100". To put light to max:

sudo ddcutil --bus=15 setvcp 10 100

Recent changes in interpretation of negative values

If your device support negative values, you might enter it like that: - 10 with a space between the - and the 10. I had a report the version without space was working until of a recent change.


37 comments

link xHire  

So many years and I haven’t known about the Ctrl-Shift-V shortcut! I always used just Shift-Insert that pastes contents of the other clipboard (Ctrl-Shift-V works with “Ctrl-C clipboard”, while Shift-Insert with “select(&click-mouse-wheel-to-paste) clipboard”). Thank you, this is a very helpful tip! :·)

For hard reboot, I prefer prefer using the magic SysRq key (https://en.wikipedia.org/wiki/Magic_SysRq_key) in a sequence of shortcuts Alt-SysRq-S (to sync filesystems), Alt-SysRq-U (to remount them as read-only) and Alt-SysRq-B (to actually force immediate hard reboot).

Anyway, it’s good to know that there is this possibility to control cintiq with ddcutil. For a long time, I had no idea how to control brightness on my laptop, because I was using only openbox that doesn’t have any built-in support for brightness control, so I was stuck with a very dark screen too. (Later I found xbacklight utility that solved this issue for me. :·))

link David Revoy Author,

Oh, I haven't thought of using that for the monitor on my laptop. That sounds so obvious now. I'll try. Thank you for the tip!

link cybertron  

I use redshift on my stumpwm WM debian manager.
It works in any DE or WM I might or not install...

link bazza  

It connects only by HDMI or needs also a connection USB?

link Larpon  

Finally a way! Thank you so much for sharing!

link David Revoy Author,

@cybertron: Redshift doesn't manage this type of brightness at a hardware level. As far as I know, it interacts only with the color curve of the output of the graphic card: so you can't brighten an hardware or use the feature of the monitor; you can just 'tone down' the video signal output. Solutions like redshift might solves very well the blue color issue that affect human's sleep cycle but unfortunately for graphist/artist, I never saw a solution like that mixing well with the need of keeping a consistent color-profiling and calibration. I would like to know if the dev of graphic server thought about this.

link David Revoy Author,

@bazza: The Cintiq13HD has a all-in-one single cable (you can see on the photo) that split into a HDMI, a USB and an alim (requiring 220volts here). So it is really like a monitor plus a tablet hardware. The USB manages the Wacom tablet, the monitor is managed by HDMI. You can even disconnect the USB and use only the 1080p monitor.

link David Revoy Author,

:-)

link Ali  

''Hi David, How long dose it take for you to complete a complete page, just for sketching, coloring and editing'' ... For your comic book.

link David Revoy Author,

Hi Ali,
It is too hard to tell; because I'm not doing page from A to Z one by one like artworks. I do cycle: a pass on all pages for storyboard, then for pencil, then for line-art, then color-flat, then background painting, then shading, then paint-over and then post-FX. It does loops in the agenda. Also, I'm not doing only production: I experiment, I record video tutorials, I do video-editing cut, I write articles, I interact with community, I maintain the translations and website. So, right now I take in between two month and three month to complete a 8 pages long episode. That's a bit more than a full week per page? Maybe around 30h of pure production per page.

link Ali  

WOW, thanks for the reply and rely appreciate your dedication to your work.

link Batto  

I'm curious have you had any luck mapping the express keys? I have a Wacom mobile studio pro and unfortunately I have been stuck using windows because of the constant driver issues I've been having. Its basically a laptop and a Cintiq all in one. I've had no luck getting pressure sensitivity or the buttons working. its either one or the other for some reason.

link rice  

And how do you calibrate cintiq pen with linux ?

regards.

link David Revoy Author,

Hi rice; it depends: for Xorg based desktops, Gnome and KDE have a GUI for calibration and a CLI tool exist named xcalibrator and xsetwacom. On Wayland, as far as I know only Gnome has a GUI for that.

link Francisco  

Hi, David, is it possible that Krita correctly recognizes and applies two color profiles for two different monitors, when one screen is configured as a replica of another? I recently bought a Cintiq 13 HD, and if I replicate my main monitor on the Cintiq, the Colord profile loader (I'm in KDE Plasma), it seems that it applies the global profiles correctly on each monitor, but Krita always applies one of them to both devices. Also, if the box "use the profile of the system monitor is checked, it confuses the profiles of my devices, so I have to assign them manually. Could you tell me what your configuration looks like, since it is the same as the one I describe? Thanks from in advance and greetings!

link David Revoy Author,

Hey, yes, this part doesn't work very well and the best setup I found (I often use the same config as you: cintiq13HD duplicate of my main + an external monitor, so three in total) is to assign the ICC I create with DispCalGUI for each monitors with Dispwin ; using a bash script at start-up. This color correct the full desktop on the three monitors. Then I let Krita do the convertion not using the system monitor profile (unchecked) and I put sRGB built-in in each "Screen" list. This way Krita convert the color profile of document to sRGB for the display; and dispwin correct this with my profile. This method works well with monitors being near to sRGB gamut; but has limits with wide gamut monitors where one has no benefit to restrict all colors to the small gamut of sRGB to display a CMYK or AdobeRGB document... Fortunately all my cheap monitors rarely exeed 104% of sRGB gamut; so I'm fine getting this bottleneck at the output of Krita and correct it on the fly with a global one.

link Douglas Brebner  

I knew you could change brightness/contrast/colour temperature this way but I've never been able to change things like the seperate colour channel gains/saturations/hues.

I keep meaning to send a wireshark trace of colour calibrating my cintiq from windows to the linux wacom devs but it'll require a lot of messing around, assuming I can even trace ddc stuff :(

link David Revoy Author,

Hi Douglas,
I never tried the Windows version of the driver, so I had no idea the gains/saturation/hue were also exposed; but do you think these are hardware controls like the classic brightness/contrast/color temperature we can find on any monitors? It sounds like this part can be changed with the video card curves, but I'm not sure about that. Maybe something for xrandr on X11 (I'm thinking about 'xrandr --output LVDS1 --brightness 0.9' sort of command-line; this one can reduce the luminosity by 90%) or the options '--set "Broadcast RGB" "Full"' or '--gamma red:green:blue' ; but all in all touching saturation and hue might be counter-productive to calibrate the monitor so I'm not really missing this type of options. But I find it interesting to think Wacom exposed this to their proprietary driver; thank you for your comment.

link Douglas Brebner  

I think they're hardware controls, but I couldn't get them to respond.

Supposedly, when you calibrate some Cintiqs using the Wacom colourimeter, it uploads the colour curves to the Cintiq itself, instead of just tweaking the video card curves. This is with the Windows Wacom drivers of course.

I was trying to figure out how this worked so I could send the information to the Linux wacom driver people to add to the drivers. That way, tools like ArgyllCMS and xsetwacom could support this under Linux.

link Francisco  

Hi, David, and thanks for the answer about how you use color management in Krita. After many tests, trying to obtain a consistent configuration, I have had many doubts and problems that I do not understand or I can not solve myself.

I tried to reproduce your scheme (sRGB for the screen, with "using the system monitor profile" unchecked). Previously, I calibrated my monitors with displayCal, and loaded the profiles with colord. I tried using the displayCal charger, but sometimes it loads only one profile.
With this configuration, my files with embedded srgb profile, are seen with darker shadows and with very little detail, and some more saturated colors in the case of my main monitor. The conclusion I have reached is that Krita seems not to convert the gamma of the profile created for the monitors, to the gamma of the sRGB profile. As I read, gamma 2.2 and sRGB "gamma" are different. sRGB has a curve with a straight segment at the beginning, which flattens the shadows.

I have done some tests, such as opening the same image in Photoshop, Gimp, Inkscape and Gwenview. In all cases, with a similar configuration (I think so), I see the image with shadows "not cropped."

Even making a profile with a 1.6 gamma, as an experiment, all the previous programs correct it, and the images are displayed correctly, even if my desktop is very clear.
I have achieved some configurations that allow me to use sRGB in Krita, without trimming the shadows, although with disparate results regarding the saturation of some shades:

Using a gamma sRGB in the calibration of the monitors. This option clears my desktop, but the programs mentioned above make the compensation, and I see the same image in all of them, including Krita.

Using a "simplified" sRGB color space, it seems that with a pure 2.2 gamma, created with Photoshop, it seems to fit better with sRGB.

Using the sRGB-width-gamma-22-tone-response-curve profile of an Elle Stone experiment:

https://ninedegreesbelow.com/photography/color-management-experiments-1.html

Sorry to get too long, but right now I am quite confused with the color management in Krita. May I ask your opinion?

Thanks and best regards.

link David Revoy Author,

It might be an issue with colord. Note that (in case you are using KDE) the colord-kde module still think Plasma4 exists and the module is shipped as it is even on future Kubuntu Daily build for future LTS. I load my profiles here with dispwin for all my monitors.

#! /bin/sh
dispwin -d 1 -c
dispwin -d 2 -c
dispwin -d 1 /home/deevad/scripts/2020-01-06_PHIL27.icc
dispwin -d 2 /home/deevad/scripts/2020-01-06_PHIL21.icc

For the issue; you have a bug (especially if you see other software can do it and can reproduce where Krita is failing). It might be an issue with how Krita reads colord type of profiles; or how colord expose the ICC infos to Krita. It might be also something Krita can't read or access (snap? flatpack containment?) Please report a bug on the bug tracker; Wolthera or Boud will be able to help more than I do with your issue.

link David Revoy Author,

Note: I tested new beta version of KDE-Neon and Kubuntu 20.04LTS Daily; colord-kde is not working. I reported a bug report here but the project look like abandoned even if I could see a Gentoo developper packing it recently and even patching the dialog to get a new icon. But it might be just a packager not checking if the apps works and not owning a colorimeter, just launching the apps, spotting an icon to update.... Here is the report: https://bugs.kde.org/show_bug.cgi?id=417157

link Francisco  

Thank you very much, David, for your response and suggestions, and for the research. The questions related to color management are always complex, and I think it is a fundamental aspect in any digital artist.

link Amelie  

Thank you very much David for pointing me to the right direction. I've been using a Wacom One in half darkness for a while on Ubuntu/Gnome, until I found your blog post. Very much appreciated your time sharing this (and your drawings are beautiful!).

BTW, for Wacom One brightness is not listed among the device VCP capabilities, however can still be tweaked with "sudo ddcutil --mfg=WAC setvcp 10 85" where 85 is the brightness percentage.

All the best, and Stay safe!

link David Revoy Author,

Oh, thank you very much for leaving here your solution for the Wacom One brightness on Ubuntu/Linux. And thank you for your nice words!

link Fishness  

Hi,
I'm trying to configure my wacom 16 the same way yo do but I get the following from ddcutil:
sudo ddcutil detect
Invalid display
I2C bus: /dev/i2c-5
EDID synopsis:
Mfg id: LGD
Model:
Serial number:
Manufacture year: 2014
EDID version: 1.4
DDC communication failed
This is an eDP laptop display. Laptop displays do not support DDC/CI.

Invalid display
I2C bus: /dev/i2c-7
EDID synopsis:
Mfg id: LKM
Model: LNKG V2HA01
Serial number:
Manufacture year: 2017
EDID version: 1.3
DDC communication failed

Now, one is my laptopscreen wich does not support DDC/CI.
But the other one (LKM) should be my Cintiq (since it's the only other screen connected).

Have you any idea how to overcome this situation. Not finding much out there...

link cleon  

Hi,
Thanks for the great instructions!

I have the same problem as Fishness. After running "sudo ddcutil detect" I got the following output:

Invalid display
I2C bus: /dev/i2c-8
EDID synopsis:
Mfg id: WAC
Model: Cintiq 16
Serial number: 0EQ00X1005961
Manufacture year: 2020
EDID version: 1.3
DDC communication failed

If I ignore the "invalid display" legend and run "sudo ddcutil --mfg=WAC" capabilities, I get:

Display not found

Do you have an idea how can I solve this problem?

link David Revoy Author,

No idea, sorry. I can't understand why dccutil detect the device in your case, but cannot find the display. Maybe ask Jason (link to his Twitter account on the article, but I'm sure his email is also on the git log of the linux-wacom project). If you find a solution, feel free to comeback here and write it in the comments, I'm sure it will be useful for this generation of Cintiqs (the 16/20) . Thanks.

link Fredrik Berglund  

Very grateful I found this well-written article. Finally I could increase the factory default backlight level of my Wacom One (which doesn't have a brightness setting as the Cintiqs). Thanks so much!

link David Revoy Author,

Ha great this article still works! and for this model too. Thanks for the feedback.

link Charlie Whitehead  

Thank you for taking the time to post this article. What drawing application do you use with the Cintiq? Gimp?

link David Revoy Author,

You're welcome. I mainly use Krita (also Free/Libre and Open-source), you'll find on my blog many resources about it.

link Tyson Tan  

Thank you, David. This information helped me a lot!

link David Revoy Author,

Hey Tyson,
I'm glad it was helpful for you and still working 3 years after publication.
Hereafter I set the ideal luminosity on my device, I rarely revisited these steps on my recent distro.

link Tyson Tan  

I have to change this setting all the time -- I use this to lower the screen brightness at night, otherwise I can't go to sleep properly. XD

link Han Young  

The wacom cintiq pro 13 I'm testing refused to comply to the set brightness command. After two days of debugging, I found out that only after restore factory defaults can I set the brightness. The capability code for cintiq pro 13 is 04, so I just execute `sudo ddcutil --mfg=WAC setvcp 04 1`

link David Revoy Author,

Thank you for the feedback, I'll plug your workaround on the footer of the article to give it more visibility.


Post a reply

The comments on this article are archived and unfortunately not yet connected to a dedicated post on Mastodon. Feel free to continue the discussion on the social media of your choice. Link to this post:

You can also quote my account so I'll get a notification.
(eg. @davidrevoy@framapiaf.org on my Mastodon profile.)