Color Managed Monitor I

Let’s get rolling: after we described the principles of CM (Color Management) and how they can be help us making our photographic experience less of a pain, let’s move on with the first practical step: the monitor.

Preamble (man, that sounds serious)

Now before moving further (well, before starting, really…), I just would like to make a couple of points:

  • There is no point color managing a monitor if you leave your printer “uncolormanaged”. That is why there is so much importance on CMS (for system). The CMS should include (or at least take into account) all the components of your graphic chain: camera, scanner, raw processing software, editing software, monitor, printer… See now why I started a blog on Linux Photography?
  • We will not deal with scanning in detail. We also assume that the image we got from the camera is in AdobeRGB (or sRGB), so there is nothing special to do on that side. The fun begins when you upload your pictures from the memory card onto your (Linux) computer.

Monitor – generalities (man, that sounds boring)

In the old times, we had CRT monitors: huge, heavy and bulky, but with excellent color rendition. The first generations of flat screens were really not up to par with their ancestors when it comes to color accuracy (remember, we still talk about photography here, not gaming…). It was that bad that they were considered impossible to use for photographic work. Things have evolved since and apparently, the current technology is fine for a photographic usage – I still have an old CRT 🙂

The French magazine Chasseur d’Image started testing (flat) monitors and, while some models do better than others, most of them (even cheap ones) are decent enough. However, a cheap laptop screen is out of the game…

Another warning: screens are sold to look nice and deliver a flattering image. When you go through the process of calibration (putting your screen in a color management ready state) the image will look a lot less flattering. Usually yellow and unappealing.

  • First, remember that even if less flashy, that is closer to “true colors” which is what we are after (if not, then you should have stopped reading long ago).
  • Second, you will get used to it: when the screen changes from its nice, contrasty, blueish colors to a yellowish unappealing image, it hurts the eyes. Now look elsewhere for 2 minutes and go back to it: without direct comparison, your eyes adapt.

Monitor calibration: getting an ICC profile

We said earlier that what we need is an ICC profile (or ICM for Monitor, but it is essentially the same thing) that describes how the monitor displays colors. The idea is to “ask the monitor to show a pure red and measure what we get”. Do the sames for different colors and intensities and you get a table that says how this specific monitors displays color. Yes, the table is the ICC profile.

Now since things can never be simple, your ICC profile will match that monitor with these settings. Change your brightness and you need to redo the operation. It is advised to redo it anyway every month (or so) to take into account the aging of the monitor…

In order to do the measurement, you need a piece of hardware – our eyes are not measuring instruments… The price starts at about $80 up to several hundreds. I have the cheap version (the first one that was affordable) a Colorvision Spyder. Unfortunately, there is currently no driver for Linux for the device, so I have to generate my profile in Windows. Some models are supported by Argyll CMS (we will talk about Argyll later), but mostly top of the range (ie, more expensive) models.

So after you stick your colorimeter on the screen, you are asked to tune your brightness and contrast parameters (remember not to touch them anymore…) and the software starts drawing color patches on screen that are measured by the hardware. All of that takes a few minutes and you end up with an ICC (or ICM) profile.

That is the simple version. If you take a more pro approach, you will need to chose your gamma, white point, and possibly further tweaks… Let’s just say that 2.2 gamma and 6500 K white point (the defaults for PC) is all right, unless you know what you are doing and why.

You can get your Profile in C:/Windows/System32/spool/drivers/color (?!??) and reboot in Linux.

Using the profile in Linux

The profile we just created contains 2 things:

  • information for the video card about how it should display colors by default. That is called calibration: brining the monitor to a known default state of displaying colors. This part is loaded by the video card and makes a difference on how everything is displayed on your monitor (makes it yellowish).
  • information for color management aware programs about how to fine tune color rendition. This part is only used by the specific software (most recent version of The Gimp, Cinepaint, Scribus and others)

We will just talk about the first step for now. Basically you need to tell your video card to display colors according to the monitor profile. There are two utilities that do that for you: xcalib and dispwin (part of Argyll).

Basically, you just enter:

xcalib /path/to/iccprofile.icc

in a terminal and you should see your screen turning yellowish (that is a good sign, remember). An equivalent would be:

dispwin /path/to/iccprofile.icc

xcalib (web) is a little utility that only loads your profile information into the video card. dispwin is part of a very broad range of (command line) utilities for CM called Argyll CMS (web). Argyll CMS allows (for the parts I understand):

  • to profile a monitor with selected hardware
  • to load profile information in the video card (dispwin)
  • to generate a vrml file representing the gamut of one or more ICC profile or the colors used on one image (more on that later)
  • to transform images from one profile to another (more on that later, too)

While neither xcalib nor ArgyllCMS are part of the readily installable software range of Ubuntu/Debian both provide binary versions for X86 on their site. They are not difficult to compile either, but need quite a lot of “dev” files (for Xorg, most notably). I have and AMD64, so I had to recompile.


When we are there, we have a screen under Linux that is calibrated. That is, the screen is ready to display “true colors”. More accurately, it is ready to display colors that are as close as possible to the “objective colors” of your camera image, defined in AdobeRGB standard. But in order to not just “be ready” but really to “go and do it”, it needs a “color aware” photographic software.


56 Responses to Color Managed Monitor I

  1. Valery says:


    First, thanks for your site. Very clear and usefull.

    Second, I’ve downloaded xcalib (compiled). So I have this file: xcalib. Where did I put it in order to Ubuntu recognized it and that I can do: xcalib /path/to/iccprofile.icc



  2. jcornuz says:

    Hi there,

    If you have an xcalib file, you’re (almost) done. Just change xcalib’s permissions (in nautilus, right-click the file & choose allow execution like a program) and then copy it (as root) in /usr/bin with “sudo cp ./xcalib /usr/bin” assuming you are in the directory where your xcalib is. That’s it.

    Bonne journée


  3. Valery says:

    Thank you so much. That was it. It works. I had my answer in 30 minutes! Great!

  4. I’m getting the following error when trying to make xcalib in ubuntu, any idea what the problem might be?

    pdirty@recycled:/usr/local/xcalib-0.8$ make xcalib
    cc -O2 -c xcalib.c -I/usr/X11R6/include -DXCALIB_VERSION=\”0.8\”
    xcalib.c:41:19: error: ctype.h: No such file or directory
    xcalib.c:42:19: error: errno.h: No such file or directory
    xcalib.c:43:19: error: stdio.h: No such file or directory
    xcalib.c:44:20: error: stdlib.h: No such file or directory
    xcalib.c:46:19: error: fcntl.h: No such file or directory
    xcalib.c:47:20: error: string.h: No such file or directory
    xcalib.c:48:23: error: sys/types.h: No such file or directory
    In file included from xcalib.c:52:
    /usr/include/X11/Xos.h:168:20: error: unistd.h: No such file or directory

  5. jcornuz says:

    Hi there,

    I replied in here

    Take care,


  6. jcornuz says:

    By the way… there is now a 64bit version of xcalib pre-compiled. It is available from xcalib website :

  7. thomas says:

    I have a Colorvision Spyder2 Express.

    Downloaded and tested Argyll Color Management Beta Release (V0.70 Beta 8) for Linux.

    Run “./spyd2en -v /media/cdrom/setup/setup.exe”, which created “spyd2PLD.bin”.
    Run “./targen mytest1”, and then successfully was able to run “/dispcal -yc -c1 mytest1.ti1”, which created

    So Colorvision Spyder2 Express is working on Linux.


  8. julian says:

    Hi. I’m using xcalib on Ubuntu to load a profile I’ve made in windows. Everytime I boot up or switch user, I need to run xcalib in the Terminal. Is there anyway to get this to run automatically during the boot process? I’m a linux newbie, so assume I know nothing!

  9. jcornuz says:

    Hi Julian,

    There is a simple solution to do what you need. I’ll try to do a step-by-step howto 🙂

    1) open your text editor
    2) type in
    xcalib /path/to/your/icc_profile.icc
    3) save this file as
    4) right click on it, under properties / permission, tick “allow executing file as program”
    5) Open System/Preferences/Sessions
    6) Chose add
    7) Name: load icc profile, command / browse to your file
    8 ) Make sure the new entry is ticked

    This will allow you to load your monitor profile on login. There is a problem however with gnome screensaver that removes the profile when it activates. Simple solution: don’t use a screen saver. Better solution: check here and here for a script to circumvent the problem. Note also that clicking on the file and choosing “run” will load your monitor profile.

    Hope this helps. Take care,


  10. julian says:

    wow, my hero!!! can you recommend a book or books so I can go from newbie to being able to do this stuff by myself?

  11. jcornuz says:

    Hey Julian,

    Not very heroic. Any terminal command line can be combined into a file. google, ubuntuforums and a lot of time are your 3 best friends here 🙂

    Take care,


  12. […] to load the profile. You can even write a bash script and have your icc profile loaded at session start-up – see a detailed tutorial here. […]

  13. John Bryden says:

    Thank you for taking the time to put this site together, it has been of great help. I am now using Linux for everything including photography.

    Take care


  14. […] to calibrate the monitor, then export the color profile and import it in Linux. There is an article here on how to do it. With help from one of the comments in that article, I found about Argyll Color […]

  15. […] Numérique which offers freely downloadable icc profiles for some monitors and laptops. You can use them with xcalib on your Linux system. It assumes that you keep your monitor settings as from the […]

  16. markos says:

    Ok I import icm profile I created with my Spyder3 using xcalib easy and clear
    But I dont like the colors at all 🙂 … Cant say they are correct.
    I hope argyllcms to bring us support for the new Spyder 3.
    Do you suggest any settings during Windows calibration in order to achieve better results on Linux later importing the icm profile?
    Maybe using different gamma value or what else … I am not an expert.

  17. jan says:

    this is an excellent guide, both tools work perfectly. however, i came to prefer xcalib as you can install it using apt-get. btw, is there a default location where one *should* put icc profiles?

  18. jcornuz says:

    Hi Jan,

    Thanks for your comment.

    Users profiles should go in ~/.color/icc while system profiles should go in /usr/share/color/icc.

    dispwin also sets the xicc atom (so other color aware application such as eye of gnome, afaik, can pick the profile). I am not sure if xcalib does anything about xicc…

    Take care,


  19. Paul Valley says:

    I’ve loaded xcalib and tried xcalib /usr/share/color/icc/”profile.icc” but my monitor didnt switch to a yellowish color?


  20. […] “y” or “any key” in the terminal, you will get an icc profile which you can load with dispwin or xcalib (for screen calibration) as well as your graphic application (for profiling – if the application […]

  21. Andy B says:


    Thanks for all the information, I’ve learnt a lot from this blog. I do have one question though. I have calibration my monitor have and have a icc profile. If I apply it to my computer (xubuntu) using xcalib do I also need to need to load the profile into my photography software (gimp, ufraw, raw studio), or will this apply the colour correction twice making the displayed colours incorrected?

    I hope that makes sense.


  22. jcornuz says:

    Hi Andy,

    Yes, you want to load your profile with xcalib and inside your photographic software. I take Cinepaint as an example here:

    Take care,


    • David Edwards says:

      Thanks for your guides, Joel. I’ve recently moved to Ubuntu from Windows and am just trying to figure out how to get everything set up how I want – and your guides have been a very helpful so far.

      However, I’m a bit confused on this question – where to load a display profile. If I load it for the display as a whole using xcalib or dispwin, it is loaded into the LUT of my video driver and is applied for every application I run, regardless of whether it is aware of colour management. That can be demonstrated visually by loading and unloading the profile while viewing various applications.

      So, why would I also need to tell a profile-aware application to use the display profile too? If the application converts from my working colour space using the display profile, then the colours will get converted again by the video driver. Or are applications such as Cinepaint clever enough to know the profile is already loaded into the video driver and not to do any internal conversion?

      But if what I think is correct – ie, it is not necessary to set the display profile in your graphics application if you’ve loaded it into the video driver, then what should the “display profile” be set to in applications that have a setting for it?

      In comparison, in Windows, I used to load my display profile using Adobe Gammer Loader and then in Photoshop I would work in Adobe RGB. The only other profile I would set in Photoshop was my printer profile, when printing and when soft-proofing.

  23. J-Hob says:

    Thanks very much for this information, I’m a photographer looking to move over to linux and your blog answered a lot of my colour profiling questions, many thanks!

    I’m intending on running a windows VM from linux to run lightroom, will see how it goes!

  24. Shawn says:

    I know this is an old article but I cannot find an answer to my question and hoped that you may be able to help. I am using xcalib just as you stated but I cannot tell if it is working correctly or doing anything at all. I don’t see any change what-so-ever. How do I check to see what profile the system is using? I am using Mint 7 (Ubuntu Jaunty).

  25. Davros says:

    Shawn: I had this concern as well and someone was kind enough to address it under the comments for Joel’s “Use ColorVision Spyder to produce an ICC monitor profile under ArgyllCMS / Linux” article. (

    In a terminal type “dispwin -V” without the quotes and followed by wherever you keep your monitor profile. The V should be upper case. So say your profile was under “/usr/share/colour/icc” and it was called “monitor.icc” you would type the following:

    dispwin -V /usr/share/colour/icc/monitor.icc

    If it says that your profile is not loaded, type it again, but turn the V into a lower case c. This will load the profile. You can then type the first command I mentioned to see the difference and be sure it loaded this time. Example:

    dispwin -c /usr/share/colour/icc/monitor.icc

    Thanks to the guys who guided me in the above mentioned article. One of them made a typo and one forgot a detail, so I compiled it here in this one reply for you. Confident it should work as I just tried it now. (For some unknown reason my profile was not loaded unbeknownst to me so I am happy I caught it thanks to your post.)

  26. Davros says:

    I almost forgot: “dispwin -I” should load and install the profile. That is to say set it to load automatically in the future each time, but as far as I can tell for me it is merely loading it the one time. That is probably just me though. Example.

    dispwin -I /usr/share/colour/icc/monitor.icc

  27. Shawn says:

    I now use Gnome Color Manager which works perfectly. And SUPER easy.

  28. tweak windows 7…

    […]Color Managed Monitor I « Linux Photography[…]…

  29. Marlene says:

    Hello this is somewhat of off topic but I was wanting to know if blogs use WYSIWYG editors or if you have to manually code
    with HTML. I’m starting a blog soon but have no coding skills so I wanted to get advice from someone with experience. Any help would be greatly appreciated!

  30. all the time i used to read smaller articles or reviews that also
    clear their motive, and that is also happening with this
    article which I am reading at this place.

  31. Jackie says:

    Census Bureau projected an increase in world population from 6.
    On the other hand, centralized systems are noticed to be expensive in the long run.

    Thus not only is the surface area maximized, but so is the amount of time each bubble spends in the
    water, allowing more time to transfer oxygen to the water.

  32. Census Bureau projected an increase in world population from 6.

    Recently, I read an article in Scientific American by Adam Hadhazy.
    The system also monitors alarms from the Grundfos IO111
    sensor and MP204 motor protection unit, which allows the tip
    person to immediately monitor the pump performance and
    protects them from damage.

  33. The Samsung Captive is smooth, thin, and works great.
    Motorola has been producing handsets that have charmed people with its technologies and style.

    Even the USB and headphone ports are protected by rubber

  34. Hi my friend! I want to say that this post is awesome, great written and include approximately
    all vital infos. I’d like to look more posts like this .

  35. says:

    When I initially commented I clicked the “Notify me when new comments are added” checkbox and now
    each time a comment is added I get three emails with
    the same comment. Is there any way you can remove people from that service?
    Many thanks!

  36. ShowBox says:

    Yes! Finally someone writes about no.

  37. parenting says:

    It’s actually very complex in this active life to listen
    news on Television, so I only use the web for that purpose, and take the most recent news.

  38. I don’t know if it’s just me or if perhaps everybody else experiencing problems with your
    website. It seems like some of the text within your
    posts are running off the screen. Can someone else
    please comment and let me know if this is happening to them as well?

    This might be a issue with my web browser because I’ve
    had this happen previously. Many thanks

  39. Howdy would you mind stating which blog platform you’re working with?
    I’m going to start my own blog soon but I’m having a difficult time making a decision between BlogEngine/Wordpress/B2evolution and Drupal.
    The reason I ask is because your design seems different then most blogs and I’m looking
    for something completely unique. P.S My apologies for being off-topic
    but I had to ask!

  40. Beryl says:

    This information is worth everyone’s attention. Where can I find
    out more?

  41. Allison says:

    Hi i am kavin, its my first occasion to commenting anyplace, when i read this post
    i thought i could also make comment due to this sensible paragraph.

  42. What’s up to every one, the contents present at this web site
    are actually awesome for people experience, well, keep up the good work fellows.

  43. France says:

    Hello, I think your site might be having browser compatibility issues.

    When I look at your blog in Chrome, it looks fine but
    when opening in Internet Explorer, it has some overlapping.
    I just wanted to give you a quick heads up! Other then that, terrific blog!

  44. This would possibly nearly certainly be fairly a good choice for some of one’s respective employment I have plans to won’t smaller than along with a website

  45. online says:

    – Join National Aquarium CEO John Racanelli for any
    private dive within their Atlantic Coral Reef exhibit. For that you could thank the chemists who developed ultralight materials which
    are remarkably durable.

    Similarly, dairy too could are afflicted by the same
    problem unless they’re kept inside freezer.
    True enough, Weber grill can’t be absent in outdoor parties as almost as
    much ast your favorite barbecue. online

  46. I read this paragraph completely concerning the difference of latest and previous technologies, it’s awesome article.

  47. gift card says:

    When I initially commented I clicked the “Notify me when new comments are added” checkbox and now each time a comment is added
    I get four emails with the same comment. Is there any way you can remove me from that service?
    Appreciate it!

  48. Heya! I’m att work browsing your blog from my new apple iphone!
    Just wanted to say I love reading your blog and look forward to
    all your posts! Carry on the excellent work!

  49. I do not even know how I ended up here, however I assumed this publish was good.
    I don’t understand who you are however certainly you are going to a well-known blogger if you happen to aren’t already.

  50. New Hacking Group hacking everthing !! – The wild hacker crew has over 100 confirmed high level targets this month alone – http://456bosfo4pgtbrv3.onion. You must use TOR browser to access.

  51. Make hand made comics from real photos

    Comic Generator is very easy to use. You need to insert your images, which will automatically take it�s place in the Comic page of your choice. Then use our library of speech / text balloons and power FB words (Boom, Bang, Rooar, Crack, Wham�). Use our…

  52. I am glad it worked for you. Thanks for the feedback!

  53. Mira says:

    Typically ancillary creates need to be observed to give the items being sold also to gather
    money off the victorious bidders by the end of the auctions.

  54. Sifive are not releasing the designs anymore. So yeah, it may be riscV based but story of the instruction set aside, it’s no different than your regular ARM processor or your 80xx based micro.They’re also not trying to sell computers, they want to design (and fab?) chips for customers.

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

%d bloggers like this: