# dispcalGUI—Open Source Display Calibration and Characterization powered by Argyll CMS

## 1.7.1.6

2014-01-19 10:02 UTC

- Get dispcalGUI
- System requirements
- What's new in this version

- About
- Quickstart guide
- Issues & solutions
- Get help
- Report a bug
- Donate

Stay up-to-date and be notified of new releases by signing up to the dispcalGUI-news mailing list (unless you're already subscribed to dispcalGUI-users which also receives new release notifications).

If you would like to support the development of dispcalGUI, you can make a donation.
If you decide to donate, please also consider donating to Argyll CMS (if you haven't already), as dispcalGUI wouldn't be possible without it (visit argyllcms.com and scroll down a bit to get to its donation link).
Thanks to all donors!

Donate using PayPal:
Currency:

(For other means of donating, please contact me under dispcalGUI ‹at› hoech . net)

## About dispcalGUI

dispcalGUI is a graphical user interface for the display calibration and profiling tools of Argyll CMS, an open source color management system by Graeme Gill.

Calibrate and characterize your display devices using one of the many supported hardware sensors, with support for multi-display setups and a variety of available settings like customizable whitepoint, luminance, black level, tone response curve as well as the option to create matrix and look-up-table ICC profiles, with optional gamut mapping. Other features include:

- Support of colorimeter correction for wide-gamut screens via correction matrices or calibration specral sample files (the latter only for specific colorimeters i.e. i1 Display Pro, ColorMunki Display and Spyder 4).
- Profile verification: Check the quality of profiles via measurements. Also supports custom CGATS files (e.g. FOGRA, GRACoL/IDEAlliance, SWOP) and using of reference profiles to obtain test values.
- Test chart editor: Create charts with any amount of color patches, easy copy & paste from CGATS, CSV files (only tab-delimited) and spreadsheet applications.

### Screenshots

Main window
Gamut mapping options
Testchart editor

Display adjustment
Measurements
Calibration curves

KDE4
Mac OS X
Windows 7

## Disclaimer

This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version.

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

dispcalGUI is written in Python and uses the 3rd-party packages NumPy, demjson (JSON[6] library) and wxPython (GUI[4] toolkit). It also makes extensive use of several Argyll CMS utilities. The build system to create standalone executables additionally uses setuptools and py2app on Mac OS X or py2exe on Windows. All of these software packages are © by their respective authors.

## Get dispcalGUI

Please note: Argyll CMS is a separate download.

- ### For Linux

  Native packages for several distributions are available via openSUSE Build Service:

  - Arch x86 | x86_64
  - CentOS 6 x86 | x86_64
  - Debian 5 (Lenny) x86 | x86_64
  - Debian 6 (Squeezy) x86 | x86_64
  - Debian 7 (Wheezy) x86 | x86_64
  - Fedora 16 x86 | x86_64
  - Fedora 17 x86 | x86_64
  - Fedora 18 x86 | x86_64
  - Fedora 19 x86 | x86_64
  - Fedora 20 x86 | x86_64
  - Mandriva 2009.1 x86 | x86_64
  - Mandriva 2010 x86 | x86_64
  - Mandriva 2010.1 x86 | x86_64
  - Mandriva 2011 x86 | x86_64
  - openSUSE 11.4 x86 | x86_64
  - openSUSE 12.1 x86 | x86_64
  - openSUSE 12.2 x86 | x86_64
  - openSUSE 12.3 x86 | x86_64
  - openSUSE 13.1 x86 | x86_64
  - openSUSE Factory x86 | x86_64
  - openSUSE Tumbleweed x86 | x86_64
  - RedHat RHEL 6 x86 | x86_64
  - SUSE Linux Enterprise 11 x86 | x86_64
  - SUSE Linux Enterprise 11 SP1 x86 | x86_64
  - SUSE Linux Enterprise 11 SP2 x86 | x86_64
  - Ubuntu 10.04 (Lucid) x86 | x86_64
  - Ubuntu 10.10 (Maverick) x86 | x86_64
  - Ubuntu 11.04 (Natty) x86 | x86_64
  - Ubuntu 11.10 (Oneiric) x86 | x86_64
  - Ubuntu 12.04 (Precise) x86 | x86_64
  - Ubuntu 12.10 (Quantal) x86 | x86_64
  - Ubuntu 13.04 (Raring) x86 | x86_64
  - Ubuntu 13.10 (Raring) x86 | x86_64

  Packages made for older distributions may work on newer distributions as long as nothing substantial has changed (i.e. Python version). Also there are several distributions out there that are based on one in the above list (e.g. Linux Mint which is based on Ubuntu). This means that packages for that base distribution should also work on derivatives, you just need to know which version the derivative is based upon and pick your download accordingly.

  In all other cases, you can try one of these universal installs that should work on a multitude of distributions:

  Autopackage (Python 2.5, 2.6 and 2.7, x86 and x86_64)

  0install feed (Python 2.5, 2.6 and 2.7, x86 and x86_64)

  To use the 0install feed, you need 0install (“zero install”). This should be available through the package manager of your distribution.

- ### For Mac OS X (10.4 or newer)

  Disk image

- ### For Windows (XP or newer)

  Installer (recommended) or ZIP archive

- ### Source code

  You need to have a working Python installation and all requirements.

  Source Tarball

  Alternatively, if you don't mind trying out development code, browse the SVN[8] repository of the latest development version (or do a full checkout using `svn checkout svn://svn.code.sf.net/p/dispcalgui/code/trunk dispcalgui`). But please note that the development code might contain bugs or not run at all, or only on some platform(s). Use at your own risk.

## Quickstart guide

This short guide intends to get you up and running quickly, but if you run into a problem, you should refer to the full prerequisites and installation sections.

1. Get and install the latest release of dispcalGUI. It is recommended to first remove all previous versions.

2. Download and unpack Argyll CMS: Linux | Mac OS | Windows. Put the extracted directory (Argyll_VX.X.X) in a convenient place on your harddisk.

   ### If you want to use the HCFR colorimeter under Mac OS X...

   Follow the instructions under “installing Argyll CMS on Mac OS X” in the Argyll CMS documentation.

3. Launch dispcalGUI. If it cannot determine the path to the Argyll CMS binaries, it will prompt you to select the location manually on first launch.

   ### If your measurement device is a i1 Display Pro, ColorMunki Display or Spyder 4...

   You'll want to import the colorimeter corrections that are part of the i1 Profiler or ColorMunki Display software package, which can be used to better match the instrument to a particular type of display.

   Choose “Import colorimeter corrections from other display profiling software...” from dispcalGUI's “Tools” menu. If the i1 Profiler or ColorMunki Display software is installed or its installation media is inserted, the colorimeter corrections can be imported automatically, otherwise you will have to manually select the software's setup executable. Select the ColorMunki Display PC (Windows) Setup or i1 Profiler PC (Windows) Setup regardless of your actual operating system (both files contain the same set of colorimeter corrections, the ColorMunki software is a slightly smaller download).

   If your measurement device is a Spyder 4, you'll also want to enable additional measurement modes for that particular instrument.

   ### If your measurement device is a Spyder 2...

   The Spyder 2 needs the vendor firmware pattern to function.

   Choose “Enable Spyder 2 colorimeter...” from dispcalGUI's “Tools” menu. If the Spyder 2 software is installed or its installation media is inserted, the Spyder 2 can be enabled automatically, otherwise you will have to manually select the Spyder 2 software's setup executable. Select the Spyder 2 Setup for Windows regardless of your actual operating system.

   ### If your measurement device is a Spyder 4...

   The full range of measurement modes for the Spyder 4 are only available if they are imported from the Spyder 4 software.

   Choose “Import colorimeter corrections from other display profiling software...” from dispcalGUI's “Tools” menu. If the Spyder 4 software is installed or its installation media is inserted, the colorimeter corrections can be imported automatically, otherwise you will have to manually select the Spyder 4 software's setup executable. Select the Spyder 4 Setup for Windows (choose one of Elite, Express, HD or Pro) regardless of your actual operating system.

4. Connect your measurement device to your computer.

   Windows only: If your measurement device is not a ColorMunki Display, i1 Display Pro or Huey, you need to install an Argyll-specific driver. See “Driver installation under Windows”.

   Click the small icon with the swirling arrows in between the “Display device” and “Instrument” controls to detect connected displays devices and instruments. The detected instrument(s) should show up in the “Instrument” dropdown.

   Linux only: If you cannot access your instrument, first try unplugging and reconnecting it, or a reboot. If that doesn't help, read “Installing Argyll CMS on Linux: Setting up instrument access”.

5. Refer to the documentation for usage instructions.

## System requirements and other prerequisites

### General system requirements

- A recent Linux, Mac OS X (10.4 or newer) or Windows (XP/Server 2003 or newer) operating system.
- A graphics card with at least 24 bits per pixel (true color) support and the desktop set up to use this color depth.

### Argyll CMS

To use dispcalGUI, you need to download and install Argyll CMS (1.0 or newer).

### Supported instruments

You need one of the supported instruments to make measurements. All instruments supported by Argyll CMS are also supported by dispcalGUI. For display readings, these currently are:

#### Colorimeters

- Calman X2 (treated as i1 Display 2)
- Datacolor/ColorVision Spyder 2
- Datacolor Spyder 3 (since Argyll CMS 1.1.0)
- Datacolor Spyder 4 (since Argyll CMS 1.3.6)
- HP Advanced Profiling Solution (treated as i1 Display 2)
- HP DreamColor (treated as i1 Display 2)
- Hughski ColorHug (experimental only, does not work reliably on all platforms, especially on Mac OS X. Linux support since Argyll CMS 1.3.6, Windows support with newest ColorHug firmware since Argyll CMS 1.5.0)
- Lacie Blue Eye (treated as i1 Display 2)
- Sequel Imaging MonacoOPTIX (treated as i1 Display 1)
- X-Rite ColorMunki Create (treated as i1 Display 2)
- X-Rite ColorMunki Smile (since Argyll CMS 1.5.0)
- X-Rite DTP92
- X-Rite DTP94
- X-Rite/GretagMacbeth/Pantone Huey
- X-Rite/GretagMacbeth i1 Display 1
- X-Rite/GretagMacbeth i1 Display 2/LT
- X-Rite i1 Display Pro, ColorMunki Display (since Argyll CMS 1.3.4)

#### Spectrometers

- JETI specbos 1211/1201 (new in Argyll CMS 1.6.0 beta)
- X-Rite ColorMunki Design, ColorMunki Photo (since Argyll CMS 1.1.0)
- X-Rite/GretagMacbeth i1 Monitor (since Argyll CMS 1.0.3)
- X-Rite/GretagMacbeth i1 Pro
- X-Rite/GretagMacbeth Spectrolino

Note that the i1 Display Pro and i1 Pro are very different instruments despite their naming similarities.

Also there are currently (2011-09-02) four instruments (or rather, packages) under the ColorMunki brand, two of which are spectrometers, and two are colorimeters:

- The ColorMunki Design and ColorMunki Photo spectrometers differ only in the functionality of the bundled vendor software. There are no differences between the instruments when used with Argyll CMS and dispcalGUI.
- The ColorMunki Display colorimeter is a less expensive version of the i1 Display Pro colorimeter. It comes bundled with a simpler vendor software and has longer measurement times compared to the i1 Display Pro. Apart from that, the instrument appears to be virtually identical.
- The ColorMunki Create colorimeter is the same instrument as the i1 Display 2.

### Additional requirements for unattended calibration and profiling

When using a spectrometer that is supported by the unattended feature (see below), having to take the instrument off the screen to do a sensor self-calibration again after display calibration before starting the measurements for profiling may be avoided if the menu item “Allow skipping of spectrometer self-calibration” in the “Options” menu is checked (colorimeter measurements are always unattended because they generally do not require a sensor calibration away from the screen, with the exception of the i1 Display 1).

Unattended calibration and profiling currently supports the following spectrometers in addition to most colorimeters:

- X-Rite ColorMunki
- X-Rite/GretagMacbeth i1 Monitor & Pro
- X-Rite/GretagMacbeth Spectrolino

Be aware you may still be forced to do a sensor calibration if the instrument requires it. Also, please look at the possible caveats.

### Additional requirements for using the source code

You can skip this section if you downloaded a package, installer, ZIP archive or disk image of dispcalGUI for your operating system and do not want to run or compile from source.

#### All platforms:

- Python >= v2.5 <= v2.7.x (2.7.x is the recommended version. Mac OS X users: If you want to compile dispcalGUI from source, it is advisable to first install XCode and then the official python.org Python)
- NumPy
- wxPython GUI[4] toolkit

#### Windows:

- pywin32
- WMI

### Additional requirements for compiling

You can skip this section if you downloaded a python package of dispcalGUI for your operating system and do not want to compile from source.

#### Linux:

- GCC and development headers for Python + X11 + Xrandr + Xinerama + Xxf86vm if not already installed, they should be available through your distribution's packaging system

#### Mac OS X:

- XCode
- py2app if you want to build a standalone executable (on Mac OS X before 10.5, install setuptools first: `sudo python util/ez_setup.py setuptools`)

#### Windows:

- a C-compiler (e.g. MS Visual C++ Express or MinGW. If you're using the official python.org Python 2.6 or later I'd recommend Visual C++ Express as it works out of the box)
- py2exe if you want to build a standalone executable

### Running directly from source without installation

One-time setup instructions:

1. Open a shell.
2. `cd` into the source directory (e.g. `dispcalGUI-1.7.1.6` or `dispcalgui`).
3. If you use a version from the SVN repository, run `python setup.py` to create the version file.
4. Run `python setup.py build_ext -i` to build the extension modules (you may be able to skip this step on Linux and Mac OS X as the source already includes compiled versions of the extension modules)

You can then run `python dispcalGUI.pyw` (or launch it by double-clicking).

## Installation

It is recommended to first remove all previous versions.

### Driver installation under Windows

- #### If you already have drivers for your measurement device installed...

  Read “Adding Argyll drivers to existing drivers” (if you are using vendor drivers) or “Updating Argyll drivers” (if you use a prior version of the Argyll drivers) under “Installing Argyll CMS on Microsoft Windows” in the Argyll CMS documentation.

- #### If this is a fresh install...

  1. - ##### If you are using Windows 8...

       1. Go to “Settings” (hover the lower right corner of the screen, then click the gear icon).
       2. Select “Power” (the on/off icon).
       3. Hold the SHIFT key down and click “Restart”.
       4. Select “Troubleshoot → “Advanced Options” → “Startup Settings” → “Restart”.
       5. After reboot, select “Disable Driver Signature Enforcement” (number 7 on the list).
       6. Open the desktop, then go to “Settings” (hover the lower right corner of the screen, then click the gear icon) → “Control Panel” → “Hardware and Sound” → “Device Manager”.
       7. Locate the instrument in the device list. It may be underneath one of the top level items (usually “Other devices”).
       8. Right click on the instrument and select “Update Driver Software...”.
       9. Select “Browse my computer for driver software”.
       10. Select “Let me pick from a list of device drivers on my computer” and then “Next”.
       11. Select “Have disk...” then “Browse...”.

     - ##### If you are using Windows Vista/7...

       1. A “Found new hardware” dialog should appear.
       2. Select “Locate and install driver software (recommended)”.
       3. If a “User Account Control” window pops up, select “Continue”.
       4. Select “Don't search online”.
       5. Select “I don't have the disc, show me other options”.
       6. Select “Browse my computer for driver software (advanced)”.

     - ##### If you are using Windows XP...

       1. A “Found new hardware” dialog should appear.
       2. In the window “Can Windows connect to Windows Update to search for software?” select “No, not this time” and “Next”.
       3. Select “Install from a list or specific location (advanced)” then “Next”.
       4. Select “Search for the best driver in these locations”, “Include this location in the search” and “Browse...”.
  2. Locate the “libusbw” (Argyll CMS up to 1.1.1), “libusb1” (Argyll CMS up to 1.4.0) or “usb” (Argyll CMS 1.5.0 and newer) subdirectory in your Argyll_VX.X.X directory (you may also need to select the .inf file that corresponds to your device, then select “Open” and “OK”). Select “Next”.
  3. If a “Windows Security” dialog pops up, select “Install this driver software anyway”.
  4. A window stating the successful installation of the driver should show. Click “Finish”/“Close”.

### Linux package (.deb/.rpm)

A lot of distributions allow easy installation of packages via the graphical desktop, i.e. by double-clicking the package file's icon. Please consult your distribution's documentation if you are unsure how to install packages.

If you cannot access your instrument, first try unplugging and reconnecting it, or a reboot. If that doesn't help, read “Installing Argyll CMS on Linux: Setting up instrument access”.

### Linux Autopackage (.package)

Before installing the autopackage, first install wxPython (on some systems called python-wxGTK or python-wxWidgets) and NumPy using your system's package management software. To install the autopackage, follow these three steps (you only have to do it once, next time, you can just skip these steps and open the .package file directly):

1. Click on the package with your right mouse button. Then click on the “Properties” menu item.
2. Go to the “Permissions” tab.
   - Check the “Execute”, “Exec” or “Is Executable” checkbox. If there are more than one Execute/Exec checkboxes, check the top-most one.
   - Click “Close” or “OK”, depending on the dialog.
3. If you already have the software installed from your distributions packages or from the source, remove it first. Then open the package file. If you are asked whether you want to display or run the package, choose “Run”.

The installation will now begin. Follow further intructions that are displayed, if any.

If you cannot access your instrument, first try unplugging and reconnecting it, or a reboot. If that doesn't help, read “Installing Argyll CMS on Linux: Setting up instrument access”.

### Mac OS X

Mount the disk image and option-drag its icon to your “Applications” folder. Afterwards open the “dispcalGUI” folder in your “Applications” folder and drag dispcalGUI's icon to the dock if you want easy access.

If you want to use the HCFR colorimeter under Mac OS X, follow the instructions under “installing Argyll CMS on Mac OS X” in the Argyll CMS documentation.

### Windows (Installer)

Launch the installer which will guide you trough the required setup steps.

If your measurement device is not a ColorMunki Display or i1 Display Pro, you need to install an Argyll-specific driver. See “Driver installation under Windows”.

### Windows (ZIP archive)

Unpack and then simply run dispcalGUI from the created folder.

If your measurement device is not a ColorMunki Display or i1 Display Pro, you need to install an Argyll-specific driver. See “Driver installation under Windows”.

### Source code (all platforms)

See the “Prerequisites” section to run directly from source without installation.

Starting with dispcalGUI 0.2.5b, you can use standard distutils/setuptools commands with setup.py to build, install, and create packages. `sudo python setup.py install` will compile the extension modules and do a standard installation. Run `python setup.py --help` or `python setup.py --help-commands` for more information. A few additional commands and options which are not part of distutils or setuptools (and thus do not appear in the help) are also available:

#### Additional setup commands

`bdist_appdmg` (Mac OS X only)
  Creates a DMG of a previously created (by the py2app or bdist_standalone commands) application bundle.
`bdist_deb` (Linux/Debian-based)
  Create an installable Debian (.deb) package, much like the standard distutils command bdist_rpm for RPM packages. Prerequisites: You first need to install alien and rpmdb, create a dummy RPM database via `sudo rpmdb --initdb`, then edit (or create from scratch) the setup.cfg (you can have a look at misc/setup.ubuntu9.cfg for a working example). Under Ubuntu, running utils/dist_ubuntu.sh will automatically use the correct setup.cfg. If you are using Ubuntu 11.04 or any other debian-based distribution which has Python 2.7 as default, you need to edit /usr/lib/python2.7/distutils/command/bdist_rpm.py, and change the line `install_cmd = ('%s install -O1 --root=$RPM_BUILD_ROOT '` to `install_cmd = ('%s install --root=$RPM_BUILD_ROOT '` by removing the `-O1` flag. Also, you need to change /usr/lib/rpm/brp-compress to do nothing (e.g. change the file contents to `exit 0`, but don't forget to create a backup copy first) otherwise you will get errors when building.
`bdist_standalone`
  Creates a standalone executable that does not require a Python installation. Uses bbfreeze on Linux, py2app on Mac OS X and py2exe on Windows. setup.py will try and automatically download/install these packages for you if they are not yet installed and if not using the --use-distutils switch. Note: On Mac OS X, older versions of py2app (before 0.4) are not able to access files inside python “egg” files (which are basically ZIP-compressed folders). Setuptools, which is needed by py2app, will normally be installed in “egg” form, thus preventing those older py2app versions from accessing its contents. To fix this, you need to remove any installed setuptools-<version>-py<python-version>.egg files from your Python installation's site-packages directory (normally found under `/Library/Frameworks/Python.framework/Versions/Current/lib`). Then, run `sudo python util/ez_setup.py -Z setuptools` which will install setuptools unpacked, thus allowing py2app to acces all its files. This is no longer an issue with py2app 0.4 and later.
`buildservice`
  Creates control files for openSUSE Build Service (also happens implicitly when invoking `sdist`).
`finalize_msi` (Windows only)
  Adds icons and start menu shortcuts to the MSI installer previously created with `bdist_msi`. Successful MSI creation needs a patched msilib (additional information).
`inno` (Windows only)
  Creates an Inno Setup install script for an executable created with the `py2exe` or `bdist_standalone` commands.
`purge`
  Removes the `build` and `dispcalGUI.egg-info` directories including their contents.
`purge_dist`
  Removes the `dist` directory and its contents.
`readme`
  Creates README.html by parsing misc/README.template.html and substituting placeholders like date and version numbers.
`uninstall`
  Uninstalls the package. You can specify the same options as for the `install` command.

#### Additional setup options

`--cfg=<name>`
  Use an alternate setup.cfg, e.g. tailored for a given Linux distribution. The original setup.cfg is backed up and restored afterwards. The alternate file must exist as misc/setup.<name>.cfg
`-n`, `--dry-run`
  Don't actually do anything. Useful in combination with the uninstall command to see which files would be removed.
`--skip-instrument-configuration-files`
  Skip installation of udev rules and hotplug scripts.
`--skip-postinstall`
  Skip post-installation on Linux (an entry in the desktop menu will still be created, but may not become visible until logging out and back in or rebooting) and Windows (no shortcuts in the start menu will be created at all).
`--use-distutils`
  Force setup to use distutils (default) instead of setuptools. This is useful in combination with the bdist* commands, because it will avoid an artificial dependency on setuptools. This is actually a switch, use it once and the choice is remembered until you specify the `--use-setuptools` switch (see next paragraph).
`--use-setuptools`
  Force setup to try and use setuptools instead of distutils. This is actually a switch, use it once and the choice is remembered until you specify the `--use-distutils` switch (see above).

### Instrument-specific setup

If your measurement device is a i1 Display Pro, ColorMunki Display or Spyder 4, you'll want to import the colorimeter corrections that are part of the i1 Profiler or ColorMunki Display software package, which can be used to better match the instrument to a particular type of display.

Choose “Import colorimeter corrections from other display profiling software...” from dispcalGUI's “Tools” menu. If the i1 Profiler or ColorMunki Display software is installed or its installation media is inserted, the colorimeter corrections can be imported automatically, otherwise you will have to manually select the software's setup executable. Select the ColorMunki Display PC (Windows) Setup or i1 Profiler PC (Windows) Setup regardless of your actual operating system (both files contain the same set of colorimeter corrections, the ColorMunki software is a slightly smaller download).

The full range of measurement modes for the Spyder 4 are only available if they are imported from the Spyder 4 software.

Choose “Import colorimeter corrections from other display profiling software...” from dispcalGUI's “Tools” menu. If the Spyder 4 software is installed or its installation media is inserted, the colorimeter corrections can be imported automatically, otherwise you will have to manually select the setup executable. Select the Spyder 4 Setup for Windows (choose one of Elite, Express, HD or Pro) regardless of your actual operating system.

If your measurement device is a Spyder 2, choose “Enable Spyder 2 colorimeter...” from dispcalGUI's “Tools” menu. If you don't have the spyder software installed or its location cannot be determined, you will be prompted to manually select the setup executable. Select the Spyder 2 Setup for Windows regardless of your actual operating system.

## Basic concept of display calibration and profiling

If you have previous experience, skip ahead. If you are new to display calibration, here is a quick outline of the basic concept.

First, the display behavior is measured and adjusted to meet user-definable target characteristics, like brightness, gamma and white point. This step is generally referred to as calibration. Calibration is done by adjusting the monitor controls, and the output of the graphics card (via calibration curves, also sometimes called video LUT[7] curves—please don't confuse these with LUT profiles, the differences are explained here) to get as close as possible to the chosen target.
To meet the user-defined target characteristics, it is generally advisable to get as far as possible by using the monitor controls, and only thereafter by manipulating the output of the video card via calibration curves, which are loaded into the video card gamma table, to get the best results.

Second, the calibrated displays response is measured and an ICC[5] profile describing it is created.

Optionally and for convenience purposes, the calibration is stored in the profile, but both still need to be used together to get correct results. This can lead to some ambiguity, because loading the calibration curves from the profile is generally the responsibility of a third party utility or the OS, while applications using the profile to do color transforms usually rely on the calibration being already loaded. Currently, the only OS that applies calibration curves out-of-the-box is Mac OS X (under Windows 7 you can enable it, but it's off by default)—for other OS's, dispcalGUI takes care of creating an appropriate loader.

Even non-color-managed applications will benefit from a loaded calibration because it is stored in the graphics card—it is “global”. But the calibration alone will not yield accurate colors—only fully color-managed applications will make use of display profiles and the necessary color transforms.

Regrettably there are several image viewing and editing applications that only implement half-baked color management by not using the system's display profile (or any display profile at all), but an internal and often unchangeable “default” color space like sRGB, and sending output unaltered to the display after converting to that default colorspace. If the display's actual response is close to sRGB, you might get pleasing (albeit not accurate) results, but on displays which behave differently, for example wide-color-gamut displays, even mundane colors can get a strong tendency towards neon.

## A note about colorimeters, wide-gamut displays and dispcalGUI

Colorimeters need a correction in hardware or software to obtain correct measurements from wide-gamut displays (please also see “Wide Gamut Displays and Colorimeters” on the Argyll CMS website for more information). The latter is supported when using Argyll CMS >= 1.3.0, so if you own a wide-gamut display and colorimeter which has not been specifically tuned for this display (i.e. does not contain a correction in hardware), you can apply a correction that has been calculated from spectrometer measurements to help better measure such a screen.
You need a spectrometer in the first place to do the necessary measurements to create such a correction, or you may query dispcalGUI's Colorimeter Corrections Database, and there's also a list of contributed colorimeter correction files on the Argyll CMS website—please note though that a matrix created for one particular instrument/display combination may not work well for different instances of the same combination because of generally low inter-instrument agreement of most colorimeters.
Starting with dispcalGUI 0.6.8, you can also import generic corrections from some profiling softwares by choosing the corresponding item in the “Tools” menu.

If you buy a screen bundled with a colorimeter, the instrument may have been matched to the screen in some way already, so you may not need a software correction in that case.

### Special note about the X-Rite i1 Display Pro, ColorMunki Display and Spyder 4 colorimeters

These instruments greatly reduce the amount of work needed to match them to a display because they contain the spectral sensitivities of their filters in hardware, so only a spectrometer reading of the display is needed to create the correction (in contrast to matching other colorimeters to a display, which needs two readings: One with a spectrometer and one with the colorimeter).
That means anyone with a particular screen and a spectrometer can create a special Colorimeter Calibration Spectral Set (`.ccss`) file of that screen for use with those colorimeters, without needing to actually have access to the colorimeter itself.

## Usage

Through the main window, you can choose your settings. When running calibration measurements, another window will guide you through the interactive part of display adjustment.

### Settings file

Here, you can load a calibration (`.cal`) or ICC profile (`.icc` / `.icm`) file from a previous run. This will set options to those stored in the file and also load calibration curves (if any) into the video card. If the file contains only a subset of settings, you will get a message showing which settings were loaded.

If a calibration file or profile is loaded in this way, its name will show up here to indicate that the settings reflect those in the file. Also, if a calibration is present it can be used as the base when “Just Profiling”.
The chosen settings file will stay as long as you do not change any of the calibration or profiling settings, with one exception: When a `.cal` file with the same base name as the settings file exists in the same directory, adjusting the quality and profiling controls will not cause unloading of the settings file. This allows you to use an existing calibration with new profiling settings for “Just Profiling”, or to update an existing calibration with different quality and/or profiling settings. If you change settings in other situations, the file will get unloaded (but current settings will be retained—unloading just happens to remind you that the settings no longer match those in the file), and current display profile's calibration curves will be restored (if present, otherwise they will reset to linear).

When a calibration file is selected, the “Update calibration” checkbox will become available, which takes less time than a calibration from scratch. If a ICC[5] profile is selected, and a calibration file with the same base name exists in the same directory, the profile will be updated with the new calibration. Ticking the “Update calibration” checkbox will gray out all options as well as the “Calibrate & profile” and “Just profile” buttons, only the quality level will be changeable.

### Predefined settings (presets)

Starting with dispcalGUI v0.2.5b, predefined settings for several use cases are selectable in the settings dropdown. I strongly recommend to NOT view these presets as the solitary “correct” settings you absolutely should use unmodified if your use case matches their description. Rather view them as starting points, from where you can work towards your own, optimized (in terms of your requirements, hardware, surroundings, and personal preference) settings.

#### Why has a default gamma of 2.2 been chosen for the presets?

Many displays, be it CRT or LCD type, have a default response characteristic close to a gamma of approx. 2.2-2.4 (for CRTs, this is the actual native behaviour; and LCDs typically try to mimic CRTs). A target response curve for calibration that is reasonably close to the native response of a display should help to minimize calibration artifacts like banding, because the adjustments needed to the video card's gamma tables via calibration curves will not be as strong as if a target response farther away from the display's native response had been chosen.

Of course, you can and should change the calibration response curve to a value suitable for your own requirements. For example, you might have a display that offers hardware calibration or gamma controls, that has been internally calibrated/adjusted to a different response curve, or your display's response is simply not close to a gamma of 2.2 for other reasons. You can run “Report on uncalibrated display device” from the “Tools” menu to measure the approximated overall gamma among other info.

### Choosing the display to calibrate and the measurement device

After connecting the instrument, click the small icon with the swirling arrows in between the “Display device” and “Instrument” controls to detect connected displays devices and instruments.

#### Choosing a measurement mode

Some instruments may support different measurement modes for different types of display devices. In general, there are three base measurement modes: “LCD”, “Refresh” (e.g. CRT and Plasma are refresh-type displays) and “Projector” (the latter is only available if supported by the instrument). Some instruments like the Spyder 4 and ColorHug support additional measurement modes, where a mode is coupled with a predefined colorimeter correction (in that case, you should set the colorimeter correction dropdown to “None” / “Off”).
Variations of these measurement modes may be available depending on the instrument: “Adaptive” measurement mode for spectrometers uses varying integration times to increase accuracy of dark readings, but may be more inconsistent overall. “HiRes” turns on high resolution spectral mode for spectrometers like the i1 Pro, which may increase the accuracy of measurements.

#### Drift compensation during measurements (only available if using Argyll CMS >= 1.3.0)

White level drift compensation tries to counter luminance changes of a warming up display device. For this purpose, a white test patch is measured periodically, which increases the overall time needed for measurements.

Black level drift compensation tries to counter measurement deviations caused by black calibration drift of a warming up measurement device. For this purpose, a black test patch is measured periodically, which increases the overall time needed for measurements. Many colorimeters are temperature stabilised, in which case black level drift compensation should not be needed, but spectrometers like the i1 Pro or ColorMunki Design/Photo are not temperature compensated.

#### Choosing a colorimeter correction for a particular (wide-gamut) display

This can improve a colorimeters accuracy for a particular type of display, please also see “A note about colorimeters, wide-gamut displays and dispcalGUI”. You can import generic matrices from some other display profiling softwares as well as check the online Colorimeter Corrections Database for a match of your display/instrument combination (click the small globe next to the correction dropdown). A list of contributed correction matrices can also be found on the Argyll CMS website.

Please note this option is only available if using Argyll CMS >= 1.3.0 and a colorimeter.

### Calibration settings

White point

  Allows setting the target white point locus to the equivalent of a daylight or black body spectrum of the given temperature in degrees Kelvin, or as chromaticity co-ordinates. By default the white point target will be the native white of the display, and it's color temperature and delta E to the daylight spectrum locus will be shown during monitor adjustment, and adjustments will be recommended to put the display white point directly on the Daylight locus. If a daylight color temperature is given, then this will become the target of the adjustment, and the recommended adjustments will be those needed to make the monitor white point meet the target. Typical values might be 5000 for matching printed output, or 6500, which gives a brighter, bluer look. A white point temperature different to that native to the display may limit the maximum brightness possible.

  If you want to find out the current uncalibrated whitepoint of your display, you can run “Report on uncalibrated display device” from the “Tools” menu to measure it.

  If you want to adjust the whitepoint to the chromaticities of your ambient lighting, or those of a viewing booth as used in prepress and photography, and your measurement device has ambient measuring capability (e.g. like the i1 Pro or i1 Display with their respective ambient measurement heads), you can use the “Measure” button next to the whitepoint settings. If you want to measure ambient lighting, place the instrument upwards, beside the display. Or if you want to measure a viewing booth, put a metamerism-free gray card inside the booth and point the instrument towards it. Further instructions how to measure ambient may be available in your instrument's documentation.

White level

  Set the target brightness of white in cd/m2. If this number cannot be reached, the brightest output possible is chosen, consistent with matching the white point target. Note that many of the instruments are not particularly accurate when assessing the absolute display brightness in cd/m2. NOTE that some LCD screens behave a little strangely near their absolute white point, and may therefore exhibit odd behavior at values just below white. It may be advisable in such cases to set a brightness slightly less than the maximum such a display is capable of.

  If you want to find out the current uncalibrated white level of your display, you can run “Report on uncalibrated display device” from the “Tools” menu to measure it.

Black level

  Can be used to set the target brightness of black in cd/m2 and is useful for e.g. matching two different screens with different native blacks to one another, by measuring the black levels on both (i.e. in the “Tools” menu, choose “Report on uncalibrated display”) and then entering the highest measured value. Normally you may want to use native black level though, to maximize contrast ratio. Setting too high a value may also give strange results as it interacts with trying to achieve the target “advertised” tone curve shape. Using a black output offset of 100% tries to minimize such problems.

Tone curve / gamma

  The target response curve is normally an exponential curve (output = inputgamma), and defaults to 2.2 (which is close to a typical CRT displays real response). Four pre-defined curves can be used as well: the sRGB colorspace response curve, which is an exponent curve with a straight segment at the dark end and an overall response of approximately gamma 2.2, the L* curve, which is the response of the CIE L*a*b* perceptual colorspace, the Rec. 709 video standard response curve and the SMPTE 240M video standard response curve.

  Note that a real display can't reproduce any of these ideal curves, since it will have a non-zero black point, whereas all the ideal curves assume zero light at zero input.

  For gamma values, you can also specify wheter it should be interpreted relative, meaning the gamma value provided is used to set an actual response curve in light of the non-zero black of the actual display that has the same relative output at 50% input as the ideal gamma power curve, or absolute, which allows the actual power to be specified instead, meaning that after the actual displays non-zero black is accounted for, the response at 50% input will probably not match that of the ideal power curve with that gamma value (to see this setting, you have to go into the “Options” menu, and enable “Show advanced calibration options”).

  To allow for the non-zero black level of a real display, by default the target curve values will be offset so that zero input gives the actual black level of the display (output offset). This ensures that the target curve better corresponds to the typical natural behavior of displays, but it may not be the most visually even progression from display minimum. This behavior can be changed using the black output offset option (see further below).

  Also note that many color spaces are encoded with, and labelled as having a gamma of approximately 2.2 (ie. sRGB, REC 709, SMPTE 240M, Macintosh OS X 10.6), but are actually intended to be displayed on a display with a typical CRT gamma of 2.4 viewed in a darkened environment.
  This is because this 2.2 gamma is a source gamma encoding in bright viewing conditions such as a television studio, while typical display viewing conditions are quite dark by comparison, and a contrast expansion of (approx.) gamma 1.1 is desirable to make the images look as intended.
  So if you are displaying images encoded to the sRGB standard, or displaying video through the calibration, just setting the gamma curve to sRGB or REC 709 (respectively) is probably not what you want! What you probably want to do, is to set the gamma curve to about gamma 2.4, so that the contrast range is expanded appropriately, or alternatively use sRGB or REC 709 or a gamma of 2.2 but also specify the actual ambient viewing conditions via a light level in Lux, so that an appropriate contrast enhancement can be made during calibration. If your instrument is capable of measuring ambient light levels, then you can do so.
  (For in-depth technical information about sRGB, see “A Standard Default Color Space for the Internet: sRGB” at the ICC[5] website for details of how it is intended to be used)

  If you're wondering what gamma value you should use, you can run “Report on uncalibrated display device” from the “Tools” menu to measure the approximated overall gamma among other info. Setting the gamma to the reported value can then help to reduce calibration artifacts like banding, because the adjustments needed for the video card's gamma table should not be as strong as if a gamma further away from the display's native response was chosen.

Ambient light level

  (To see this setting, go into the “Options” menu, and enable “Show advanced calibration options”)

  As explained for the tone curve settings, often colors are encoded in a situation with viewing conditions that are quite different to the viewing conditions of a typical display, with the expectation that this difference in viewing conditions will be allowed for in the way the display is calibrated. The ambient light level option is a way of doing this. By default calibration will not make any allowances for viewing conditions, but will calibrate to the specified response curve, but if the ambient light level is entered or measured (which you may also do during the interactive display controls portion of the calibration), an appropriate viewing conditions adjustment will be performed. For a gamma value or sRGB, the original viewing conditions will be assumed to be that of the sRGB standard viewing conditions, while for REC 709 and SMPTE 240M they will be assumed to be television studio viewing conditions.
  By specifying or measuring the ambient lighting for your display, a viewing conditions adjustment based on the CIECAM02 color appearance model will be made for the brightness of your display and the contrast it makes with your ambient light levels.

  Please note your measurement device needs ambient measuring capability (e.g. like the i1 Pro or i1 Display 2 with their respective ambient measurement heads) to measure the ambient light level.

Black output offset

  (To see this setting, go into the “Options” menu, and enable “Show advanced calibration options”)

  Real displays do not have a zero black response, while all the target response curves do, so this has to be allowed for in some way.

  The default way of handling this (equivalent to 100% black output offset) is to allow for this at the output of the ideal response curve, by offsetting and scaling the output values. This defined a curve that will match the responses that many other systems provide and may be a better match to the natural response of the display, but will give a less visually even response from black.

  The other alternative is to offset and scale the input values into the ideal response curve so that zero input gives the actual non-zero display response. This ensures the most visually even progression from display minimum, but might be hard to achieve since it is different to the natural response of a display.

  A subtlety is to provide a split between how much of the offset is accounted for as input to the ideal response curve, and how much is accounted for at the output, where the degree is 0.0 accounts for it all as input offset, and 100% accounts for all of it as output offset.

Black point correction

  (To see this setting, go into the “Options” menu, and enable “Show advanced calibration options”)

  Normally dispcal will attempt to make all colors down the neutral axis (R=G=B) have the same hue as the chosen white point. Near the black point, red, green or blue can only be added, not subtracted from zero, so the process of making the near black colors have the desired hue, will lighten them to some extent. For a device with a good contrast ratio or a black point that has nearly the same hue as the white, this is not a problem. If the device contrast ratio is not so good, and the black hue is noticeably different to that of the chosen white point (which is often the case for LCD type displays), this could have a noticeably detrimental effect on an already limited contrast ratio. Here the amount of black point hue correction can be controlled.
  By default a factor of 100% will be used, which is usually good for CRT and also by default a factor of 0% is used for LCD type displays, but you can override these with a custom value between 0% (no correction) to 100% (full correction).

  If less than full correction is chosen, then the resulting calibration curves will have the target white point down most of the curve, but will then cross over to the native or compromise black point.

Black point correction rate (only available if using Argyll CMS >= 1.0.4)

  (To see this setting, go into the “Options” menu, and enable “Show advanced calibration options”)

  If the black point is not being set completely to the same hue as the white point (ie. because the factor is less than 100%), then the resulting calibration curves will have the target white point down most of the curve, but will then blend over to the native or compromise black point that is blacker, but not of the right hue. The rate of this blend can be controlled. The default value is 4.0, which results in a target that switches from the white point target to the black, moderately close to the black point. While this typically gives a good visual result with the target neutral hue being maintained to the point where the crossover to the black hue is not visible, it may be asking too much of some displays (typically LCD type displays), and there may be some visual effects due to inconsistent color with viewing angle. For this situation a smaller value may give a better visual result (e.g. try values of 3.0 or 2.0. A value of 1.0 will set a pure linear blend from white point to black point). If there is too much coloration near black, try a larger value, e.g. 6.0 or 8.0.

Calibration speed

  Determines how much time and effort to go to in calibrating the display. The lower the speed, the more test readings will be done, the more refinement passes will be done, the tighter will be the accuracy tolerance, and the more detailed will be the calibration of the display. The result will ultimately be limited by the accuracy of the instrument, the repeatability of the display and instrument, and the resolution of the video card gamma table entries and digital or analogue output (RAMDAC).

Interactive display adjustment
  Turning this off skips straight to calibration measurements instead of giving you the opportunity to alter the display's controls first. You will normally want to keep this checked, to be able to use the controls to get closer to the chosen target characteristics.

### Profiling settings

Testchart file
  You can choose the test patches used when profiling the display here. The default ones are automatically chosen based on profile quality and type, but you can also use and create your own using the built-in testchart editor (click on the colored patches next to the testchart file selector or choose “Edit testchart...” from the “File” menu to launch it).
Testchart editor

  The provided default testcharts should work well in most situations, but allowing you to create custom charts ensures maximum flexibility when characterizing a display and can improve profiling accuracy and efficiency. See also optimizing testcharts.

  You can enter the amount of patches to be generated for each patch type (white, gray, single channel, iterative and multidimensional cube steps). The iterative algorythm can be tuned if more than zero patches are to be generated. What follows is a quick description of the several available iterative algorythms, with “device space” meaning in this case RGB coordinates, and “perceptual space” meaning the (assumed) XYZ numbers of those RGB coordinates. The assumed XYZ numbers can be influenced by providing a previous profile, thus allowing optimized test point placement.

  - Optimized Farthest Point Sampling (OFPS) will optimize the point locations to minimize the distance from any point in device space to the nearest sample point
  - Incremental Far Point Distribution incrementally searches for test points that are as far away as possible from any existing points
  - Device space random chooses test points with an even random distribution in device space
  - Perceptual space random chooses test points with an even random distribution in perceptual space
  - Device space filling quasi-random chooses test points with a quasi-random, space filling distribution in device space
  - Perceptual space filling quasi-random chooses test points with a quasi-random, space filling distribution in perceptual space
  - Device space body centered cubic grid chooses test points with body centered cubic distribution in device space
  - Perceptual space body centered cubic grid chooses test points with body centered cubic distribution in perceptual space

  You can set the degree of adaptation to the known device characteristics used by the default full spread OFPS algorithm. A preconditioning profile should be provided if adaptation is set above a low level. By default the adaptation is 10% (low), and should be set to 100% (maximum) if a profile is provided. But, if for instance, the preconditioning profile doesn't represent the device behavior very well, a lower adaption than 100% might be appropriate.

  For the body centered grid distributions, the angle parameter sets the overall angle that the grid distribution has.

  The “Limit samples to sphere” option is used to define an L*a*b* sphere to filter the test points through. Only test points within the sphere (defined by it's center and radius) will be in the generated testchart. This can be good for targeting supplemental test points at a troublesome area of a device. The accuracy of the L*a*b* target will be best when a reasonably accurate preconditioning profile for the device is chosen. Note that the actual number of points generated can be hard to predict, and will depend on the type of generation used. If the OFPS, device and perceptual space random and device space filling quasi-random methods are used, then the target number of points will be achieved. All other means of generating points will generate a smaller number of test points than expected. For this reason, the device space filling quasi-random method is probably the easiest to use.

  Controls for the spreadsheet-like patch editor are as follows:

  - To select patches, click and drag the mouse over table cells, or hold SHIFT (select range) or CTRL/CMD (add/remove single cells/rows to/from selection)
  - To add a patch below an existing one, double-click a row label
  - To delete patches, select them, then hold CTRL (Linux, Windows) or CMD (Mac OS X) and hit DEL or BACKSPACE (will always delete whole rows even if only single cells are selected)
  - CTRL-C/CTRL-V/CTRL-A = copy/paste/select all

  If you want to insert a certain amount of patches generated in a spreadsheet application (as RGB coordinates in the range 0.0-100.0 per channel), the easiest way to do this is probably to copy the values from the spreadsheet app, entering the testchart editor, generating a corresponding amount of patches and then overwriting them by doing CTRL-A, CTRL-V.

Profile quality
  Sets the level of effort and/or detail in the resulting profile. For table based profiles (LUT[7]), it sets the main lookup table size, and hence quality in the resulting profile. For matrix profiles it sets the per channel curve detail level and fitting “effort”.
Profile type

  Generally you can differentiate between two types of profiles: LUT[7] based and matrix based.

  Matrix based profiles are smaller in filesize, somewhat less accurate (though in most cases smoother) compared to LUT[7] based types, and usually have the best compatibility across CMM[2]s, applications and systems — but only support the colorimetric intent for color transforms. For matrix based profiles, the PCS is always XYZ. You can choose between using individual curves for each channel (red, green and blue), a single curve for all channels, individual gamma values for each channel or a single gamma for all channels. Curves are more accurate than gamma values. A single curve or gamma can be used if individual curves or gamma values degrade the gray balance of an otherwise good calibration.

  LUT[7] based profiles are larger in filesize, more accurate (but may sacrifice smoothness), in some cases less compatible (applications might not be able to use or show bugs/quirks with LUT[7] type profiles, or certain variations of them). When choosing a LUT[7] based profile type, advanced gamut mapping options become available which you can use to create perceptual and/or saturation tables inside the profile in addition to the default colorimetric tables which are always created.
  L*a*b* or XYZ can be used as PCS, with XYZ being recommended especially for wide-gamut displays bacause their primaries might exceed the ICC[5] L*a*b* encoding range (Note: Under Windows, XYZ LUT[7] types are only available in dispcalGUI if using Argyll CMS >= 1.1.0 because of a requirement for matrix tags in the profile, which are not created by prior Argyll CMS versions).
  As it is hard to verify if the LUT[7] of an combined XYZ LUT[7] + matrix profile is actually used, you may choose to create a profile with a swapped matrix (which I'd recommend), ie. blue-red-green instead of red-green-blue, so it will be obvious if an application uses the (deliberately wrong) matrix instead of the (correct) LUT because the colors will look very wrong (e.g. everything that should be red will be blue, green will be red, blue will be green, yellow will be purple etc).

  Note: LUT[7]-based profiles (which contain three-dimensional LUTs) might be confused with video card LUT[7] (calibration) curves (one-dimensional LUTs), but they're two different things. Both LUT[7]-based and matrix-based profiles may include calibration curves which can be loaded into a video card's gamma table hardware.

Advanced gamut mapping options

  Normally, profiles created by dispcalGUI only incorporate the colorimetric rendering intent, which means colors outside the display's gamut will be clipped to the next in-gamut color. LUT-type profiles can also have gamut mapping by implementing perceptual and/or saturation rendering intents. You can choose if and which of those you want after clicking “Advanced...”, by specifying a source profile and marking the appropriate checkboxes. Note that a input, output, display or device colororspace profile should be specified as source, not a non-device colorspace, device link, abstract or named color profile. You can also choose viewing conditions which describe the intended use of both the source and the display profile that is to be generated. An appropriate source viewing condition is chosen automatically based on the source profile type.

  For more information on why a source gamut is needed, see “About ICC profiles and Gamut Mapping” in the Argyll CMS documentation.

  One strategy for getting the best perceptual results with display profiles is as follows: Select a CMYK profile as source for gamut mapping. Then, when converting from another RGB profile to the display profile, use relative colorimetric intent, and if converting from a CMYK profile, use the perceptual intent.
  Another approach which especially helps limited-gamut displays is to choose one of the larger (gamut-wise) source profiles you usually work with for gamut mapping, and then always use perceptual intent when converting to the display profile.

  Please note that not all applications support setting a rendering intent for display profiles and might default to colorimetric (e.g. Photoshop normally uses relative colorimetric with black point compensation, but can use different intents via custom soft proofing settings).

Black point compensation

  This effectively prevents black crush when using the profile, but at the expense of accuracy. (Note: This option has no effect if just calibrating and creating a simple curves + matrix profile directly from the calibration data without additional profiling measurements)

Profile name

  As long as you do not enter your own text here, the profile name is auto generated from the chosen calibration and profiling options. The current auto naming mechanism creates quite verbose names which are not necessarily nice to read, but they can help in identifying the profile.
  Also note that the profile name is not only used for the resulting profile, but for all intermediate files as well (filename extensions are added automatically) and all files are stored in a folder of that name. You can choose where this folder is created by clicking the disk icon next to the field (it defaults to your system's default location for user data).

  Here's an example under Linux, on other platforms some file extensions and the location of the home directory will differ (you can mouse over the filenames to get a tooltip with a short description what the file is for):

  Chosen profile save path: `~/.local/share/dispcalGUI/storage`

  Profile name: `mydisplay`

  The following folder will be created: `~/.local/share/dispcalGUI/storage/mydisplay`

  During calibration & profiling the following files will be created:

  `~/.local/share/dispcalGUI/storage/mydisplay/mydisplay.all.sh
  ~/.local/share/dispcalGUI/storage/mydisplay/mydisplay.cal
  ~/.local/share/dispcalGUI/storage/mydisplay/mydisplay.colprof.sh
  ~/.local/share/dispcalGUI/storage/mydisplay/mydisplay.dispcal.sh
  ~/.local/share/dispcalGUI/storage/mydisplay/mydisplay.dispread.sh
  ~/.local/share/dispcalGUI/storage/mydisplay/mydisplay.dispwin.sh
  ~/.local/share/dispcalGUI/storage/mydisplay/mydisplay.icc
  ~/.local/share/dispcalGUI/storage/mydisplay/mydisplay.ti1
  ~/.local/share/dispcalGUI/storage/mydisplay/mydisplay.ti3`

  (the `.sh` files can be used to re-run without GUI[4] but same settings from a shell)

### Calibrating / profiling

If you are unclear about the difference between calibration and profiling (also called characterisation), see “Calibration vs. Characterization” in the Argyll CMS documentation.

Please let the screen stabilize for at least half an hour after powering it up before doing any measurements or assessing its color properties. The screen can be used normally with other applications during that time.

After you have set your options, click on one of the three buttons at the bottom to start the actual calibration/profiling process. The main window will hide during measurements, and should pop up again after they are completed (or after an error). You can always cancel out of running measurements using the “Cancel” button in the progress dialog, or by pressing ESC or Q. Viewing the informational log window (from the “Tools” menu) after measurements will give you access to the raw output of the Argyll CMS commandline tools and other verbose information.

#### Adjusting a display before calibration

If you clicked “Calibrate” or “Calibrate & profile” and have not turned off “Interactive display adjustment”, you will be presented with the interactive display adjustment window which contains several options to help you bring a display's characteristics closer to the chosen target values. Depending on wheter you have a CRT- or LCD-type display, I will try to give some recommendations here which options to adjust, and which to skip.

##### Adjusting a LCD display

For LCD displays, you will in most cases only want to adjust white point (if the screen has RGB gain or other whitepoint controls) and white level (with the white level also affecting the black level unless you have a local dimming LED model), as many LCDs lack the necessary “offset” controls to adjust the black point (and even if they happen to have them, they often change the overall color temperature, not only the black point). Also note that for most LCD screens, you should leave the “contrast” control at (factory) default.

White point
  If your screen has RGB gain, colortemperature or other whitepoint controls, the first step should be adjusting the whitepoint. Note that you may also benefit from this adjustment if you have set the target whitepoint to “native”, as it will allow you to bring it closer to the daylight or blackbody locus, which can help the human visual system to better adapt to the whitepoint. Look at the bars shown during the measurements to adjust RGB gains and minimize the delta E to the target whitepoint.
White level
  Continue with the white level adjustment. If you have set a target white level, you may reduce or increase the brightness of your screen (ideally using only the backlight) until the desired value is reached (i.e. the bar ends at the marked center position). If you haven't set a target, simply adjust the screen to a visually pleasing brightness that doesn't cause eye strain.

##### Adjusting a CRT display

Black level
  On CRTs, this adjustment is done using the “brightness” control. You may reduce or increase the brightness of your screen until the desired black level is reached (i.e. the bar ends at the marked center position).
White point
  The next step should be adjusting the whitepoint, using the display's RGB gain controls or other means of adjusting the whitepoint. Note that you may also benefit from this adjustment if you have set the target whitepoint to “native”, as it will allow you to bring it closer to the daylight or blackbody locus, which can help the human visual system to better adapt to the whitepoint. Look at the bars shown during the measurements to adjust RGB gains and minimize the delta E to the target whitepoint.
White level
  Continue with the white level adjustment. On CRTs this is done using the “contrast” control. If you have set a target white level, you may reduce or increase contrast until the desired value is reached (i.e. the bar ends at the marked center position). If you haven't set a target, simply adjust the screen to a visually pleasing level that doesn't cause eye strain.
Black point
  If your display has RGB offset controls, you can adjust the black point as well, in much the same way that you adjusted the whitepoint.

##### Finishing adjustments (CRT/LCD) and starting calibration/characterisation

After the adjustments, you can run a check on all the settings by choosing the last option from the left-hand menu to verify the achieved values. If adjusting one setting adversely affected another, you can then simply repeat the respective option as necessary until the target parameters are met.

Finally, select “Continue on to calibration” to start the non-interactive part. You may want to get a coffee or two as the process can take a fair amount of time, especially if you selected a high quality level. If you only wanted help to adjust the display and don't want/need calibration curves to be created, you can also choose to exit by closing the interactive display adjustment window and then select “Profile only” from the main window.
If you originally selected “Calibrate & profile” and fulfil the requirements for unattended calibration & profiling, the characterisation measurements for the profiling process should start automatically after calibration is finished. Otherwise, you may be forced to take the instrument off the screen to do a sensor self-calibration before starting the profiling measurements.

##### Optimizing testcharts for improved profiling accuracy and efficiency

A good way to generate a custom testchart to improve profiling is to use one of the default testcharts as base, altering the parameters as necessary and desired. Especially the use of an existing display profile to precondition generated test patches for improved profiling performance is recommended. You could go about this in the following way:

- When calibrating, choose “just calibrate” and the option to create a fast curves + matrix profile.
- After calibration, select a testchart to use as base (preferably one of the optimized ones) and bring up the testchart editor.
- Place a check in the “preconditioning profile” checkbox and click on “current profile”. It should automatically select the curves + matrix profile that was created during calibration. Make sure adaptation is set to a high level (e.g. 100%)
- If desired, adjust the number of patches and make sure the iterative patches amount is not zero.
- Create the chart and save it. Click “yes” when asked to select the newly generated chart.
- Start the profiling measurements (e.g. click “profile only”).

#### Profile installation

When installing a profile after creating or updating it, a startup item to load its calibration curves automatically on login will be created (on Windows and Linux, Mac OS X does not need a loader). You may also prevent this loader from doing anything by removing the check in the “Load calibration curves on Login” checkbox in the profile installation dialog, and in case you are using Windows 7 or later, you may let the operating system handle calibration loading instead (to be able to change this option, you need to run dispcalGUI as administrator).

### Advanced functions

#### Remote measurements and profiling

When using Argyll CMS 1.4.0 and newer, remote measurements on a device not directly connected to the machine that is running dispcalGUI is possible (e.g. a smartphone or tablet). The remote device needs to be able to run a web browser (Firefox recommended), and the local machine running dispcalGUI may need firewall rules added or altered to allow incoming connections. To set up remote profiling, select “Web @ localhost” from the display device dropdown menu, then choose the desired action (e.g. “Profile only”). When the message “Webserver waiting at http://<IP>:<Port>” appears, open the shown address in the remote browser and attach the measurement device.
NOTE: If you use this method of displaying test patches, there is no access to the display video LUT[7]s and hardware calibration is not possible. The colors will be displayed with 8 bit per component precision, and any screen-saver or power-saver will not be automatically disabled. You will also be at the mercy of any color management applied by the web browser, and may have to carefully review and configure such color management.
NOTE: Close the web browser window or tab after each run, otherwise reconnection may fail upon further runs.

#### Untethered display measurements

Untethered mode is another option to measure and profile a remote display that is not connected via standard means (calibration is not supported). To use untethered mode, the testchart that should be used needs to be optimized, then exported as image files (via the testchart editor) and those image files need to be displayed on the device that should be measured, in successive order. The procedure is as follows:

- Select the desired testchart, then open the testchart editor.
- Click “Optimize for untethered in auto mode”, then export the testchart.
- Burn the images to a DVD, copy them on an USB stick or use any other available means to get them to display onto the device that should be measured.
- In dispcalGUI's display dropdown, select “Untethered” (the last option).
- Show the first image on the remote display, and attach the instrument. Then select “Profile only”.

Measurements will commence, and changes in the displayed image should be automatically detected if “auto” mode is enabled. Use whatever means available to you to cycle through the images from first to last, carefully monitoring the measurement process and only changing to the next image if the current one has been successfully measured (as will be shown in the untethered measurement window). Note that untethered mode will be (atleast) twice as slow as normal display measurements.

## Known issues and solutions

- General: Wacky image colors (swapped colors)
- General: Measurements are failing if using the “Allow skipping of spectrometer self-calibration” option and/or highres/adaptive mode
- MS Windows/madVR: “The process <dispcal.exe|dispread.exe> has stopped working” / “Calibration / profiling has not been finished”
- Windows: “The process <dispcal.exe|dispread.exe|...> could not be started.”
- Photoshop: “The monitor profile […] appears to be defective. Please rerun your monitor calibration software.”
- MS Windows Vista: The calibration gets unloaded when a User Access Control prompt is shown
- MS Windows with Intel graphics: The Calibration gets unloaded after login/resume/User Access Control prompt
- MS Windows Vista and 7: The display profile isn't used if it was installed for the current user
- MS Windows: Enabling the Spyder 2 colorimeter might fail when not running as administrator
- MS Windows: Installing a display profile system-wide might fail when not running as administrator
- MS Windows Vista and 7, 64-bit: Driver signature enforcement prevents the installation of unsigned Argyll USB drivers
- MS Windows 7: Calibration does not load automatically on login when not using the dispcalGUI Profile Loader
- MS Windows XP, multiple displays: One profile is used by all displays connected to a graphics card
- Mac OS X: dispcalGUI.app is damaged and can't be opened.
- Photoshop CS3 (Mac OS X): The brush cursor looks funny (box around brush)
- Linux/Windows: No video card gamma table access (“Calibrate only” and “Calibrate & profile” buttons grayed, “Profile only” button available)
- Linux (KDE): The application does not look native
- Linux: Instrument not working correctly/constantly disconnecting (conflict with libmtp)
- General: Some text is still in english, even though another language is selected

General: Wacky image colors (swapped colors)
  Solution: This happens when you created a “XYZ LUT + swapped matrix” profile and is a way to alert you that the software you're using does not support XYZ LUT profiles and falls back to the included matrix (which generally means you'd loose accuracy). If you're having this situation only in some applications, creating a “XYZ LUT + matrix” profile will remedy it (but please keep in mind that those applications not supporting XYZ LUT will still fall back to the matrix, so results can be different from applications that support XYZ LUT correctly). If all colormanaged applications you use show swapped colors, you should create a matrix profile instead. Note that you do not have to re-run any measurements: In dispcalGUI, choose a profile type as suggested previously, adjust quality and profile name if you want, then choose “Create profile from measurement data...” in the “Options” menu and select the profile you had the issue with.
General: Measurements are failing (“Sample read failed”) if using the “Allow skipping of spectrometer self-calibration” option and/or highres/adaptive mode
  Solution: Disable either or all of the above options. The problem seems to mainly occur with the ColorMunki.
MS Windows/madVR: “The process <dispcal.exe|dispread.exe> has stopped working” / “Calibration / profiling has not been finished”
  Solution: Copy the file madHcNet32.dll from your madVR folder to the Argyll CMS binaries folder (e.g. Argyll_VX.X.X\bin).
Windows: “The process <dispcal.exe|dispread.exe|...> could not be started.”
  Solution: Go to your Argyll_VX.X.X\bin directory, and right-click the exe file from the error message. Select “Properties”, and then if there is a text on the “General” tab under security “This file came from another computer and might be blocked”, click “Unblock”.
Photoshop: “The monitor profile […] appears to be defective. Please rerun your monitor calibration software.”
  Solution: Adobe ACE, Adobe's color conversion engine, contains monitor profile validation functionality which attempts to filter out bad profiles. With XYZ LUT profiles created in Argyll CMS versions up to 1.3.2, the B2A white point mapping is sometimes not particularly accurate, just enough so that ACE will see it as a problem, but in actual use it may only have little impact that the whitepoint is a bit off. So if you get a similar message when launching Photoshop, with the options “Use profile regardless” and “Ignore profile”, you may choose “Use profile regardless” and check visually or with the pipette in Photoshop if the inaccurate whitepoint poses a problem. This issue is fixed in Argyll CMS 1.3.3 and newer. Alternatively, you can create a Lab LUT profile.
MS Windows Vista: The calibration gets unloaded when a User Access Control prompt is shown
  Solution: (Intel and Intel/AMD hybrid graphics users please see “The Calibration gets unloaded after login/resume/User Access Control prompt” first) This Windows Vista bug seems to have been fixed under Windows 7, and can be remedied under Vista by either manually reloading calibration, or disabling UAC—but please note that you sacrifice security by doing this. To manually reload the calibration, either open dispcalGUI and select “Load calibration curves from current display profile” in the “Options” menu, or (quicker) open the Windows start menu and select “dispcalGUI Profile Loader” in the “Startup” subfolder. To disable UAC[9] (not recommended!), open the Windows start menu and enter “msconfig” in the search box. Click on the Tools tab. Select the line “Disable UAC” and click the “Launch” button. Close msconfig. You need to reboot your system for changes to apply.
MS Windows with Intel graphics (also Intel/AMD hybrid): The Calibration gets unloaded after login/resume/User Access Control prompt
  Solution: The Intel graphics drivers contain several utilities that interfere with correct calibration loading. A workaround is to rename, move or disable (e.g. using a tool like AutoRuns) the following files:

      C:\Windows\system32\igfxtray.exe
      C:\Windows\system32\igfxpph.dll
      C:\Windows\system32\igfxpers.exe

MS Windows Vista and 7: The display profile isn't used if it was installed for the current user
  Solution: Open the Windows start menu, select “Control Panel”, then “Color Management” (you may have to select “Classic View” under Vista and anything other than “Category View” under Windows 7 to see it). Under the “Devices” tab, select your display device, then tick “Use my settings for this device”.
MS Windows: Enabling the Spyder 2 colorimeter might fail when not running as administrator
  Solution: Run dispcalGUI as admin. Right-click dispcalGUI's icon and choose “Run as administrator...”
MS Windows: Installing a display profile system-wide might fail when not running as administrator
  Solution: Run dispcalGUI as admin. Right-click dispcalGUI's icon and choose “Run as administrator...”
MS Windows Vista and 7, 64-bit: Driver signature enforcement prevents the installation of unsigned Argyll USB drivers
  Solution: Please upgrade to Argyll CMS 1.2.0 or later. For prior versions, signing the Argyll drivers or disabling driver signature enforcement altogether on each boot was needed to successfully use the drivers. Such workarounds are no longer needed with recent versions of Argyll CMS which include drivers that will work out-of-the-box (if you already have drivers for your measurement device installed, see “Updating Argyll drivers” under “Installing Argyll CMS on Microsoft Windows” in the Argyll CMS documentation if you use a prior version of the Argyll drivers, or “Adding Argyll drivers to existing drivers” if you are using vendor drivers).
MS Windows 7: Calibration does not load automatically on login when not using the dispcalGUI Profile Loader
  Solution: Open the Windows start menu, select “Control Panel”, then “Color Management” (you may have to select something other than “Category View” to see it). Select the “Advanced” tab, then “Change system defaults...”, and finally tick the “Use Windows display calibration” checkbox.
MS Windows XP, multiple displays: One profile is used by all displays connected to a graphics card
  Solution: The underlying issue is that Windows XP assigns color profiles per (logical) graphics card, not per output. Most XP graphics drivers present only one logical card to the OS even if the card itself has multiple outputs. There are several possible solutions to this problem:
  - Use different graphics cards and connect only one display to each (this is probably the preferable solution in terms of ease of use and is least prone to configuration error)
  - Install and use the Windows XP color control applet
  - Some graphics cards, like the Matrox Parhelia APV (no longer produced), will expose two logical cards to the OS when using a specific vendor driver (some older ATI drivers also had this feature, but it seems to have been removed from newer ones)
Mac OS X: dispcalGUI.app is damaged and can't be opened.
  Solution: Go to the “Security & Privacy” settings in System Preferences and set “Allow applications downloaded from” (under the “General” tab) to the “Anywhere” setting. After you have successfully launched dispcalGUI, you can change the setting back to a more secure option and dispcalGUI will continue to run properly.
Photoshop CS3 (Mac OS X): Under Mac OS X, the brush cursor in Photoshop CS3 looks funny (box around brush)
  Solution: This seems to be a bug which shows with LUT[7]-type profiles that have only one rendering intent. You can try to overcome it by selecting “Advanced...” next to the profile type dropdown, selecting an existing ICC[5] profile as source (for hints as to which profile to select, see “Advanced gamut mapping options”) and tick at least one of the “Apply gamut mapping to” checkboxes before profiling. To do that for an existing profile, adjust quality and profile name if you want, choose “Create profile from measurement data...” from the “Options” menu and select the profile. Note that this does not always solve the issue. Trying another profile type (XYZ LUT instead of L*a*b* LUT) might also help.
Linux/Windows: No video card gamma table access (“Calibrate only” and “Calibrate & profile” buttons grayed, “Profile only” button available)
  Solution: Under Linux, please refer to the Argyll CMS documentation, “Installing the software on Linux with X11” and “Note on X11 multi-monitor setups” / “Fixing access to Video LUTs” therein. Under Windows, please also see the solution posted under “The display profile isn't used if it was installed for the current user” if you are using Windows 7 and make sure you have a recent driver for your video card installed.
Linux (KDE): The application does not look native
  Solution: You can use the GTK-Qt Theme Engine for native KDE look. Most Linux distributions offer ready-made packages through their packaging systems, search for “gtk-qt”. Another alternative is gtk-kde4. Also, some themes come in versions for both KDE (Qt) and GTK.
Linux: Instrument not working correctly/constantly disconnecting (conflict with libmtp)
  Solution: There is a bug on some systems with libmtp that causes instruments to continuously switch between connected and disconnected state. This seems to be a bug in libmtp-runtime. You can work around it by renaming `/lib/udev/mtp-probe` or updating to libmtp 1.0.6 where the issue should be fixed.
General: Some text is still in english, even though another language is selected in the menu
  Solution: All output from the Argyll CMS utilities is always english, and on Mac OS X, also the menuitems in the application menu. This is currently not changeable.

## Get help

Need help with a specific task or problem? It may be a good idea to first check the known issues & solutions if the topic has been covered. If you want to report a bug, please see the guidelines on bug reporting. Otherwise, feel free to use one of the following channels:

- Help & support forum
- dispcalGUI-users mailing list
- Contact me directly via E-Mail: dispcalGUI ‹at› hoech . net (but keep in mind other users may also benefit from exchanges, so I'm encouraging the use one of the above channels if possible)

## Report a bug

Found a bug? If so, please first check the bug tracker, it may have been reported already. Please follow these guidelines for reporting bugs:

- Try to give a short, but concise summary of the problem.
- Try to give some steps to reproduce the problem.
- Always attach logfiles if possible. They are usually automatically created by dispcalGUI as part of normal program operation. You can find them here:
  - Linux: `/home/Your Username/.local/share/dispcalGUI/logs`
  - Mac OS X: `/Users/Your Username/Library/Logs/dispcalGUI`
  - Windows Vista and newer: `C:\Users\Your Username\AppData\dispcalGUI\logs`
  - Windows XP: `C:\Documents and Settings\Your Username\Application Data\dispcalGUI\logs`

  As the folder may contain several logfiles, it is a good idea to compress the whole folder to a ZIP or tar.gz archive that you can easily attach to a bug report.

  Please note the logfiles may contain your username as well as paths of files you may have used in dispcalGUI. I will respect your privacy at all times, but you may want to consider this when attaching logfiles to public places like the bug tracker.

Create a new ticket (or if the bug has been reported already, use the existing ticket) at the bug tracker, following the guidelines above, and attach the logfiles archive.

If you don't want to or can't use the bug tracker, feel free to use one of the other support channels.

## Discussion

Do you want to get in touch with me or other users regarding dispcalGUI or related topics? The general discussion forum or dispcalGUI-users mailing list is a good place to do so. You can also contact me directly via E-Mail: dispcalGUI ‹at› hoech . net.

## To-Do / planned features (in no particular order)

- (Long-term) improve UI.
- Better interface to GNOME Color Manager (implemented in v0.8.1.0+)
- Measure and report on screen homogenity / evenness of illumination
- Get rid of the terminal and implement a proper GUI for the interactive part of calibration (implemented in v0.8.5.6+)
- Better user interface for profile verification: If a test set contains multiple value formats (CMYK, RGB, XYZ, L*a*b*), allow selection which one(s) should be used in a “setup” window (“setup” window implemented in v1.5.6.9+, value format selection added in v1.6.3.5)
- Add gamut coverage percentages to the profile verification report if the test set contains reference values (not *.ti1): Calculate profiles from test set and verification measurements on-the-fly and create gamut volumes from test set profile, evaluated profile, and verification measurements profile using Argyll's `iccgamut` tool. Compare gamut volumes using Argyll's `viewgam` tool with `-i` option and include the results in the report (coverage calculation for test set reference and profile to be evaluated could be done before the actual measurements and also shown in the yet-to-be-implemented profile verification “setup” window).
- Complete the documentation in the README
- German language README (postponed)
- Profile verification (feed XYZ or L*a*b* to display profile, display corresponding RGB values, measure, output Delta E) (implemented in v0.3.6+)
- “Before” / “After” switch when calibration / profiling complete (implemented in v0.2+)
- Store all settings in profile, allow loading of settings from profile in addition to `.cal` file (implemented in v0.2+)
- Document the code (code documentation could still be enhanced, for now it'll do)
- Code cleanup (mostly done)

## Thanks and acknowledgements

I would like to thank the following people:

Graeme Gill, for creating Argyll CMS

Translators: Loïc Guégant (french translation), Roberto Quintero (spanish translation), Tommaso Schiavinotto (italian translation)

Recent donors: Andrew Hunter, Yulian Martsenkov, Catherine Goniot, Ben Edwards, Ievgen Morskyi, Ahammed Umminiyil, LivingWithBugs.com, Christoph Clarenbach, Paul Fokkens, Kieren Hinch, Dale Somerville, Francesco Demontis, Projection Mapping Central, Scott Janz, Govindanunny Thekkadath, Nejib Boubaker, Mason Livingston, Daniel Lenardon, Manuel López Pérez, Xavier Potel, Andrew Hunter, Thomas Voigt, Александр Ольховский, Eugeniy Yurov, Hans Cremers, George Pop, Michael Gestgrasser, Stefan Pallari, Oliver Hoefele, Kyle Winfree, more...Alexander Mitchell, Juho Turunen, Jon Sands, Evgueni Ivanov, Riccardo Mandarano, Roman Romenskiy, Myron Blume, WTPM van Vucht, Philip Tobias, Richard Luney, Matthias Klausing, M E M van Ineveld, Patryk Bajer, Gregor Kofler, Richard Egger, Michael Dougherty, Christian Spyr, Konstantin Pyanzin

And everyone who sent me feedback or bug reports, suggested features, or simply uses dispcalGUI.

Acknowledgements

Part of the comprehensive Argyll CMS documentation has been used in this document, and was only slightly altered to better fit dispcalGUI's behavior and notations.

## Version history / changelog

2014-01-19 10:02 (UTC) 1.7.1.6

  ### 1.7.1.6

  #### Added in this release:

  - A new option to not use the video card gamma table to apply calibration (default like in 1.5.2.5/1.5.3.1: On for madVR, off for everything else).
  - Correlated color temperature, gamma, RGB gray balance and gamut graphs to measurement report.
  - Re-added the default testchart for gamma + matrix profiles.
  - Testchart editor: Dark region emphasis controls (Argyll CMS 1.6.2).
  - Testchart editor: Black patches amount control (Argyll CMS 1.6).
  - Testchart editor: Ability to add saturation sweeps and reference patches (from CGATS or images) to a testchart if using a preconditioning profile and adaptation = 100%.
  - Standalone curve viewer. This allows to view the curves of the currently assigned display profile or the actual video card gamma table without launching dispcalGUI.
  - Curve viewer can reload, apply black point compensation to, load into the videocard, and export calibration files.

  #### Changed in this release:

  - Untethered measurements window: Enable keyboard navigation in the grid view (up/down/pageup/pagedown/home/end keys).
  - Measurements are now pauseable.
  - Cancelling a potentially long-running operation like measurements or profile generation now needs to be confirmed.
  - Improved robustness of ambient measurement code.
  - Show an error message when communication with the instrument fails (instead of just logging the error).
  - Show an error message when trying to measure ambient light and ambient measurements are unsupported (instead of just logging the error).
  - Regenerated testcharts preconditioned by gamma-based profiles with slight dark region emphasis.
  - Updated french translation (thanks to Loïc Guégant).
  - “Allow skipping of spectrometer calibration” will now always try to skip spectrometer calibration if enabled, not just when doing a calibration and subsequent profile in one go (“Calibrate & profile”). This means a calibration timeout will then be in effect (which is 60 minutes for the ColorMunki Design/Photo, i1 Pro and i1 Pro 2), and a recalibration will only be needed if this timeout has been exceeded before the start of an operation.
  - Testchart VRML export: Only use Bradford chromatic adaptation if ACCURATE_EXPECTED_VALUES in the `.ti1` file is true (i.e. a preconditioning profile was used), otherwise XYZ scaling (to visually match VRML files generated by Argyll CMS).
  - Renamed “Verify profile” to “Measurement report”. Added options for BT.1886 gamma mapping, whitepoint simulation, (limited) support for device link profiles, and madVR color management (3D LUTs). Overhauled report HTML layout and style.
  - Use nicer filenames and titles for HTML reports and uniformity check (e.g. include the display name for which the report was generated).
  - Improved dealing with profile linking errors during 3D LUT generation (show error dialog instead of just logging the error).
  - Always use a cLUT resolution of 65 and don't preserve device curves for 3D LUT generation, regardless of the selected 3D LUT format or size (this should make results consistent between eeColor/madVR, which were always generated like that, and the other formats).
  - Allow the use of PC levels for madVR 3D LUT output encoding.
  - Synchronize input and output encoding for eeColor 3D LUT format.
  - Disable xvYCC output encoding (not supported) and consequently disable it also as input encoding for eeColor because it needs the same input/output encoding.
  - Allow loading of calibration files that do not contain settings.
  - Testchart editor: Combined patch ordering controls.
  - Testchart editor: Vastly enhanced performance of row delete operations on very large testcharts (several thousand patches). Also slightly improved speed of testchart loading.
  - Measurement report charts: Each larger chart contains all the patches from the previous smaller chart. Re-generated video charts preconditioned to Rec. 709 and with slight dark region emphasis.
  - Windows 7 and up: Prefer dispcalGUI profile loader over calibration loading facility of the OS (the latter introduces quantization artifacts and applies wrong scaling, the former uses Argyll CMS and thus doesn't have these problems).
  - Windows: Do not regard unability to determine startup folders as fatal error (this means an autostart entry to load calibration on login can not be created automatically in that case though, so unless Windows 7 or newer is used which has the ability to load calibration without external utilities, calibration needs to be loaded manually).
  - Windows/madVR: Always reset the video card gamma table to linear when using a calibration file and not using the video card gamma table to apply the calibration (this should prevent the potential problem of double calibration being applied if loading a calibration on a display, then switching over to madVR on the same display and using a calibration file while not using the video card gamma table to apply the calibration).

  #### Fixed in this release:

  - A possible unicode decode error when the computer name contains non-ASCII characters, introduced in 1.5.2.5.
  - In some instances the handling of profile name placeholders was quirky (problematic character sequences were those consisting of the same characters, case insensitive, as calibration speed or profile quality shortcodes, i.e. FxF, MxM, SxS, VFxVF and VSxVS, with x being any non alphanumeric character).
  - When loading a settings file, only switch to the associated display device if it can be unambiguously determined (fixes multi-screen setups with identical screens always switching to the first one, a bug introduced in 1.5.2.5).
  - Ignore messages from the logging module (fixes a bogus error message being displayed under Windows when closing dispcalGUI, introduced in 1.5.2.5).
  - Handling of separate video card gamma table access controls was a bit quirky since the addition of virtual display devices.
  - If the 3D LUT target profile was overwritten by the generated device link profile (which could happen if choosing the same path and file name for the 3D LUT/device link profile as the target profile), it prevented changing the source profile.
  - Instrument (spectrometer) calibration can be required multiple times during a calibration run, depending on its duration. This was not handled correctly by the GUI.
  - 3D LUT generation with TV RGB 16-235 encoding could lead to wrongly encoded 3D LUTs if not using the eeColor or madVR format.
  - 3D LUT generation with YCbCr encodings failed with an error if not using the eeColor or madVR format.
  - Standalone utilities (3D LUT maker, curve viewer, profile information, and testchart editor) now function properly even if dispcalGUI itself was never launched before (previously the Argyll CMS version was read from the configuration, so if it was never configured before it could happen that not all available options where shown or it was never asked to select an Argyll CMS executable directory in case the Argyll CMS executables were not found).
  - Don't block other windows when an operation fails while a progress dialog with a modal dialog on top is shown.
2013-10-23 20:09 (UTC) 1.5.3.1

  ### 1.5.3.1

  #### Added in this release:

  - New feature: When creating a profile from existing measurement data, averaging of measurements can be performed by selecting multiple files.

  #### Fixed in this release:

  - Fixed possible unicode error in logging module.
  - Fixed a bug with optimizing a testchart for untethered measurements halving the amount of different device combinations by repeating patches if the total patch count was even.
  - Mac OS X 10.6: Fixed weird behavior due to a bug in OS X 10.6's version of `sudo`.
2013-10-22 14:32 (UTC) 1.5.2.5

  ### 1.5.2.5

  #### Added in this release:

  - Full Argyll CMS 1.6.0 support (e.g. JETI specbos 1211/1201, madVR calibration and 3D LUT generation, body centered cubic grid option for creating testcharts).
  - Testchart editor: Charts can be exported as PNG or TIFF files.
  - Testchart editor: Gamma and neutral axis emphasis controls.
  - Testchart editor: “Use current profile as preconditioning profile” button.
  - Testchart editor: Save VRML diagnostic files for testcharts without the need to re-generate the chart.
  - Testchart editor: Sort patches by L*, RGB, sum of RGB or sort RGB gray and white to top.
  - Untethered display measurement and profiling. Be sure to read the note on optimizing testcharts for untethered measurements in automatic mode.
  - Shortcut for the BT.1886 tone curve (previously available by setting gamma to 2.4, absolute, and black output offset to zero).
  - 3D LUT: Enable additional intents.
  - 3D LUT: Support eeColor and Pandora LUT formats.
  - 3D LUT: Support Argyll CMS 1.6 video encodings and BT.1886 gamma mapping.
  - Windows 8 Argyll CMS driver installation instructions to the ReadMe.
  - Instructions how to proceed when a process cannot be started to the ReadMe.
  - Softproof preset (based on FOGRA recommendation).
  - madVR preset.
  - sRGB preset.
  - Allow specifying extra arguments for Argyll's `targen` command.
  - Computer name, EDID serial and EDID CRC32 placeholders for use in the profile name.
  - Synthetic profile creation facility (e.g. for use as source in 3D LUT generation).
  - ACES RGB and DCI P3 colorspace definitions and reference profiles.
  - Dry run. If enabled in the options menu, all functionality that calls Argyll CMS executables will effectively do nothing. This allows review of the used command line parameters by checking the log.
  - Additional session logs are saved for most operations involving the Argyll tools (i.e. directly in the folder where created files are saved to).
  - Show profile self check ΔE*76 info in profile installation dialog.

  #### Changed in this release:

  - Testchart and preset improvements:
    - All testcharts for LUT profiles have been complemented with additional single channel patches. This should in most cases improve average and maximum delta E of generated profiles, in some cases significantly. In fact, testing has shown that the new “small testchart for LUT profiles” with 154 patches total yields better results than the previous “extended testchart for LUT profiles” with 238 patches.
    - The charts for curves + matrix profiles have been improved by adding a few additional body centered cubic grid patches - all the charts which are not tuned for a certain display type are body centered cubic grid based (this was also the case previously for the LUT testcharts, but not for the matrix charts).
    - The patch order in the LUT charts has been optimized to improve measurement speed.
    - The chart for gamma + matrix profiles has been removed in favor of the updated default chart for matrix profiles.
    - New additional charts for LUT profiles have been added in various sizes.
    - For each of the new charts for LUT profiles, starting from the “very large” size, optimized farthest-point-sampled versions have been added which are pre-conditioned for several common display types: sRGB tone response with Rec. 709 primaries and D65 whitepoint (consumer-grade displays), gamma 2.2 with Rec. 709 primaries and D65 whitepoint (consumer-grade displays, TVs), gamma 2.2 with AdobeRGB primaries and D65 whitepoint (entry-level and high-end graphics displays), L* tone response with NTSC primaries and D50 whitepoint (high-end graphics displays).
    - The naming and patch count of the testcharts for LUT profiles has changed. The mapping that most closely resembles the old testcharts is as follows (total number of patches in parentheses):
      - Old “Default testchart for LUT profiles” (124) → new “Small testchart for LUT profiles” (154)
      - Old “Extended testchart for LUT profiles” (238) → new “Default testchart for LUT profiles” (270)
      - Old “Large testchart for LUT profiles” (396) → new “Extended testchart for LUT profiles” (442)
      - Old “Very large testchart for LUT profiles” (912) → new “Very large testchart for LUT profiles” (994)
      - Old “Massive testchart for LUT profiles” (2386) → new “Massive testchart for LUT profiles” (2527)
    Use of the new charts is highly recommended. All presets have been updated to use the new chart types. The “prepress" preset has also been updated to generate a XYZ LUT profile by default.
  - Detect if the instrument can use CCMX or CCSS colorimeter corrections based on the measurement mode. Disable colorimeter corrections for non-base display types.
  - Correctly map measurement mode to DISPLAY_TYPE_BASE_ID for all supported instruments when creating CCMX.
  - If a colorimeter correction with DISPLAY_TYPE_BASE_ID or DISPLAY_TYPE_REFRESH is selected, automatically set the correct measurement mode.
  - If measuring the colorimeter correction testchart, automatically ensure a suitable measurement mode for colorimeters (if they support more than refresh and non-refresh measurement modes).
  - Do not use spline interpolation for curve plots.
  - Updated french translation, thanks to Loïc Guégant.
  - Renamed calibration quality to calibration speed.
  - Set calibration speed for all presets to medium.
  - Standalone testchart editor: Parse first non-option argument as file to be opened.
  - Testchart editor: Always generate good optimized points rather than fast.
  - Testchart editor: Use existing file path when saving testchart.
  - Testchart editor: Greatly improved the speed of paste operations when comparatively large data sets are used.
  - Disallow -d and -D as extra arguments for Argyll's `targen` as the testchart editor only supports video RGB.
  - Reset adaptive measurement mode when restoring defaults.
  - Close all profile information windows when hiding the main window instead of just hiding them (don't reopen them when the main window is shown again).
  - Curve viewer: Use float formatting for input RGB display.
  - Only skip legacy serial ports if no instrument detected.
  - Also specify Argyll `dispcal`/`dispread` -y parameter for spectrometers.
  - Use Rec. 709 whitepoint chromaticity coordinates for “Video” preset.
  - Changed profile installation error message for virtual display devices.
  - Make it clearer which calibration is used when doing a “Profile only”: When a calibration file is going to be used, change the message from the warning “The current calibration curves will be used” to the informational “The calibration file `<x>` will be used” with the usual options to embed/not embed/reset video card gamma table.
  - Allow the use of calibration curves when profiling a web display.
  - When creating a colorimeter correction from profile(s), get the instrument name from the embedded TI3 if the data source is not EDID.
  - Do not specify (superfluous and thus ignored) patch window positioning arguments for `dispcal`/`dispread` when using a virtual display.
  - 3D LUT: Removed black point compensation option (no longer easily possible because it now uses Argyll's `collink` internally. You can still have the effect of BPC by creating a display profile with BPC enabled and using it as destination profile during 3D LUT creation).
  - Always copy/move temporary files to the save location if not a dry run, also in case of an error. If copy/move fails, keep them in the temporary directory and inform the user.
  - Disable black point compensation for the “Prepress” preset (there are three presets without bpc - “madVR”, “Prepress” and “Softproof”) and use L* as calibration tone curve.

  #### Fixed in this release:

  - Show black point correction choice also when switching from refresh to any other measurement mode instead of only when switching from refresh to LCD measurement mode or vice versa.
  - Corrected averaged RGB transfer function display.
  - Adaptive measurement mode could not be disabled (regression of r1152 where adaptive measurement mode was made default in dispcalGUI).
  - Work-around a very rare problem where a (bogus) display size of 0x0 mm is returned.
  - Check if the configured colorimeter correction exists before adding it to the list.
  - Update colorimeter correction and testchart lists after deleting settings files.
  - Don't carry over colprof arguments from testchart file (fixes occasional wrong display model and manufacturer in profiles).
  - Average, RMS and maximum delta E metadata was not added to profiles if equal to or greater than 10.
  - Unhandled exception when 3D LUT window was opened and there was no profile selected under settings and also no display profile set.
  - Unhandled exception if colorimeter correction does not exist.
  - Standalone curve viewer: Fix loading of .cal file via commandline argument.
  - Don't strip trailing zeros when displaying average gamma in the status bar of the profile information or curve window.
  - Only set adaptive and hires measurement mode when the instrument supports it (fixes measurement mode switching to non-adaptive if toggling betweeen a colorimeter and a spectrometer).
  - Mac OS X with Argyll CMS 1.5 and newer: Also search library folders for Argyll CMS support files (fixes imported colorimeter corrections not found).
  - Only fall back to private copy of pnp.ids under Mac OS X and Windows.
  - Updated link to Datacolor website download section for the Spyder 2 Windows installers.
  - Transposed bits for EDID red y chromaticity coordinate.
  - Curve viewer / profile info window: Reset tone response curve calculation when toggling LUT checkbox.
  - Correctly react to detected display changes when the actual physical displays didn't change (e.g. when switching Argyll between versions supporting and not supporting the virtual “Web” display).
  - Keypresses or cancel were not recognized during patch reading.
  - Display uniformity measurements: Q or ESC had to be pressed twice to exit.
  - Do not use “install profile” message for non-display profiles.
  - 3D LUT: “apply vcgt” checkbox stayed disabled after switching from a devicelink source profile to a non-devicelink source profile.
  - Update all open windows when switching Argyll versions
  - Do not reset selected colorimeter correction to none when selecting a preset or a settings file.
  - Measurement window position was not correct when switching from web display.
  - Show an error message when choosing a directory as profile save path where no subdirectories can be created.
  - Python 2.7 compatibility: Mask u16Fixed16Number (fixes profile information not working for profiles with negative XYZ or chromaticity values when using Python 2.7).
  - wxPython 2.9 compatibility: Do not specify number of rows in dynamically growing FlexGridSizer.
  - Linux: Use colord's quirk_vendor_name to fix the manufacturer string.
  - Mac OS X 10.6 and up: Clearing and loading calibration needs root privileges in some circumstances.
  - Windows: Correctly escape quotes in arguments (fixes hang when profile name, program path or Argyll path contains a single quote).
  - Windows: Show a meaningful error message when a subprocess can't be started instead of hanging indefinitely.
  - Windows: Ignore WMI errors.
  - Windows: Selecting testcharts saved in the root of a drive under Windows.
  - Windows: Disable broken Windows 2000 support (was broken since 0.8.5.6 when the interactive display adjustment GUI was introduced and is not fixable as Windows 2000 does not implement the required AttachConsole functionality).
  - Windows/Mac OS X: If Argyll profile installation failed, a success message was still shown.
2013-03-03 19:42 (UTC) 1.2.7.0

  ### 1.2.7.0

  #### Fixed in this release:

  - Colorimeter correction creation not working when using Argyll CMS 1.5.0 because of missing newly required fields in CGATS data.
  - Mac OS X: Accidentally swapped “/Users/<Username>/Library/Application Support” and “/Library/Application Support”.
2013-03-01 09:39 (UTC) 1.2.6.6

  ### 1.2.6.6

  #### Added in this release:

  - Argyll CMS 1.5.0 compatibility.
  - Ability to do remote measurements using Argyll CMS 1.4.0 and newer (Firefox is recommended as client). See remote measurements and profiling.
  - Include black level and contrast in profile verification reports (if possible, i.e. if the test chart contains a RGB=0 patch).
  - 3D LUT: Support color space conversion ('spac') profiles.
  - DCI P3 reference profile.
  - Add “Quality” (if applicable) and “License” metadata to profiles.
  - Add colord device ID mapping to profile metadata.
  - Linux: Add screen brightness to profile metadata if profiling a mobile computer's screen (using the org.gnome.SettingsDaemon.Power DBus interface).
  - Additional logging.

  #### Changed in this release:

  - Revised display uniformity test to generate HTML reports.
  - Use a delay of 200 ms for display uniformity measurements.
  - Detect “Calibrate failed with 'User hit Abort Key' (No device error)” Argyll CMS error message and ignore further errors to prevent popping up multiple error dialogs.
  - Reload currently selected calibration after verifying a profile.
  - Add metadata to fast shaper matrix profiles (e.g. gamut volume and coverage).
  - When deleting a settings file, also offer CCSS, CCMX and files starting with the settings file basename in the same directory for deletion.
  - Enable use of absolute values in profile verification reports regardless of testchart.
  - When loading a profile without calibration settings, look for an accompanying colorimeter correction in the same directory.
  - When only creating a profile and not calibrating, give a clear choice whether to embed current calibration curves in a profile or not.
  - When using black point compensation, keep the black point compensated TI3 measurement file in addition to the unaltered file.
  - When restoring default settings, don't reset the 3D LUT abstract profile as well as 3D LUT and profile info window positions.
  - Truncate the colorimeter correction description displayed in the dropdown if it's overly long.
  - Only load linear calibration curves into the curve viewer when resetting the video card gamma table.
  - Do not remove spaces from the instrument name when assembling the profile name.
  - Only compress JavaScript in HTML reports if the `report.pack_js` configuration option is set (default 1 = compress).

  #### Fixed in this release:

  - Improved instrument event handling.
  - When measuring the screen using a spectrometer, make sure to repeat the instrument calibration until it is successfully completed or canceled (ColorMunki Design/Photo).
  - When measuring ambient light with a spectrometer, abort after a 30 second timeout if instrument calibration did not complete.
  - Correctly react if the instrument sensor is in the wrong position and prompt the user to set the correct position.
  - Mouse cursor and clicked “Measure” button stayed hidden when aborting a measurement in the display device uniformity test window.
  - Updating the calibration (vcgt) of a profile didn't work if first selecting a `.cal` file, ticking the “Update calibration” checkbox and then switching to the profile.
  - Disable all calibration controls (except the quality slider) when “Update calibration” is ticked.
  - Only enable “Update calibration” checkbox if calibration can actually be updated.
  - Disable the “Create colorimeter correction...” and “Create 3D LUT...” menu items as well as the “LUT” checkbox in the curves and profile information windows if Argyll CMS executables are not found.
  - Update measurement modes when switching Argyll versions.
  - wxPython 2.9 compatibility.
  - Set manufacturer, model, creator and ID in reference profiles (except ClayRGB and sRGB from Argyll).
  - Only switch over to progress dialog after a three second delay (fixes erroneously switching over to progress dialog under Windows when running calibration or display uniformity measurements directly after a canceled testchart measurement).
  - If using a DTP92, only offer refresh measurement mode.
  - Make sure updated profiles also have updated descriptions.
  - Also overwrite .gam.gz and .wrz files if overwriting an existing profile.
  - Mac OS X: Make sure the menus are re-enabled after calibrate & profile.
2013-01-07 19:41 (UTC) 1.1.8.3

  ### 1.1.8.3

  #### Changed in this release:

  - Show display device uniformity measurement window on selected display device if multiple display devices are connected.
  - Hide mouse cursor and clicked button while measuring display device uniformity.

  #### Fixed in this release:

  - Sporadic measurement hang when measuring display device uniformity.
  - Wrong window being shown when calibrating after display device uniformity measurements or vice versa.
2013-01-05 13:32 (UTC) 1.1.7.0

  ### 1.1.7.0

  #### Added in this release:

  - Preliminary Argyll CMS 1.5.0 compatibility.
  - Added facility to measure and report display device uniformity. Known issue: Sometimes measurements hang. Press space to try and continue.
  - 3D LUTs can optionally incorporate abstract (“Look”) profiles.
  - 3D LUTs can be created from Device Link (class “link”) and input (class “scnr”) profiles.
  - 3D LUTs can also be created in SPI3D format.

  #### Changed in this release:

  - Updated french translation, thanks to Loïc Guégant.

  #### Fixed in this release:

  - Fedora: Calibration curves were reset to linear when installing a profile and using the Fedora packaged Argyll CMS.
  - Linux, Mac OS X, Windows (Administrator): Colorimeter corrections imported from i1 Profiler and ColorMunki Display software were not listed in the dropdown menu.
2012-11-05 20:32 (UTC) 1.1.2.9

  ### 1.1.2.9

  #### Changed in this release:

  - Simplified Spyder 2 enabling instructions.

  #### Fixed in this release:

  - Broken Unicode support (unhandled exception) when dealing with colorimeter correction descriptions containing 8-Bit characters.
  - Check if xicclu is found before attempting to use it for the profile information window (gets rid of bogus “'NoneType' object has no attribute 'encode'” message).
  - Use a default generic message when prompting to choose a profile.
2012-10-05 19:04 (UTC) 1.1.2.1

  ### 1.1.2.1

  #### Changed in this release:

  - Disable source profile selector in advanced gamut mapping options if not atleast one of perceptual or saturation checkboxes is selected.
  - Only show a warning if an incompatible colorimeter correction is explicitly selected via the filebrowser.
  - Show a less cryptic error message if an invalid file is selected when importing colorimeter corrections from other display profiling software.

  #### Fixed in this release:

  - Whitepoint color temperature is an integer, not a float. This fixes calibration settings being detected as changed when they actually haven't.
  - Worked around a bug in wxPython where controls in a hidden window react to focus events. This fixes the sporadic hang after calibration measurements during a “Calibrate & profile” run.
  - Linux, Mac OS X: Unhandled exception when trying to import colorimeter corrections from other display profiling software and selecting a file with '.txt' extension.
2012-09-15 15:38 (UTC) 1.1

  ### 1.1

  #### Added in this release:

  - Additional profile name placeholder %ds for the display device serial from EDID if applicable (may be empty or bogus).
  - Windows: Additional profile name placeholders %dnw (DeviceString) and %dnws (shortened DeviceString, it may be the same as %dnw if shortening isn't possible). The former is equivalent to what's shown in the display device dropdown. The DeviceString is often more verbose as the sometimes very generic EDID device name (placeholder %dn).

  #### Changed in this release:

  - Updated spanish translation (thanks to Roberto Quintero).

  #### Fixed in this release:

  - Show an error message if a colorimeter correction cannot be used with the selected instrument.
  - Show an error message when trying to import colorimeter corrections from an unsupported filetype.
2012-08-01 10:13 (UTC) 1.0.9.0

  ### 1.0.9.0

  #### Changed in this release:

  - Use the original file basename for colorimeter corrections copied over to the storage directory (previously, if a colorimeter correction was copied, it inherited the same basename as the rest of the measurement/profile/calibration files, thus making it a bit cumbersome to determine which colorimeter correction was originally the source, especially in profile verification reports which only showed the filename and not the description from the file contents).
  - Show colorimeter correction file basename in addition to the description if they are different.
  - Linux: Fall back to gcm-import if colord profile installation fails.

  #### Fixed in this release:

  - When switching to L*/Rec. 709/SMPTE or sRGB and then loading settings with a gamma value, the gamma entry field was not shown.
  - Report on calibrated/uncalibrated display and calibration verification did not work if using a colorimeter correction (regression of changeset #1020).
  - Do not freeze if loading a settings file which had an accompanying colorimeter correction that was since deleted.
  - Windows 2000: Don't fail to launch.
2012-06-28 22:05 (UTC) 1.0.7.7

  ### 1.0.7.7

  This is a bug-fix release for version 1.0.7.6.

  #### Fixed in this release:

  - Unhandled exception in gamut view calculation after profile creation if using french localization.
2012-06-23 00:25 (UTC) 1.0.7.6

  ### 1.0.7.6

  #### Added in this release:

  - Option to auto-select a suitable colorimeter correction if available locally.
  - Ability to choose between L*a*b*, XYZ and xyY in profile verification reports.

  #### Changed in this release:

  - Reset default black point correction from automatic to off.
  - If a profile contains no 'vcgt' tag, assume linear calibration.
  - When creating a colorimeter correction, remember the last selected reference and colorimeter measurement file separately.
  - When creating a colorimeter correction, automatically only use white, red, green and blue patches (at 100% device value each) from measurement files, regardless if they contain more patches. This allows re-using of measurement files with different patch counts (as long as they contain those four combinations) that have been created as by-product of other operations, e.g. during profiling. Note that measurements still need to be done under identical conditions and within reasonable timeframe (ideally less than a few minutes apart) to minimize effects of display and instrument drift when creating colorimeter corrections from them.
  - When measuring the colorimeter correction testchart, automatically set the resulting measurement as last selected reference or colorimeter file depending on whether it contains spectral data or not.
  - When restoring the current calibration after measuring the colorimeter correction testchart, do it silently (don't show a message window).
  - Filter colorimeter corrections by selected instrument.
  - Show colorimeter correction description in the dropdown instead of the filename. Show the filename and path on mouse hover.
  - ColorHug: Only enable colorimeter corrections for “Factory” and “Raw” measurement modes.
  - ColorHug: Automatically set “Factory” measurement mode when measuring the colorimeter correction testchart and measurement mode is not yet “Factory” or “Raw”. Restore previous measurement mode afterwards.
  - Linux: Enable ColorHug support by default.
  - Linux: colord wrapper now uses PyGObject instead of ctypes.
  - Updated french translation, thanks to Loïc Guégant.

  #### Fixed in this release:

  - When creating a 3D LUT, don't fail if the target profile contains no 'vcgt' tag and the preference is “Apply calibration” (which is the default) irrespective of checkbox state.
  - Use colorimeter correction (if applicable) from settings stored in calibration files and profiles when loading them.
  - When creating a colorimeter correction, the display name in the description is now taken from the measurement file if available.
  - When creating a colorimeter correction, automatically order the measurements exactly the same by device (RGB) triplets.
  - Hide any profile information window(s) when the main window is hidden and restore them when it is shown again.
  - Correct ID on profile created from EDID after adding gamut coverage/volume metadata.
  - Measurement modes other than “LCD (generic)” and “Refresh (generic)” are now correctly restored from settings embedded in calibration files and profiles.
  - If using the current calibration curves for profiling without calibrating (“Profile only” with “Reset video card gamma table” unchecked), using Argyll CMS 1.4.0, the resulting profile will now contain a 'vcgt' tag with the current calibration like with previous Argyll versions.
  - RGB bars and chromaticity/color temperature readouts when adjusting a whitepoint with blackbody target are now working correctly.
  - Ignore and do not show any explicitly selected Colorimeter Calibration Spectral Sample (CCSS) file for instruments that do not support it.
  - Changing Argyll version/binaries in dispcalGUI with automatic instrument detection switched off is working correctly again without the need to restart the program.
  - Show ColorHug-specific measurement modes (please run instrument detection once again to refresh the list if you already used the ColorHug in a previous version of dispcalGUI).
  - Saturation gamut mapping settings are no longer ignored.
  - Trying to view profile information for profiles whose black point X Y Z sum is zero will no longer result in a division by zero error.
  - Black point compensation is no longer attempted if not atleast one black or white patch is found in measurement data.
  - Linux: Don't error out if profile installation with dispwin fails, but profile installation via colord or oyranos-monitor is successful (fixes profile installation when using the distribution-packaged Argyll under Fedora)
  - Linux: colord device key name now correctly adheres to device naming spec for xrandr devices (fixes some profile installation problems).
  - Linux, Windows: Correctly detect in the profile loader if linear calibration is assumed when using Argyll CMS 1.4.0 or newer.
  - Windows: Continuous measurements during interactive display adjustment are now stopped reliably when clicking the “Stop measurements” button or hitting the space key.
2012-04-02 19:24 (UTC) 0.9.9.1

  ### 0.9.9.1

  #### Added in this release:

  - Spyder 4 support if using Argyll CMS >= 1.3.6. To make all measurement modes available, you have to use “Import correction matrices from other display profiling softwares...” from the “Tools” menu.
  - Experimental ColorHug support is enabled through Argyll CMS >= 1.3.6 if the `ENABLE_COLORHUG` environment variable is set, but the ColorHug currently doesn't work reliably across all platforms.
  - Added information about instrument measurement modes to the ReadMe.

  #### Changed in this release:

  - GUI spring-cleaning: Re-arranged some controls and replaced radiobuttons and read-only combo-boxes with choice controls instead. Only the controls related to a selected choice are shown.
  - Default calibration black point correction to automatic.
  - Replaced previous 19-patch colorimeter correction testchart with smaller 4-patch version (just red, green, blue at 100% each and white, as is the default with Argyll CMS 1.3.6).
  - Linux packages: Added Argyll CMS to dependencies. Please note: If you want the latest Argyll features or run into problems, it is recommemded to download the standalone Argyll binaries from argyllcms.com as the distribution repositories often only contain older Argyll CMS releases.

  #### Fixed in this release:

  - Fixed unhandled exception when adding metadata to a profile from EDID that contains an invalid (out of range) gamma value.
  - Fixed slightly off the mark whitepoint in resulting profile when using black point compensation (typical max. error 0.2 ΔE*76). You may want to re-create existing profiles.
  - Do not reset visibility of advanced calibration options when restoring defaults.
  - Store black point compensation setting in profiles.
  - Mac OS X: The application bundle now again contains all required files (no missing files when dragging just the bundle to Mac OS X “Applications” folder).
2012-03-15 14:45 (UTC) 0.9.6.6

  ### 0.9.6.6

  #### Added in this release:

  - Black point compensation option for profiles (default ON). This effectively prevents black crush, but at the expense of accuracy of the resulting profile.
  - Profile information window with 2D gamut plot as well as information pane which shows profile header and tag data in detail (with few exceptions).
  - Ability to create display correction 3D LUTs for use in movie post-processing applications that don't have ICC support. Currently supported are the `.3dl` and `.cube` formats.
  - Write gamut VRML files and calculate coverage and volume percentages against sRGB and Adobe RGB when creating profiles.
  - Add 'chrm' tag (xy chromaticities for each primary) to created profiles. Unlike the values from 'rXYZ', 'gXYZ', 'bXYZ', A2Bx or 'clrt' tags, the 'chrm' data corresponds to the actual measured chromaticities without chromatic adaptation or interpolation. The 'chrm' tag is purely informational.
  - Windows 7 and later: Added an option to let the operating system handle calibration loading when installing a profile (this option requires dispcalGUI to be run as Administrator and is also available in the dispcalGUI installer. If selecting the option there, the dispcalGUI Profile Loader will not be installed to the startup items. A shortcut to the loader is still available in the dispcalGUI folder in the start menu though, to be able to quickly force a reload of calibration).

  #### Changed in this release:

  - Instrument detection now defaults to manual. A click on the icon with the swirling arrows or choosing the corresponding menu item in the “Options” menu detects connected instruments. Automatic instrument detection can be (re-)enabled/disabled there, too.
  - The dispcalGUI Profile Loader can now be set to not show error messages again (errors will still be logged).
  - Tone response curves are now plotted as L* → RGB by default and are also calculated for LUT profiles (profiles with both LUT and matrix TRC tags allow on-the-fly switching between them). In addition, the transfer function is shown if it can be estimated.
  - Windows: Allow enabling/disabling of calibration loading on login when installing a profile (to be able to change this option when Windows 7 or later is set up to handle calibration loading, either dispcalGUI needs to be run as administrator or in the Windows color management control panel “Advanced” tab, click on “Change system defaults...” and disable “Use Windows display calibration”).

  #### Fixed in this release:

  - Do not fail to launch due to unhandled exception when parsing CGATS files containing KEYWORD, INDEX, SAMPLE_ID or DATA_FORMAT values in exponential notation.
  - Do not use exponential notation for low (< 0.0001) calibration black level target values.
  - Correctly handle failed instrument calibration (by asking to repeat) and measurement failures which are not misreads or communication failures (and should thus not be retried automatically).
  - Also look at ASCII descriptor blocks when determining the display device name from EDID (fixes display model not being set in profiles for certain Apple displays).
  - Don't loose 'mmod' tag (monitor make and model) when creating a profile from measurement data embedded in an existing profile.
  - Automatically restore calibration after measuring the colorimeter correction testchart.
  - Restore Argyll CMS < 1.3.0 compatibility (broken in 0.8.9.3).
  - Windows Vista, 7 and later: Automatically enable “Use my settings for this device” in Windows' colormanagement settings when installing a profile.
2012-02-11 03:56 (UTC) 0.8.9.3

  ### 0.8.9.3

  #### Fixed in this release:

  - Selecting a smaller default testchart than the recommended one did not work (was reset to the recommended default when starting measurements or re-starting dispcalGUI).
  - Restore previously selected testchart if canceling colorimeter correction measurements.
  - Disable the “Measure” button in the “Create colorimeter correction” dialog if no display or instrument detected/selected.
  - Disable menus while the main window isn't shown (only affects operating systems where the menu is not part of the main window e.g. Mac OS X).
  - Linux: Fixed i1 Display Pro / ColorMunki Display missing from Argyll udev rules (this was actually already fixed in 0.8.5.2, but not mentioned in the changelog).
  - Mac OS X Lion: Removed sporadic password dialog being shown after calibration measurements when running “Calibrate & profile”.
  - Mac OS X Lion: Fixed an issue with profile installation for the current user which only installed the profile for the root user, thus not making it available in system preferences and making e.g. the login screen the only visible place where it was effectively being used.

  #### Changed in this release:

  - Allow the selection of LCD or CRT measurement modes for spectrometers too (determines the available controls during interactive display adjustment).

  #### Added in this release:

  - GUI for interactive display adjustment.
  - Add 'mmod' tag (monitor make and model, an Apple-specific private tag) to created profiles (ensures the profiles still show up in Mac OS X system preferences if “Show profiles for this display only” is ticked).
2012-01-24 18:40 (UTC) 0.8.5.2

  ### 0.8.5.2

  #### Fixed in this release:

  - Added missing numbers to “delta E too high” message when trying to upload a profile with low self-fit accuracy.
  - Decoding of numerical manufacturer ID from EDID when adding metadata to a profile was done in the wrong byte order.
  - Fixed missing terminating NUL character for copyright tag when creating a profile from EDID.
  - Fixed missing underscore in EDID colorimetric metadata key names as per the ICC meta Tag for Monitor Profiles specification.
  - Linux: Display measurements couldn't be started if dispcalGUI was installed via the 0install feed.
  - Mac OS X: The file which maps Plug'n'Play device IDs to manufacturer names was not found when running from the application bundle, resulting in manufacturer entries in profiles always being equivalent to the three-letter PnP ID instead of the full manufacturer name.

  #### Changed in this release:

  - Measurements for colorimeter corrections can now be started directly from the dialog, and the previous testchart is restored afterwards.
  - Add more metadata to generated profiles to allow better automatic selection/ranking on systems that support it and standardized a few previously dispcalGUI-only keys (ICC meta Tag for Monitor Profiles / GCM metadata specification).
  - Use product code as fallback for make/model when creating profiles from EDID.
  - Windows: In case of an Argyll CMS 'config 1 failed' error upon trying to use an instrument, inform the user its driver may not be installed.

  #### Added in this release:

  - Added ability to specify the display technology for created colorimeter corrections.
  - Enabled overriding of default gamut mapping intents for LUT profiles. “Luminance matched appearance” is the default override for perceptual intent, which provides an effect similar to black point compensation.
  - The colorimeter corrections database now has a public web interface and API.
2011-12-08 13:33 (UTC) 0.8.1.9

  ### 0.8.1.9

  #### Fixed in this release:

  - Ignore 'unknown' (not required) fields when verifying CGATS (fixes bug 'invalid testchart' after profiling with spectrometer, introduced in r780).
  - Force a default testchart if the selected one is invalid.
  - Linux (autopackage): Set `PYTHONDONTWRITEBYTECODE=` (empty string) to fix installation on Mandriva 2011.

  #### Changed in this release:

  - Default profile type should be 3x shaper + matrix, not single shaper + matrix.
  - Some of the advanced calibration options (gamma type relative/absolute, ambient adjustment, black point correction and offset) are now hidden by default and can be shown via the corresponding menu item in the options menu.

  #### Added in this release:

  - Option to share profiles via the openSUSE ICC Profile Taxi service.
  - Option to create profiles from extended display identification data (EDID).
  - Linux (GNOME 3): colord compatibility (query current profile, install & set profile).
2011-10-06 21:44 (UTC) 0.7.8.9

  ### 0.7.8.9

  #### Fixed in this release:

  - Additional commandline arguments were ignored when doing profile verification measurements.
  - Windows: If the startup folder in the start menu was deliberately deleted, the profile loader shortcut wasn't created when installing a profile.
  - Windows: Profile loader correctly verifies if the calibration was sucessfully loaded.

  #### Changed in this release:

  - Skip legacy serial ports by default when detecting instruments (serial instruments like the DTP92 or Spectrolino will no longer be selectable unless you manually set `skip_legacy_serial_ports = 0` in `dispcalGUI.ini` or use a serial to USB adapter).
  - Windows: The profile loader shortcut in the startup folder inside the start menu is now created at installation time (and removed when uninstalling).
  - When checking for program updates, show the changelog for the new version if an update is available.
  - Confirm enabling of debugging output.

  #### Added in this release:

  - Support for Argyll CMS 1.3.4 features: i1 Display Pro and Colormunki Display, Colorimeter Calibration Spectral Sample (.ccss) files.
  - Ability to import colorimeter corrections from other display profiling softwares. Currently iColor Display, i1 Profiler and ColorMunki Display are supported.
  - Ability to create correction matrices and Calibration Spectral Sample files, with the option to share them via an online database.
  - Option to automatically check for program updates on startup.
  - Added information how to fix instrument not working correctly/constantly disconnecting under Linux due to a conflict with libmtp (thanks to Pascal Obry who notified me of the issue back in May 2011).
2011-08-05 01:06 (UTC) 0.7.3.7

  ### 0.7.3.7

  #### Fixed in this release:

  - Linux: Fixed multi-display support when not using separate X screens.
  - Mac OS X: Fixed not being able to run under a standard user account, and Mac OS X 10.7 compatibility.
  - Mac OS X 10.4.x: Fixed functionality requiring elevated privileges, e.g. installing profiles system wide or enabling the Spyder 2 using Argyll 1.1.x (regression of a change introduced in r706 / 0.7.0.7)
  - Windows: Fixed several problems with special characters in paths which are not representable through the file system encoding.
  - Windows: Worked around OS localtime() bug. If the system's clock was set to a date far into the future, dispcalGUI failed to launch on subsequent runs because of the logfile's timestamp which could not be processed by localtime().
  - Windows Vista/7: Querying the user display profile resulted in a “not found” error if the checkbox “Use my settings for this device” was never ticked in Windows' color management control panel, failing the fallback of querying the system display profile in case of no user display profile.

  #### Changed in this release:

  - All presets now use curves + matrix as profile type (for better overall application compatibility).
  - Better feedback when trying to open broken/invalid files (display an error dialog instead of just logging the error).
  - Icons in the task switcher on Windows Vista/7 (and presumably Linux) should now be crisp and not pixelated.
2011-06-02 21:45 (UTC) 0.7.0.7

  ### 0.7.0.7

  #### Fixed in this release:

  - wxPython 2.8.12 compatibility.
  - Linux: Preserve environment when installing a profile system-wide so $DISPLAY is available for dispwin.
  - Linux (Source): Changed highest supported Python version to “lower than 3.0” because openSUSE Build Service would choke on “lower than or equal to 2.7” when building for Ubuntu 11.04.
  - Linux (Source): Fixed setup.py bdist_deb as far as possible (see notes under installing from source, additional setup commands, bdist_deb)
  - Windows: Fixed error when the display profile cannot be determined (e.g. when running remotely).
2011-04-20 21:08 (UTC) 0.7.0.0

  ### 0.7.0.0

  #### Fixed in this release:

  - Updating profile verification reports created in versions prior to revision 672 should not strip calibration and gray balance information anymore (regression of a change in r672).
  - If the Spyder 2 was enabled using Argyll CMS 1.2 or newer, this should now be reflected correctly in the “Tools” menu by a checkmark next to the “Enable Spyder 2” menu item.
  - Linux (Autopackage, DEB and RPM installs) and source: Fixed missing application icons in sizes other than 16x16 and 32x32 if the source archive was created with setup.py under Mac OS X or Windows (regression of a change in r501).
  - Linux/Windows: The location of the Argyll binaries was not stored in the system-wide configuration, which could prevent the profile loader from finding the Argyll binaries if they were not on the PATH environment variable and a profile was installed system-wide.
  - Windows: Fixed program termination if EnumDisplayDevices fails (e.g. when running remotely).
  - Windows: Fixed program termination if a display device has no driver entry in the registry (the very generic Windows error message is misleading in that case: It pretends a file was not found).
  - Windows XP: Correctly enumerate display device names and EDID.

  #### Changed in this release:

  - When doing verification measurements of a (non-Argyll) profile containing a chromatic adaptation 'chad' tag, dispcalGUI now tries to use the same chromatic adaptation transform to calculate adapted values from the measurements instead of using a hardcoded Bradford transform.
  - The default delta E formula for “RGB + gray balance” evaluation is now DE 2000.
  - The delta E formula is now locked for the Fogra MediaWedge and IDEAlliance Control Strip evaluation criteria.
  - The “Update calibration” and “Update profile” checkboxes were combined into one. This removes the ambiguity about what “Update profile” functionality actually was: Only updating the calibration inside the profile. Both updating stand-alone calibration '.cal' files and calibrations embedded in profiles are now handled with the single “Update calibration” checkbox. The slightly different workflow of only updating the calibration, and then creating an actual new profile on top of it in one go, is still possible by explicitly loading a calibration '.cal' file under “Settings”.
  - Made the GUI a bit nicer towards low screen resolutions by moving more controls into the scrollable area and also removing the graphical banner and allowing horizontal scrollbars if things get really cramped.
  - Windows Vista/7 and later: To be able to install a profile system-wide, you now need to run dispcalGUI explicitly as administrator (right-click the dispcalGUI icon, then select “Run as administrator”) to show the appropriate controls in the profile installation dialog.

  #### Added in this release:

  - Documentation: Updated the information for Photoshop's “The monitor profile […] appears to be defective” message under Known issues and solutions.
  - Documentation: Added Windows XP multiple displays and profiles under Known issues and solutions.
2011-01-24 03:56 (UTC) 0.6.7.7

  ### 0.6.7.7

  #### Fixed in this release:

  - Fixed measurements hanging at the start if using the black background option.
  - wxPython 2.9 compatibility.
  - Windows: Potential COM error caused by obsolete code.
  - Windows Vista/7: Potential WMI errors when trying to read a display's EDID are now suppressed (the EDID can not be read on systems where WMI has errors, which may prevent more accurate display descriptions, but will not impede functionality otherwise).

  #### Added in this release:

  - Profiles can now be dragged and dropped onto the curve viewer.
  - When using the profile verification feature, it is now possible to first select a simulation profile before choosing a testchart.
2010-11-05 03:12 (UTC) 0.6.6.7

  ### 0.6.6.7

  #### Fixed in this release:

  - Re-enabled warning message from the profile loader if the calibration in the video card does not match the requested calibration after loading.
  - Fixed “Show curves” checkbox in the profile installation dialog not doing anything if the curve viewer was not shown before (regression of a change in version 0.6.2.2).
  - Fixed a small visual glitch where the message “Calibration complete” was not cleared from the progress window after instrument calibration.
  - Fixed possibility of unprintable characters from EDID strings (e.g. display name) causing errors.
  - Fixed Argyll CMS diagnostic output not working for dispwin when using Argyll CMS 1.3.1
  - Linux: Fixed Autopackage install not working with Python 2.7

  #### Added in this release:

  - Linux: Added a “Load profile and calibration on login” checkbox to the profile installation dialog. Normally, you want to keep this checked, so that dispcalGUI's profile loader can setup the configured display(s). But if you use another solution for loading profiles, like Oyranos with the CompICC plugin, you should uncheck it, so that display profiles are solely handled by CompICC.
  - Mac OS X: Like on the other platforms, EDID is now used if available.
2010-10-24 04:36 (UTC) 0.6.5.3

  ### 0.6.5.3

  #### Fixed in this release:

  - Fixed a bug where the wrong correction matrix setting was stored in a profile or calibration file when changing the correction matrix, and creating a profile with a previous settings file selected which used a different correction matrix. Note this didn't affect measurements when creating the new profile or calibration file, but when loading it in dispcalGUI, the correction matrix used for the previously selected settings file was set instead of the one actually used when creating the new file.
  - Fixed missing XYZ values for the assumed whitepoint in profile verification reports.
  - Fixed crash when the manufacturer ID from a display's EDID contains invalid data.
  - Honor the selected display when loading calibration curves from a settings file.
  - Linux: Installing profiles under multi-display configurations using separate X screens should now work better when Oyranos is installed (previously, when the profile for the second screen was installed after the profile for the first screen, it would override the first profile in the Oyranos configuration. Profiles can be re-installed with this version of dispcalGUI to fix this).
  - Linux: Profile loader: When Oyranos is installed, but not xcalib, the fallback to dispwin to load the calibration curves was not working.

  #### Changed in this release:

  - Reset additional commandline arguments too when restoring defaults.
  - The profile loader will no longer show an error message when unable to determine a display's current ICC profile, as there may just not be any profile installed for the respective display. Instead, such errors are now silently logged.
  - Improved error messages from the profile loader by adding some information about the affected display for easier troubleshooting of multi-display configurations.
  - Windows: Profile installation: When a system-wide autostart entry for the calibration loader already exists, do not create a per-user entry.
  - Linux: The autopackage can now be installed just for the current user. Note this will not setup instrument access though, as that requires root privileges.

  #### Added in this release:

  - Save the device model and manufacturer description to measurement data (.ti3) files and use that information when creating a profile.
  - Log all output from the profile loader.
  - Ability to just measure a testchart and create a measurement data file (menu “Options”, “Measure testchart”).
  - Approximate gamma for grayscales is shown in profile verification reports.
  - Build system: Added `--skip-postinstall` option.
2010-09-19 17:53 (UTC) 0.6.2.2

  ### 0.6.2.2

  #### Fixed in this release:

  - Trying to verify or view curves of a (non-Argyll) profile with a 'formula' type vcgt tag no longer fails with a 'NameError'.
  - When the measurement window was moved to the leftmost and/or topmost coordinates of the screen, the calculated relative position could become negative and prevent starting measurements.
  - Trying to profile a display which provides an empty model description via EDID no longer fails.
  - Profile name placeholder %im (instrument measurement mode) now inserts the correct string.
  - Profiling did not finish if “Show actual calibration curves from video card gamma table” was checked and the curves window shown.
  - Fixed black point correction rate not being restored correctly when loading settings.
  - Fixed conversion of the color temperature to xy chromaticity coordinates (the input fields in the GUI) which was erroneously being calculated with the formula for daylight even if a blackbody locus was chosen.
  - Fixed assumed whitepoint in profile verification reports erroneously being calculated with the formula for daylight even if a blackbody locus was originally chosen when creating the profile.
  - Fixed profile verification reports not working in Internet Explorer 5.x-6.0 and Opera 7.x.
  - Fixed profile verification reports showing “missing data” for some fields if using the Fogra Media Wedge V3 criteria and the reference file contained both XYZ and Lab data.
  - Mac OS X: A double extension (.icc.icm) is no longer added when creating a profile from an existing one (menu “Options”, “Create profile from measurement data...”).

  #### Changed in this release:

  - When loading settings from calibration (.cal) files, the actual parameters chosen when calibrating are now set instead of stored measured values (e.g. whitepoint, black- and white level. Will only work for .cal files created in this version and up).
  - “Allow skipping of spectrometer self-calibration” (in the “Options” menu) for characterization readings after calibration is now disabled by default to help sensor stability (especially for the ColorMunki).
  - Black point correction rate now uses a floating-point control with the range 0.05...20.0 (consistent with the Argyll CMS dispcal commandline tool) instead of the previous integer control with the range 5...2000.
  - The default evaluation criteria for RGB testcharts in profile verification reports is now RGB only.
  - The default Delta E formula used for results in profile verification reports is now Delta E 2000 (except for standardised criteria like the Fogra Media Wedge V3).
  - Additional statistics in profile verification reports are now hidden by default.
  - Selecting “CMYK” or “RGB” in profile verification reports now actually makes a difference (shows the corresponding device values in the overview).
  - “Evaluate gray balance through calibration only” in profile verification reports is now disabled by default.
  - Windows: Installing a profile system-wide removes an existing user autostart entry for the profile loader to avoid having two entries.
  - Windows: EDID info will be used if available instead of generic device strings ('PnP-Monitor' et al).

  #### Added in this release:

  - Ability to enable Argyll CMS diagnostic (debugging) output for measurements via menu “Options”.
  - Option to choose blackbody whitepoint reference instead of daylight in profile verification reports.
  - Original profile whitepoint is now shown in profile verification reports.
  - Instrument black level and display white level drift compensation options when using Argyll CMS >= 1.3.0
  - Ability to choose a correction matrix for colorimeters when using Argyll CMS >= 1.3.0
  - Allow setting of additional commandline arguments for dispcal, dispread, spotread and colprof via a new menu item in the “Options” menu.
  - IDEAlliance Control Strip 2009 aim values for profile verification with CMYK test charts.
  - Profile verification report shows instrument measurement mode and correction matrix (if any).
  - Menu option to update existing profile verification reports with the current templates.
2010-08-01 03:19 (UTC) 0.5.8.1

  ### 0.5.8.1

  #### Fixed in this release:

  - Argyll CMS 1.2.0 compatibility
2010-07-25 13:19 (UTC) 0.5.8.0

  ### 0.5.8.0

  #### Fixed in this release:

  - The timeout of 10 seconds for the startup of Argyll tools and instrument initialization was too short for some instruments and is now increased to 30 seconds. If the timeout is ever exceeded, dispcalGUI should now also abort automatically and no longer hang.
  - When previewing the calibration upon profile installation, use a linear calibration if no display profile is present when toggling the preview on and off (fixes the curve viewer not updating).
  - Fixed closing the log window not re-enabling the “show log automatically” menuitem.
  - Linux (Autopackage install): Fixed menu entry sometimes disappearing permanently after logging out under GNOME.
  - Linux: Fixed dispcalGUI not working if libX11 or libXrandr do not expose certain functions (e.g. under Mandriva 2009).
  - Linux: Fixed not being able to install a profile using GNOME Color Manager when the profile was not writable.
  - Linux: Fixed not being able to install a profile using Oyranos when the profile was not located in ~/.color/icc/devices/display.
  - Linux/Mac OS X: Saving a log file from the log window now works correctly.
  - Mac OS X: The terminal should no longer lose its focus when the measurement area is shown. This should also make the mouse cursor reappear which is otherwise hidden by dispcal/dispread.
  - Mac OS X 10.6: The current display profile should now be determined correctly (e.g. for the curve viewer) when loading its calibration curves or selecting the “<Current>” settings.
  - Windows (installer): An unused console window is no longer shown when launching dispcalGUI via the installed shortcuts.
  - Windows: Fixed executable not working under Windows 2000.

  #### Changed in this release:

  - Do not pass through the “hit any key to retry” message from Argyll CMS tools to the progress dialog in case of misreads/port communication problems (retries happen automatically, so there is no need and also no possibility for keyboard interaction).
  - Enabling the Spyder 2 is now less cumbersome if the original installation CD is not available (especially on Mac OS X, where the firmware couldn't be found if a recent version of the Spyder 2 software was installed) and should work with the downloadable Spyder 2 software installers (but they need to be run to install the software first because the firmware can't be extracted from the installer binaries directly). Messages are now hopefully more informative to give a better idea of what to do. If the firmware can't be extracted from the Spyder 2 software installer, you are asked to install the software and try again. If that can't be done because of platform incompatibility (Linux), the last choice is to locate the Spyder.lib/CVSpyder.dll file manually (it must be copied from a Mac OS X or Windows system in that case).
  - Linux: Allow installation of profiles using GNOME Color Manager even if XRandR is not working/available.
  - Linux: Installation now checks for existing udev rules/hotplug scripts for instruments and only installs its own rules if none exist yet.
  - Linux/Windows: The profile loader will now show a warning dialog if a profile couldn't be loaded.
  - Linux/Windows: Device model and manufacturer are added to profiles if EDID[10] info is available.

  + Numerous other small fixes and changes.

2010-06-29 19:23 (UTC) 0.4.9.2

  ### 0.4.9.2

  #### Fixed in this release:

  - Spectrometer sensor calibration sometimes accidentally occured when the instrument was still attached to the screen, leading to erroneous subsequent readings.
  - Immediately close a profile after reading to avoid locking it (fixes not being able to delete files from within the GUI).
  - Fixed quirks in “update calibration” and “update profile” operation.
  - The system-wide installation option in the profile install dialog is no longer hidden just because a profile has no embedded calibration curves (vcgt tag).
  - If the calibration curves of the current display profile couldn't be loaded for some reason (broken video card gamma table access, or no profile set), the curve viewer was not yet shown, and then a profile under “Settings” was selected, and then deleted, and then the curve viewer called up, an unhandled exception was raised.
  - Fixed ambient measurement via the “Measure” buttons timing out with the ColorMunki and various error handling issues regardless of instrument which could lead to an un-cancelable, forever looping progress bar.
  - Fixed ambient color temperature measurement via the “Measure” button not updating the kelvin field if selected.
  - Linux (only if the detected filesystem encoding is not UTF-8), Mac OS X and Windows: When installing a profile with “special” characters in the filename (everything not representable as 7-bit ASCII), it is now given an unique name containing the display number and MD5 hash, which fixes a few problems with filename encoding under Linux and Mac OS (under Linux the profile couldn't be successfully installed, under Mac OS X system-wide installation partly broke). This also fixes an issue under Windows where a profile whose name starts with the same first few characters (but has not the same name) as an already existing file in the system profile directory could accidentally overwrite that file, because I had not considered that filenames returned by win32api.GetShortPathName are only unique for the directory where a given file resides—and upon installation, that is the profile storage directory, not the system profile directory.
  - Linux, Mac OS X: When installing a profile, interaction with the curves window works now while the installation dialog is shown.
  - Windows (standalone executable): Fixed ambient measurement via the “Measure” buttons reproducably hanging (regardless of instrument) if the MS Visual C++ 2008 Redistributable Package (x86) was not installed.

  #### Added in this release:

  - Linux: Oyranos support. If it is available, profiles are imported to the Oyranos database using `oyranos-monitor` upon installation, and an appropriate autostart entry is created to load calibration curves and setup the X _ICC_PROFILE atoms on login.
  - Linux: Rudimentary support for GNOME Color Manager. If it is available and XRandR is working, profiles are imported to GCM upon installation. Any calibration loaders created previously by dispcalGUI will be removed (except the possible `oyranos-monitor` entry). You then still have to manually assign the profile to a display in the GCM preferences by selecting it and then choosing the profile from the dropdown menu (in the future, this process will be made obsolete by using GCM library functions). Loading of calibration curves and setting up the X _ICC_PROFILE atom and XRandR output properties is then handled by GCM.
  - Menu option to automatically show the log window after certain operations (measurements, profile creation).

  #### Changed in this release:

  - The terminal window is now only shown when required (e.g. keyboard interaction during interactive display adjustment). Also, the terminal used is no longer an external application, but a minimal emulator that just passes keyboard input to the Argyll CMS tools.
  - All measurements which do not require keyboard interaction with Argyll CMS tools now show a progress dialog with the option to cancel the measurements. All output that was previously visible through the terminal is still available via the log window (“Tools” menu) and -file.
  - Always load calibration curves before installing a profile, even if the profile has no vcgt tag (resets calibration to linear).
  - Automatically scroll to bottom when messages are added to the log window.
  - Store calibration and profiling settings in extra sections inside the TI3 file instead of the profile copyright tag. Use “generic” copyright information (“Created with dispcalGUI `<version>` and Argyll CMS `<version>`”), overridable by adding a line `copyright = My copyright information` in dispcalGUI's configuration file.
  - Made sure that only 7-bit ASCII gets written to a profile's copyright, ASCII description, and ASCII device model description. ICC v2 Unicode and Mac ScriptCode descriptions are now also written by default.
  - Presets default to high profile quality.
  - Remember visible state of curves, log window and testchart editor.
  - Updated french translation (thanks).
  - Linux: Unattended calibration & profiling no longer depends on xautomation.
  - Linux: EDID[10] is now used (if available) when generating descriptive identifiers for displays.
  - Linux: When determining a display's associated profile, check XrandR _ICC_PROFILE output properties first if available.
  - Linux: The option to install a profile system-wide is not offered if using GNOME Color Manager to install profiles (GCM has its own way to set profiles as system default).
  - Linux (only when GCM is not installed or XRandR is not working), Mac OS X, Windows: Installing a profile system-wide now also sets it as default for the current user.
  - Windows Vista and later: The option to install a profile system-wide is no longer offered if using Argyll CMS <= 1.1.1 (system scope in Argyll releases up to 1.1.1 acts like user scope on those systems).

  + Numerous other small fixes and changes. There is now also a mailing list for discussion and support as well as announcements (see at the top of this document).

2010-05-07 22:36 (UTC) 0.3.9.9

  ### 0.3.9.9

  #### Fixed in this release:

  - Fixed unreliable (hanging occasionally) profile install when using system scope under Linux and Mac OS X (regression of a change in SVN r391 / 0.3.9.3).
  - Fixed ICC profile truncation if actual tag data is not in the same order as the tag table (regression of a change in SVN r274 / 0.3.0.7. Argyll profiles were not affected).
  - Fixed potential invalid profile name being generated if some unicode characters can't be conveyed in the file system encoding (Windows, Linux).
  - Fixed possible backslash in profile name due to wrong escaping when replacing invalid characters.
  - Fixed support for codepages 65000 (UTF-7) and 65001 (UTF-8) in the main application under Windows. This is actually a fix for shortcomings of Python.
2010-05-03 18:45 (UTC) 0.3.9.3

  ### 0.3.9.3

  #### Added in this release:

  - Show percentage and amount of tone values per channel (+ grayscales) for calibration curves in the curve viewer and profile verification reports.
  - Profile verification: Enabled gray balance evaluation for all RGB charts containing grayscales (R=G=B). Added option to verify graybalance through calibration only (sets the target L* of each grayscale patch to the measured L* and target a*=b*=0).
  - Added documentation for the interactive display adjustment part of calibration.
  - Added further documentation of the profile verification feature with detailed information about underlying technical aspects.

  #### Fixed in this release:

  - Fixed an unicode error after creating a profile verification report in a path containing unicode characters and a few other unrelated (potential) unicode errors.
  - Fixed potential unhandled exception if a JSON language file is malformed.
  - Fixed unhandled exception (local variable referenced before assignment) if trying to view calibration curves of an output with no video card gamma table access.
  - Fixed rare unhandled exception (local variable referenced before assignment) if logfile couldn't be renamed or removed during rollover.
  - Fail more gracefully (omit traceback from error message) if temp directory couldn't be created.
  - Fixed handling of XDG_CONFIG_DIRS and the system-wide autostart directory if the preferred configuration directory does not exist under Linux when installing a profile in local system scope, which prevented the system-wide autostart entry to be created.
  - Correctly determine system display profile under Windows Vista and 7 if no user profile is set. Fall back to sRGB if no display profile is set.

  #### Changed in this release:

  - Changed default gamma from 2.4 to 2.2 in an attempt to increase the amount of available gamma table tone values after calibration for LCD screens, which often have a native response that is closer to a gamma of 2.2 than 2.4.
  - Changed default profile type to single curve + matrix.
  - Profile verification: Only evaluate grayscales (R=G=B) if their luminance is atleast 1% of the white luminance. Also evaluate combined Δa and Δb range.
  - Moved instrument feature details to separate JSON configuration file.
  - Made compatible with wxPython 2.8.6.0.
2010-03-31 15:24 (UTC) 0.3.8.0

  ### 0.3.8.0

  #### Added in this release:

  - “Very large” testchart with 912 patches.
  - Profile verification: Support (non-Argyll) profiles which use chromatic adaption.

  #### Fixed in this release:

  - Improved error message when Argyll binaries are not found (only files not found are now shown, together with alternatives). Automatically fall back to xicclu if icclu is not found (eg. Ubuntu's Argyll 1.0.3 package doesn't contain icclu).
  - Fixed 'invalid syntax' error when running under Python 2.5.
  - Profile verification report: Fixed a parsing error when reference or measurement data contained numbers in exponential notation.
  - Linux: Unhandled exception if DISPLAY environment variable is in the format `[host]:displaynumber` instead of `[host]:displaynumber.screennumber` (eg. `:0` instead of `:0.0`).
  - Mac OS X: Fixed values entered in combo boxes not updating the configuration correctly under some circumstances.

  #### Changed in this release:

  - Profile verification: Lookup device values relative colorimetrically and adapt the measured values to D50 before comparison (using Bradford matrix), so that the measured whitepoint corresponds to L*a*b* 100 0 0. Please note that verification results obtained with reference files measured in earlier versions of dispcalGUI should not be compared to those obtained via this new approach if the display whitepoint is not D50, as the results are likely to be different as an effect of the relative lookup and the chromatic adaption.
  - Profile verification: Improved support for non-Argyll CGATS text files. Handling is as follows:
    - If the file contains RGB_R RGB_G RGB_B fields, it is handled like a Argyll *.ti1 (testchart) file—any XYZ or Lab data is ignored and the RGB numbers are sent to the display and measured. Afterwards, the measured values are compared to the expected values, which are obtained by sending the RGB numbers through the profile. If RGB values above 100 are found, a range of 0-255 is assumed. Otherwise, a range of 0-100 (like Argyll *.ti1) is assumed.
    - If the file doesn't contain RGB_R RGB_G RGB_B fields, but XYZ_X XYZ_Y XYZ_Z or LAB_L LAB_A LAB_B, it is handled like a Argyll measurement data (*.ti3) file—the values are used to lookup corresponding RGB numbers through the profile and these are then sent to the display and measured. Afterwards, the measured values are compared to the original XYZ or Lab values.
  - Profile verification report: Show measured whitepoint and assumed target color temperature (based on closest daylight temperature), and use them to calculate the Delta E for the whitepoint. A few performance improvements when processing large datasets with several hundred or thousand measurements.
  - GUI and ReadMe: Changed all occurences of the term “LUT curves” to “calibration curves” and also changed all occurences of the term “video LUT” to “video card gamma table” to better distinguish from “LUT profile”. Also renamed the “LUT viewer” to curve viewer as a more accurate description of its functionality.
2010-03-17 18:50 (UTC) 0.3.6.4

  ### 0.3.6.4

  #### Added in this release:

  - Profile verification: CGATS-compatible text files (*.txt) containing measurement data can now be selected in addition to Argyll testchart (*.ti1) and measurement data (*.ti3) files.
  - Profile verification report: Depending on the chart used, you can now choose among different evaluation criteria from within the report. Also added Fogra Media Wedge V3 tolerance values for CMYK testcharts.

  #### Fixed in this release:

  - Profile verification: Error 'Unknown color representation Lab' when trying to verify a L*a*b* LUT profile.
  - Profile verification: Wrong XYZ scaling when reading from *.ti3 files containing XYZ, but no L*a*b* values.
  - Profile verification: When measuring a display other than the first one, the calibration curves were erroneously still loaded to the 1st display.

  #### Changed in this release:

  - Profile verification report: Show nominal and actual measured values as L*a*b* instead of XYZ. Reduced visible decimals in report to increase readability.
  - Split the cramped “Extra” menu into “Options” and “Tools”.
2010-03-13 06:31 (UTC) 0.3.6.2

  ### 0.3.6.2

  #### Added in this release:

  - Profile verification by measurements. Argyll testchart (*.ti1) and measurement data (*.ti3) files can be measured.

  #### Fixed in this release:

  - Testchart editor: Do not automatically select a saved testchart (regression of a change in 0.3.3.5). Do not show empty rows when creating a testchart using an algorythm that does not create the expected number of rows.
  - Bumped wxPython version check to 2.8.8.0 so a proper error message is displayed if wxPython is too old.
  - Linux: When using TwinView or Xinerama, the size of the measurement window was sometimes not correct.
  - Linux: Failure in get_argyll_version if Argyll utilities have alternate names (eg. argyll-targen instead of targen), which could prevent being able to open the testchart editor (regression of a change in 0.3.3.5).
  - Mac OS X 10.4: Fall back to ColorSyncScripting if Image Events does not return a display profile.

  #### Changed in this release:

  - Linux: Info window no longer stays always on top.
  - Linux: When getting the current profile for a display, also look at the _ICC_DEVICE_PROFILE atom (see draft ICC Profiles in X Specification 0.4).
2010-03-02 20:12 (UTC) 0.3.3.6

  ### 0.3.3.6

  #### Fixed in this release:

  - Linux/Mac OS X: 'tcgetattr failed' when trying to calibrate or profile.

  #### Changed in this release:

  - Linux: Updated udev rules.
2010-03-01 06:27 (UTC) 0.3.3.5

  ### 0.3.3.5

  #### Added in this release:

  - Capability to set whitepoint or ambient light level for viewing condition adjustment by measuring ambient light.
  - Profile name %tpa placeholder (test patch amount).
  - Documentation for ambient light level viewing conditions adjustment, advanced profiling options (gamut mapping) and testchart editor in the ReadMe. Also a few additions to the existing whitepoint/white level and tone curve documentation (mostly taken from the Argyll CMS documentation).
  - Two entries to the known issues & solutions section in the ReadMe (swapped colors and Photoshop “Monitor profile appears to be defective”).

  #### Changed in this release:

  - New improved testcharts and presets, with lower patch counts: 12 patches default for gamma+matrix profiles, 48 patches default for curves+matrix profiles (former chart had 91 patches), 124 patches default for LUT profiles which should actually be usable this time around when coupled with a profile quality setting of “high”, unlike its predecessor with 127 patches which yielded mediocre results at best (but for increased accuracy, the new 238-patch “extended” testchart is recommended). 396 and 2386-patch charts (the new “large” and “massive” quantity) are also included.
  - Default to high profile quality (and force for gamma+matrix profiles, as there is no processing penalty like for curves+matrix or LUT profiles).
  - Removed limit for remembered settings files.
  - When calibration or profiling measurements fail, first show the main application window, then the error message (small dialog boxes are sometimes hard to spot on big screens if the application context is missing).
  - Moved profile quality, type and advanced settings above testchart selector (this order is more logical, as profile quality and type influences testchart selection).
  - Testchart editor: Default to adaption of 10% for testchart creation using optimized farthest point sampling (OFPS). Support both device and L*a*b* diagnostic VRML files when creating testcharts using Argyll >= 1.1.0. No longer calculate the amount of white/gray/single color patches or multidimensional cube steps if info is missing in testchart file (calculations take way too long for little added benefit).
  - Cleaned up the known issues & solutions section in the ReadMe.

  #### Fixed in this release:

  - Wrong value for adaption settings in testchart editor being stored.
  - Linux (cosmetic): Incorrect special characters in console window when using non-english locale under certain configurations (regression of a change introduced in 0.3.0.7).
  - Non-critical: File information in Argyll CGATS TI1 to TI3 conversion.
  - Testchart editor: Do not allow overwriting of predefined testcharts when saving. Correctly remember last used filename when “saving as...”.
  - Log window: Correctly remember last used filename when saving.
  - Typo in the ReadMe (the second “Report on calibrated display device” entry under “Menu commands” should have been “Report on uncalibrated display device”).
2010-02-17 15:53 (UTC) 0.3.1.0

  ### 0.3.1.0

  #### Fixed in this release:

  - Running “Calibrate & profile” several times in succession no longer fails on the 2nd and subsequent runs.
  - Linux: Missing wxPython version check for the measurement window subprocess.
2010-02-15 17:27 (UTC) 0.3.0.9

  ### 0.3.0.9

  #### Added in this release:

  - Test chart editor: Support for Argyll 1.1.0 perceptual space-filling quasi-random test patch distribution.
2010-02-13 16:36 (UTC) 0.3.0.8

  ### 0.3.0.8

  #### Fixed in this release:

  - #2951168 Windows: Critical bug with win32 API calls to get the display name returning 8-bit characters where only ASCII was expected.
2010-02-12 20:13 (UTC) 0.3.0.7

  ### 0.3.0.7

  #### Added in this release:

  - Support for Argyll >= 1.1.0 adaptive emissive measurement mode with the i1 Pro spectrometer.
  - All of Argyll's profile types are now available (XYZ LUT on Windows only if using Argyll >= 1.1.0).
  - Support for “very low” calibration quality.
  - Optionally create a fast matrix/shaper profile when just calibrating.
  - “Reset video card gamma table” checkbox in the dialog shown when just profiling.
  - Information how to install Argyll >= 1.1.0 USB drivers on Windows Vista/7 64-bit to the “known issues and solutions” section in the ReadMe.
  - ReadMe, license, bug tracker and support forum can now be accessed from the “Help” menu.
  - “Check for update...” in the help menu (launches a web browser and displays the dispcalGUI homepage if a new version is found).
  - Curve viewer: Capability to show the actual curves from the video card.
  - Curve viewer: Capability to show a matrix profile's rTRC/gTRC/bTRC curves.

  #### Changed in this release:

  - When restoring defaults, selected display/instrument/measurement mode, language and profile name are retained.
  - The display/instrument selector is only enabled if more than one device detected respectively.
  - Changed i1 Pro highres measurement mode from implicit to user choice.
  - Gamut mapping: When selecting a source profile, pre-select a source viewing condition based on profile class (monitor or printer).
  - Updated defaults and presets to Argyll 1.1.0 values (i.e. black output offset).
  - Short display name placeholder (%dns) for profile name should not yield single numbers or model name without model number any more (or atleast less likely).
  - Log messages from most informational and all error dialogs.
  - Show file paths in most dialogs involving file processing.
  - Documentation in the ReadMe has been updated and is now more or less complete for the main application (testchart editor docs are still to be done). Setup instructions have also been streamlined.
  - Moved information how to fix video card gamma table access under Linux/X11 to the “known issues and solutions” section in the ReadMe.
  - Linux: Updated udev rules to those provided with Argyll 1.1.0. Removed obsolete permissions and policy files.
  - Linux: In multi-display setups using separate X screens, it should no longer be necessary to launch dispcalGUI on the display you want to measure.
  - Windows: Get names of displays via additional Windows API calls (should yield more descriptive names than “DISPLAY1”, “DISPLAY2” etc.)
  - Windows (cosmetic): Use default command prompt text color, and a darker variant only when doing measurements.
  - dispcalGUI version now corresponds to SVN revision number, split into its digit components. Build system (setup.py) uses SVN to generate version information.

  #### Fixed in this release:

  - Curve viewer: When no display is selected (i.e. when Argyll binaries are not found), it will now try to show the vcgt of the 1st display's profile.
  - Curve viewer: When hiding the viewer and loading different calibration curves, those changes were not reflected when showing the viewer again.
  - Curve viewer: If a profile does not contain a 'vcgt' tag, clear canvas and disable R/G/B checkboxes.
  - Selection of display used for video card gamma table access not working correctly.
  - Loading of calibration upon initial preview in profile installation dialog if profile does not contain dispcalGUI settings.
  - Do not show failure message if user cancels profile installation via the password dialog when installing in system scope.
  - In some cases, values read from the configuration file were not correctly validated (would only show with deliberately altered or broken config file).
  - colprof output is no longer swallowed when creating a matrix profile with Argyll versions <= 1.0.4.
  - Linux: Fall back to ASCII if detected encoding is not UTF-8 to fix profile install issues.
  - Linux/Mac OS X: Enabling the Spyder 2 colorimeter might need elevated privileges.
  - Linux/Mac OS X: When installing a profile in local system scope, the necessary password was not accepted under newer Linux distros and also Mac OS X > 10.4.11
  - Mac OS X (cosmetic): Suppress spurious AppleScript messages.
  - Windows: Get display profile via registry instead of Windows API because the latter does not reflect runtime changes to profile associations (you still need to refresh the curve viewer when changing profile associations outside of dispcalGUI while it is running).

  #### Known issues in this release:

  - Linux: You can't interact with the drop-down menu or the checkboxes in the curve viewer while a profile installation dialog is shown.
2009-07-16
  - Fixed a glitch in the Linux Autopackage installer where it would install even if required libraries were missing.
2009-06-30 0.2.6b3 (SVN r239)
  - fix (Windows): Fixed a critical bug in the Windows codepath which tried to access non-existent paths when certain settings were used.
2009-06-26 0.2.6b2
  - fix: Only look at <major>.<minor> during the Python version check (fixes a critical error on Ubuntu 9.10 Beta, where the Python revision number has an unexpected value).
  - fix: The curve viewer is now also able to plot calibration curves from *.cal files.
  - fix (Linux): If launched on an X display which is not the first display, the measurement window's location no longer determines the display which is used for measurements. This allows non-Xinerama multiscreen configurations to work with dispcalGUI. Note: You need to launch dispcalGUI on the display you want to measure, e.g. ``DISPLAY=:0.1 dispcalGUI``.
  - fix (Linux): Get the profile from the correct display when loading a display's calibration curves into the curve viewer.
  - fix (Linux, cosmetic): Suppress CUPS warnings encountered on some systems when using the curve viewer.
  - fix (Mac OS X): Do not offer 'Network' scope during profile installation if `/Network/Library/ColorSync/Profiles` does not exist.
  - fix (Windows, cosmetic): Made sure the message "Debug: src/helpers.cpp(140): 'CreateActCtx' failed with error 0x0000007b (the filename, directory name, or volume label syntax is incorrect.)" is not shown when launching the standalone Windows executable, by changing the way *.pyd files are bundled (they are now copied to the executable's directory and are no longer part of the executable itself).
  - chg: The curve viewer resets to linear if a display without associated profile is selected.
2009-06-22 0.2.6b
  - fix: calibration preview checkbox in the “install profile” dialog should now correctly toggle between previous and new calibration.
  - fix: profiling failed when creating a profile on top of an existing calibration.
  - fix: correctly decode environment variables (should fix a failure when trying to create a profile and the username contains non-ASCII characters).
  - fix: automatic restoration of defaults before loading settings from a profile or cal file should no longer restore “do not show again” dialogs.
  - fix (Windows): several errors related to character encoding.
  - chg: unattended calibration and profiling: wait 10 seconds instead of 5 after calibration before trying to start profiling measurements (some instruments seem to need longer to initialize than others, e.g. Spyder 2).
  - chg (Python packages and source): instead of requiring wxPython 2.8.x specifically, only ensure a minimal version of 2.8.
  - add: Curve viewer.
2009-06-11 21:33 (UTC)
  - Added Linux Autopackage download.
  - Renamed 55-Argyll.rules to 92-Argyll.rules, so it can work on Debian too.
  - Removed “Creating a standalone executable from source” section from the ReadMe (the topic is still handled under “Installing from source” / “Additional setup.py commands”).
2009-06-07 0.2.5b4
  - fix: “TypeError: coercing to Unicode: need string or buffer, instance found” when calling any of the get*Description() methods of an ICCProfile instance, which caused profile creation from existing profile to fail.
  - fix: (Windows Vista) application exit on launch if autostart directory did not exist.
  - fix: (source, Debian and RPM packages) use the correct wxPython version
  - fix: tab-key traversal of calibration settings controls.
  - fix: automatically scroll into view focused calibration settings controls if scrollbars are shown.
  - fix: properly clean & remove temporary directory.
  - fix: (cosmetic) added some padding to calibration settings right-hand side so scrollbar won't overlap if shown.
  - chg: (cosmetic) enable auto-sizing (fit to contents) for colortemp locus, trc type and profile type selectors.
  - chg: (cosmetic) do not show vendor name in instrument select dropdown (conserve some space).
  - chg: (cosmetic) made the instrument selector a little narrower (needs less space now to display instrument name because the vendor name is stripped) and the measure mode selector a bit wider (to accommodate for projector mode).
  - chg: only try to re-start within terminal if running as standalone executable.
  - chg: show application restart request in the chosen language after changing it.
  - chg: allow resizing/maximizing of main window (a minimal size is forced to prevent layout glitches).
  - chg: (Linux) install from source or package will try to automatically setup access to your instrument. Some services (PolicyKit/HAL or udev) may need to be restarted to get the updated configuration recognized. If in doubt, a reboot should work in all cases.
  - add: french translation (by Loïc Guégant, thanks!)
  - add: bdist_deb command and --cfg option for setup.py
2009-05-16 0.2.5b3
  - Fixed calibration loader autostart entry creation (“access denied” error) under Windows Vista and later with User Account Control enabled.
2009-05-07 0.2.5b2
  - Fixed “error: nothing to repeat” when using a spectrometer.
2009-05-05 0.2.5b
  - fix: encoding-related issues on all platforms and strange Unicode-related problems with AppleScript and Terminal on Mac OS X 10.4 (Details).
    Prerequisites to reproduce Unicode-related issues under Mac OS X 10.4: Terminal closed, or with atleast one window opened. Script inside an AppleScript bundle, the bundle filename contains UTF-8 characters. “main.command” (executable shell script) inside Contents/Resources subfolder of the bundle.
    Not working (messagebox “Resource not found”):

        tell application "Terminal"
        	activate
        	do script quoted form of (POSIX path of (path to resource "main.command"))
        end tell

    Not working (messagebox “Resource not found”):

        tell application "Terminal"
        	activate
        	do script quoted form of (POSIX path of (path to resource "main.command")) in first window
        end tell

    Not working (message “No such file or directory” printed to Terminal window):

        set shellscript to quoted form of (POSIX path of (path to resource "main.command"))
        tell application "Terminal"
        	activate
        	do script shellscript
        end tell

    Working:

        set shellscript to quoted form of (POSIX path of (path to resource "main.command"))
        tell application "Terminal"
        	activate
        	do script shellscript in first window
        end tell

  - fix: (Windows) several actions unexpectedly failing under Windows 7 (dispcalGUI created temporary files via system calls on several occasions, but on Windows, this does not create the file in the user's temp directory as one would expect, but in the ROOT directory e.g. C:\—a sane method is now being used instead).
  - fix: bug in sorting function caused leading and trailing zeroes of numbers in testchart filenames to get lost, thus failing to load such files.
  - fix: (Linux) “No module named _md5” error with the standalone executable on some Linux distros (apparently an OpenSSL-related issue, because normally it wouldn't fall back to the legacy _md5 module which is not even built by default in recent Python versions). The fallback _md5 module is now included.
  - fix: calibration was not automatically added & selected in the dropdown menu when only calibrating.
  - fix: dropping a profile which was not created in dispcalGUI onto the application window no longer results in an unhandled error.
  - fix: when trying to load calibration curves from a profile which actually does not contain any, an error message is now shown instead of resetting the video card gamma table to linear and erroneously stating the curves were succesfully loaded.
  - fix: add display device name as device model description when profiling.
  - fix: when creating a new profile from an existing profile, use that profile's device model description if present.
  - fix: also create .app/.sh/.cmd files when creating a new profile from existing measurement data.
  - fix: restore advanced gamut mapping options to default if selecting a profile which does not contain those settings.
  - fix: allow free selection of source and target viewing conditions in advanced gamut mapping options for LUT[7] profiles regardless of source profile type.
  - fix: if the screen or instrument that was selected in a previous session is not available, select an available one.
  - fix: (Mac) the “enable spyder 2” menu item would not allow to select files other than “setup.exe”.
  - fix: [src] (Mac) if dispcalGUI was installed as application and then run from (separate) source, multiple copies were launched at certain occasions.
  - fix: selecting a different Argyll binary directory than the previous one now actually works.
  - chg: the previously empty entry at the top of the settings dropdown (settings which are not associated to a profile or .cal file) is now named “<current settings>”.
  - chg: changed settings which are associated to a profile or .cal file are now marked with a leading asterisk in the settings dropdown.
  - chg: default to a gamma of 2.4 (Argyll default).
  - chg: warn before changed settings are discarded.
  - chg: new default profile naming scheme.
  - chg: new default file locations on all platforms.
    - On Linux, dispcalGUI now adheres to the XDG Base Directory Specification—the configuration file is saved as `$XDG_CONFIG_HOME/dispcalGUI/dispcalGUI.ini` ($XDG_CONFIG_HOME defaults to ~/.config if not set), all files created during calibration/profiling go into `$XDG_DATA_HOME/dispcalGUI/storage/` ($XDG_DATA_HOME defaults to ~/.local/share if not set) by default, and logfiles into `$XDG_DATA_HOME/dispcalGUI/logs/`
    Any old (pre v0.2.5b) configuration data is retained in the file `~/.dispcalGUI` and may be safely deleted after using v0.2.5b or newer for the first time.
    - On Mac OS, the configuration is saved as `~/Library/Preferences/dispcalGUI/dispcalGUI.ini`, all files created during calibration/profiling go into `~/Library/Application Support/dispcalGUI/storage/` by default, and logfiles into `~/Library/Logs/dispcalGUI/`
    Any old (pre v0.2.5b) configuration data is retained in the file `~/Library/Preferences/dispcalGUI Preferences` and may be safely deleted after using v0.2.5b or newer for the first time.
    - On Windows, the configuration file is saved as `%APPDATA%\dispcalGUI\dispcalGUI.ini`, all files created during calibration/profiling go into `%APPDATA%\dispcalGUI\storage\` by default, and logfiles into `%APPDATA%\dispcalGUI\logs\`
    Any old (pre v0.2.5b) configuration data is retained in the registry key `HKEY_CURRENT_USER\Software\dispcalGUI`.
  - chg: [build/src] (Windows) removed MS Visual C++ 2008 Redistributable DLLs from the source package. Users who build under Windows will have them anyway as they are installed with Python 2.6, so they are now copied directly from %SystemRoot%\WinSxS (Windows side-by-side assemblies) if possible.
  - chg: [build/src] SendKeys is now a dependency on Windows when running or building from source.
  - chg: [build/src] made dispcalGUI a distutils package, so it can be built/installed via setup.py.
  - chg: default locations are now also searched for resource files (`$XDG_DATA_HOME/dispcalGUI`, `$XDG_DATA_DIRS/dispcalGUI` on Linux, `~/Library/Application Support/dispcalGUI`, `/Library/Application Support/dispcalGUI` on Mac OS X, `%APPDATA%\dispcalGUI`, `%COMMONAPPDATA%\dispcalGUI` and `%COMMONPROGRAMFILES%\dispcalGUI` on Windows) in addition to the current working directory (which is always searched first if it differs from the executable directory) and the executable directory (which is always searched last).
  - chg: better error handling. For unhandled exceptions, a message box is shown and an entry is written to the logfile.
  - chg: (Linux) the calibration loader will no longer try and handle gnome-screensaver quirks—it was working too unreliably, and should really be fixed in gnome-screensaver. The current recommendation is to not use a screensaver at all if possible, and instead rely on the system's energy saving options.
  - chg: (Linux) there's no longer an installer for the Linux version.
  - chg: cancelling of certain operations like profile calculation and testchart generation is now also supported when using Python 2.5
  - chg: when searching for Argyll executables, also search for files with “argyll-” prefix or “-argyll” suffix (thanks to Mark Whitis for report).
  - chg: disable measurement mode selection when using a spectrometer.
  - add: logging (also see the change related to file-storage). Logfiles are created per-date. A maximum of 5 old ones is being kept as backup.
  - add: placeholders like display name, measurement device, whitepoint etc. can now be used in the profile name.
  - add: unattended calibration and profiling for some instruments, meaning it is no longer necessary to press a key after calibration to start the measurements for profiling (needs xautomation under Linux).
  - add: settings and related files can be deleted.
  - add: (Linux, Mac, Vista) profile install scope can be selected (note: local system scope install is broken with current Argyll versions under Linux).
  - add: version and translation information in the about window.
  - add: projector mode when using Argyll 1.1.0 Beta or newer with the X-Rite ColorMunki.
2009-01-01
  Linux and sourcecode bugfix update: Creation of the autostart entry failed when the autostart directory did not yet exist.
2008-12-24 0.2.1b
  - fix: video card gamma table access check always returned false when no display profile was set.
  - chg: (Linux) dispcalGUI now uses the autostart specification from freedesktop.org for the profile loader under Linux when installing profiles. NOTE for users: This also means you should manually remove any autostarts from previous versions, e.g.
    `rm ~/.gnome2/dispwin-*.sh
    rm ~/.kde/Autostart/dispwin-*.sh`
    and then re-install your current profile so the new loader is created. The new loader will be created in $XDG_CONFIG_HOME/autostart/ (if set) or ~/.config/autostart/ (if not set), with the filename dispcalGUI-Calibration-Loader-Display-x.desktop, where x is the display number.
  - chg: the calibration loader will check if gnome-screensaver is running and if so, exit it before loading the calibration, then start it again to prevent resetting the calibration when activated.
  - chg: .sh/.cmd file in profile folder is no longer created when just installing a profile.
  - add: message box when selecting LUT[7] as profile type with recommendation to use more samples for higher quality profiles.
  - add: default to english locale if translation doesn't exist.
2008-12-18 0.2b
  - fix: no longer possible to introduce invalid value types through a malformed config file (which could lead to dispcalGUI not launching).
  - fix: windows can no longer be moved permanently out of the visible screen area.
  - fix: spaces and special chars in the profile name should work now (should have from the start, but I had some superfluous code which broke it).
  - fix: spaces in the path to dispcalGUI should work now under Linux and Mac OS X too (Windows had no problem)
  - fix: measurement file no longer gets deleted after successful measurement if profile generation fails (was a simple oversight on my side).
  - fix: [cosmetic] logo header now always spans the whole width of the window.
  - fix: [cosmetic] (Mac OS X) on first launch, a second, unused, terminal window is no longer opened.
  - fix: windows will now try to adjust its height to fit on small screens (scrollbars might appear).
  - chg: “Calibration file” renamed to “Settings” and moved to the top, is now a dropdown box remembering the last 10 used files. Settings are stored in and loaded from profiles.
  - chg: renamed “Display type” to “Measurement mode” and moved over to measurement device selector.
  - chg: default to “LCD” for measurement mode.
  - chg: default testchart file names are now localized.
  - chg: new default testcharts, four flavours: matrix default (91 patches), LUT[7] default (127 patches), large (512 patches) and massive (3012 patches).
  - chg: testchart selector is now a dropdown box, shows all testchart files in chosen directory plus the default testcharts.
  - chg: [build/src] new and improved build system.
  - chg: [build/src] Python 2.6 is now the recommended version to run and/or build dispcalGUI. Python 2.5 is still supported, but you will not be able to cancel profile or testchart creation through the GUI[4].
  - chg: (Linux) externally installed wxGTK is no longer a dependency for executables.
  - chg: [build] Executables are now completely self-contained. The following paths are searched for additional language files: `<user home directory>/dispcalGUI/lang`, `<dispcalGUI root directory>/lang`
  - add: all settings now stored in profile whenever possible.
  - add: “Install” button next to settings dropdown to install selected profile.
  - add: dropdown to choose the display to use for video card gamma table access if all of the following applies:
    - more than one display connected
    - one of those displays seems to have non-working video card gamma table access (detected on startup)
    - one of those displays seems to have working video card gamma table access (detected on startup)
  - add: show patch count of selected testchart next to dropdown.
  - add: ability to select an icc profile (if it contains appropriate data) or measurement data file (.ti3) as testchart (converted on-the-fly).
  - add: testchart generator with editing cabability (experimental)
    - to select patches, click and drag the mouse over table cells, or hold SHIFT (select range) or CTRL/CMD (add/remove single cells/rows to/from selection)
    - to add a patch, double-click a row label
    - to delete patches, select them, then hold CTRL or CMD and hit DEL or BACKSPACE (will always delete whole rows even if only single cells selected)
    - CTRL-C/CTRL-V/CTRL-A = copy/paste/select all
  - add: advanced gamut mapping options for LUT[7]-type profiles, can also be used to overcome an apparent Photoshop CS3 bug under Mac OS X where the brush cursor shows strange artifacts when using LUT[7]-profiles with only one intent (thanks to Klaus Karcher for reporting this).
  - add: ability to generate profile from existing measurement data, even from an existing profile (if it contains appropriate data).
  - add: drag and drop calibration files (.cal), profiles (.icc/.icm), testcharts (.ti1) and measurement data files (.ti3) to the main window to process/select them (does not work very reliably on Mac OS X depending on where you drop the files, and you also get no optical feedback during the drag operation like the changed mouse cursor on Linux/Windows. Your best bet when dropping any files is perhaps the unoccupied area below “Settings”).
  - add: fully movable/resizable measurement window.
  - add: profile and testchart creation can be aborted (when running from source only if using Python >= 2.6).
  - add: “Before” / “After” switch when calibration / profiling complete.
  - add: menu item to enable Spyder 2 from within dispcalGUI.
  - add: italian and spanish GUI[4] translations (thanks contributors!)
  - Numerous other small fixes/changes.
2008-08-21
  Executable-only update for Linux (thanks to Patrice Vetsel for bug report): dispcalGUI is now built against wxGTK 2.8.7.1, which becomes a dependency.
2008-08-18 0.1b
  First public release.

## Definitions

[1] CGATS
  Graphic Arts Technologies Standards, CGATS.5 Data Exchange Format (ANSI CGATS.5-1993 Annex J)
[2] CMM / CMS
  Color Management Module / Color Management System
[3] GPL
  GNU General Public License — gnu.org/licenses/gpl.html
[4] GUI
  Graphical User Interface
[5] ICC
  International Color Consortium — color.org
[6] JSON
  JavaScript Object Notation, a lightweight data-interchange format — json.org
[7] LUT
  Look Up Table — en.wikipedia.org/wiki/Lookup_table
[8] SVN
  Subversion, a version-control system — subversion.tigris.org
[9] UAC
  User Account Control — en.wikipedia.org/wiki/User_Account_Control
[10] EDID
  Extended Display Identification Data — en.wikipedia.org/wiki/EDID

dispcalGUI © 2008-2014 Florian Höch