Setting an environment variable
To set an environment variable an MSWindows DOS shell, either
use set, e.g.;
set ARGYLL_REV_CACHE_MULT=1.5
which will set the value for that session, or set it in
Control Panel->System->Advanced->Environment Variables..
or go to Settings and search for environment.
You can set in either user or system variables.
You can examine individual variables in a command shell using
echo %VARIABLE_NAME%
or
set ARGYLL_REV_CACHE_MULT
or see all of them using
set
To remove an environment variable use
set ARGYLL_REV_CACHE_MULT=
For Mac OS X or Linux, the exact procedure will depend on
the shell you are running, but
is usually something like:
export ARGYLL_REV_CACHE_MULT=1.5
or
set ARGYLL_REV_CACHE_MULT=1.5
or
ARGYLL_REV_CACHE_MULT=1.5
and may need separately exporting, something like:
export ARGYLL_REV_CACHE_MULT
If you want the setting to be used for every session, then it should be
configured in the shell start-up script. The exact file will depend on which
shell you are using, but will typically be ~/.bash_profile, ~/.zshrc,
~/.profile or similar.
On Mac OS X if you need the environment variable seen by all applications
(i.e. DisplayCAL), not just those started from a shell, you will have to
change the ~/.MacOSX/environment.plist on earlier systems, or
/etc/launchd.conf file on later systems. On OS X 10.11 (El Capitan) and
later, you will have to create a shell script that sets the environment
variables and then starts DisplayCAL.
You can examine individual variables using
echo $VARIABLE_NAME
or see all of them using
set ARGYLL_REV_CACHE_MULT
You can remove an environment variable using
unset
Where an environment variable is used as a flag, the setting it to any value
(i.e. "true") will have the effect of setting the flag.
Remove the variable to unset the flag.
Environment variables
The following environment variables affect behaviour:
ARGYLL_NOT_INTERACTIVE
Normally Argylls tools expect that they are
directly interacting with a user, and use a couple of techniques for
communicating with them through the console and command line. One is to
output progress information by re-writing the same display line by using a
Carriage Return rather than a Line Feed at the end of each line. Another
is to allow a single key stroke to trigger an action or interrupt
operations. This can be a bit difficult to work with when wrapping Argyll
tools in a script.
If the ARGYLL_NOT_INTERACTIVE
environment variable is set (i.e. set to the value "1"), then:
A Line Feed will be added to the end of each progress
line, rather than a Carriage Return.
[ Note that a Line Feed is not added to prompt lines.
Prompt lines do not end with a Line Feed, but are flushed to stdout. ]
Any time it would wait for a single console keystroke
input, it will instead wait for and read the next character and a return
from stdin.
The first character read will be used, and any
following return characters ignored.
Note that while a measurement is being made, a
character input (i.e. stdin character followed by a return) can abort the
reading, just as with normal interactive mode.
On MSWin systems, the character and return or line feed
characters must be written to stdin in a single operation.
ARGYLL_3D_DISP_FORMAT
This overrides the default 3D visualisation file format for
tools such as iccgamut or viewgam.
Set to VRML or X3D or X3DOM, which will
result in .wrl, .x3d and .x3d.html files
respectively. See 3d Viewing Format.
ARGYLL_COLMTER_CAL_SPEC_SET
ARGYLL_COLMTER_COR_MATRIX
Both of these can be used to set a default CCMX or CCSS
colorimeter calibration file, equivalent to supplying a -X
argument to spotread, dispcal, dispread and any other utility that allows
using a colorimteter. The ARGYLL_COLMTER_CAL_SPEC_SET will take priority
if both are set.
ARGYLL_MIN_DISPLAY_UPDATE_DELAY_MS
Normally a delay of
200 msec is allowed between changing a patch color in software, and that
change appearing in the displayed color itself. For some instuments (ie.
i1d3, i1pro, ColorMunki, Klein K10-A) ArgyllCMS will automatically measure
and set an appropriate update delay during instrument calibration. In rare
situations this delay may not be sufficient (ie. some TV's with extensive
image processing features turned on), and a larger delay can be set using
the ARGYLL_MIN_DISPLAY_UPDATE_DELAY_MS
environment
variable, ie. ARGYLL_MIN_DISPLAY_UPDATE_DELAY_MS=400 would set a 400 msec
minimum delay.
ARGYLL_DISPLAY_SETTLE_TIME_MULT
Normally the display technology type determines how long is
allowed between when a patch color change appears on the display, and when
that change has settled down, and as actually complete within measurement
tolerance. A CRT or Plasma display for instance, can have quite a long
settling delay due to the decay characteristics of the phosphor used,
while an LCD can also have a noticeable settling delay due to the liquid
crystal response time and any response time enhancement circuitry. [
Instruments without a display technology type selection such as
spectrometers assume a worst case.].
The ARGYLL_DISPLAY_SETTLE_TIME_MULT environment variable allows the rise
and fall times of the model to be scaled to extend or reduce the settling
time. For instance, ARGYLL_DISPLAY_SETTLE_TIME_MULT=2.0 would double the
settling time, while ARGYLL_DISPLAY_SETTLE_TIME_MULT=0.5 would halve it.
ARGYLL_DISPLAY_FAKE_RAND_SEED
Programs that measure the display have the option of using a
fake display device for the purposes of testing. Normally the fake
measurements have a random component added to them, but if this
environment variable is set to a number, it will be used as the random
seed allowing reproducible runs.
ARGYLL_CREATE_WRONG_VON_KRIES_OUTPUT_CLASS_REL_WP
By default ArgyllCMS uses the Bradford sharpened cone Chromatic
adaption matrix in adapting the measured, absolute colorimetric test data
to the PCS (Profile Connection Space) relative colorimetric D50
white point for all profile types. This makes the profile handling
consistent with the widely deployed (HP & Microsoft) sRGB and AdobeRGB
profiles, as well as being recommended practice in modelling chromatic
adaption. The ICC profile format though, specifies the use of a
non-cone space XYZ adaptation (so called "Wrong Von Kries" chromatic
adaptation) [ ICC Specification ICC.1:2001-04 (ICCV2.4) Annex A, pp 66,
equations A.1, A.2 & A.3 ], so ArgyllCMS profiles have a very slight
incompatibility with ICC profiles created strictly according to the ICC
specifications, depending on how close to white Output (i.e. print)
profiles media white is to the perfect diffuser. (Note that CMM's that
strictly follow the ICC specifications have much more gross
incompatibilities due to this, when dealing with the HP & Microsoft
sRGB and AdobeRGB profiles.) By setting this environment variable, Output
(i.e. print) profiles will be created that better conform to the ICC
specification, and therefore have better inter-interoperability with
some other CMMs, at the cost of poorer color behavior.
See also the ArgyllCMS 'arts' tag.
ARGYLL_CREATE_DISPLAY_PROFILE_WITH_CHAD
The ICC V2 format originally provided no clear mechanism for
Display profiles to use a modern chromatic adaptation transform in dealing
with the D65 white point of typical displays. Profile makers ended up
taking two different approaches :- one was to use a Bradford chromatic
transform for the media (display) white to PCS D50 (this approach being
used by the widely deployed HP & Microsoft sRGB and AdobeRGB profiles,
as well as ArgyllCMS profiles by default), and the other was to apply the
Bradford transform to the measurement data and then disable Absolute
Intent for display profiles by setting the mediaWhitePoint tag to D50. The
latter approach was supplemented later on with the introduction of the
ChromaticAdapation ('chad') tag, but this did not restore the Absolute
Colorimetric capability to Display profiles. The latter approach has also
been adopted more formally in the ICC V4 specifications. To restore the
Absolute Intent for such profiles, ArgyllCMS will make use of the 'chad'
tag in such profiles when Absolute Colorimetric intent is requested, but
by default does not create such profiles.
Setting this environment variable overrides the ArgyllCMS ICC V2 and
default causes it to create Display profiles in the fashion dictated by
the ICC V4 spec. :- setting the mediaWhitePoint tag to D50 and storing the
display media white to D50 matrix in the 'chad' tag. (This approach has
slightly poorer accuracy for Absolute Intent than ArgyllCMS's default.)
ARGYLL_CREATE_DISPLAY_PROFILE_WITHOUT_CHAD
Setting this environment variable overrides the ArgyllCMS ICC
V4 default and causes it to create Display profiles in the fashion used by
default when creating an ICC V2 display profile. (See above).
ARGYLL_CREATE_OUTPUT_PROFILE_WITH_CHAD
For Output type devices (i.e. Printers), the assumption is that
test patches are measured under D50 illuminant. It can be very useful for
proofing to calculate color corrections for other, real world illuminants,
and ArgyllCMS makes provision for this with the coloprof
-i parameter, or the spec2cie -i
parameter. To be broadly useful, this change in illuminant needs to be
available to CMM's, which the ArgyllCMS's implementation makes possible by
incorporating the illuminant change into the absolute XYZ values and hence
the white point tag, so that Absolute Colorimetric rendering intent
returns XYZ values under that illuminant using any CMM.
The ICC specification have provision for hiding this difference in
illuminant by chromatically transforming the absolute values to be
functionally equivalent to having been measured using a D50 illuminant,
and recording this transform in the ChromaticAdapation ('chad') tag. This
appears to motivated by the assumption that the difference in illuminant
is a quirk or limitation of the instrument that is to be worked around, as
well as the limitation of the ICC Absolute to Relative chromatic
transformation being based on the inferior non-cone space XYZ adaptation
(so called "Wrong Von Kries" chromatic adaptation), while the
ChromaticAdapation tag allows for the use of a superior cone-space based
transformation. (see ARGYLL_CREATE_WRONG_VON_KRIES_OUTPUT_CLASS_REL_WP
above for more details.)
To allow for strict conformance to the ICC specification when using
non-standard illuminants, setting the ARGYLL_CREATE_OUTPUT_PROFILE_WITH_CHAD
environment variable causes a non-D50 illuminant white point change to be
hidden in the ChromaticAdapation Tag, and to still allow this to be useful
in a proofing situation, ArgyllCMS will incorporate the effect of the
ChromaticAdapation Tag when Absolute Colorimetric Intent is chosen. Note
that other CMM's may not do so. For full conformance with ICC
specifications, the ARGYLL_CREATE_WRONG_VON_KRIES_OUTPUT_CLASS_REL_WP
variable would also be set, but neither of these options is recommended,
since ArgyllCMS's default behavior will give superior results.
ARGYLL_CREATE_V2COLORANT_TABLE
ArgyllCMS only supports ICC V2 profiles, but older versions did
add the ColorantTable tag to profiles it created. For compatible behavior
to the older releases, set the
ARGYLL_CREATE_V2COLORANT_TABLE variable. Note that the
ColorantTable tag created will be non-standard, in having ICC V2 PCS
encoding.
ARGYLL_PLATFORM_OVERRIDE
By default the ICC profiles are created with a header platform
of ‘APPL’, ‘MSFT’ or ‘*nix’. The latter signature is an ArgyllCMS
extension used when profile are created on Linux or other UNIX like
platforms. For strict compatibility, the ARGYLL_PLATFORM_OVERRIDE
environment variable can be set to the desired signature string. i.e.
APPL
ARGYLL_CCAST_DEFAULT_RECEIVER
By default the ChromeCast test patch source uses a special
receiver application that gets the test patch data directly. By setting
this environment variable to true, the default Google ChromeCast receiver
will be used, making use of a local web server to provide the images. This
is slower than the special reciever, but can be used as a fallback.
ARGYLL_IGNORE_XRANDR1_2
On an X11 system, if this is set (ie. set it to "yes"), then the presence of the XRandR
1.2 extension will be ignored, and other extensions such as Xinerama and
XF86VidMode extension will be used. This may be a way to work around buggy
XRandR 1.2 implementations.
ARGYLL_IGNORE_XINERAMA
On an X11 system, if this is set (ie. set it to "yes"), then the presence of the
XInerama extension will be ignored, and default X11 Screen numbering will
be used to access multiple displays.
ARGYLL_USE_COLORD
By default ArgyllCMS >= V 1.9.4 will use its native ucmm to store display ICC profiles on Linux based
systems, but if the ARGYLL_USE_COLORD environment variable is
set, it will attempt to use the Gnome colord storage instead.
ARGYLL_DISABLE_I1PRO2_DRIVER
ArgyllCMS supports most of the the Eye-One
Pro Rev E (aka Eye-One Pro 2) instrument features, but a Rev E can be
operated in legacy mode if the environment variable
ARGYLL_DISABLE_I1PRO2_DRIVER is set (ie. set it to "yes").
ARGYLL_EXCLUDE_SERIAL_SCAN
Normally ArgyllCMS will try and identify any device on a fast
serial port (i.e. USB or BlueTooth based port). This may disturb devices
it doesn't know about, so the ARGYLL_EXCLUDE_SERIAL_SCAN variable can be
set to a semi-colon or comma separated list of serial ports that should
not be fast scanned. Example:
"COM2;/dev/tty5" etc.
ARGYLL_XRGA
If the ARGYLL_XRGA
environment variable is set to:
XRGA, then all Getag-MacBeth/X-Rite reflective
measurements will be converted to XRGA.
XRDI, then all Getag-MacBeth/X-Rite reflective
measurements will be converted to XRDI.
GMDI, then all Getag-MacBeth/X-Rite reflective
measurements will be converted to GMDI.
If not set (or set to some other string), then the native calibration will
be used. Note that the values must be upper case.
ARGYLL_UNTWIST_GAMUT_SURFACE
Whenever a color device profile value is inverted (i.e. in
creating ICC B2A tables, or creating a device link using gamut mapping
mode), colors that are out of gamut after gamut mapping, will be clipped
to the gamut surface. If the device behavior is poor (i.e. non-monotonic),
the gamut surface representation used for clipping may have "shadow" areas
that result in non-smooth jumps in clipped output. Setting the ARGYLL_UNTWIST_GAMUT_SURFACE environment variable to a non
empty value will invoke an additional step in the gamut surface creation
routine, that attempts to minimize such shadowed surface areas. This can
improve the smoothness of clipped colors for poorly behaved devices, but
may make the output for some devices worse.
XDG_CACHE_HOME
Argyll tries to follow the
XDG
Base
Directory Specification, and uses the
XDG_CACHE_HOME
environment variable to place per instrument calibration information, and
.ccmx and .ccss files.
XDG_CONFIG_DIRS
XDG_DATA_DIRS
On Unix type operating systems,
configuration and profiles for displays are placed relative to these
environment variables.
I1D3_ESCAPE
Some of the X-Rite i1d3 type colorimeters have unlock codes that
are not currently known. If the codes become known, an instrument might be
made to work with ArgyllCMS by setting the I1D3_ESCAPE
value to the appropriate two 16 character hexadecimal value. For instance,
if the retail i1d3 unlock wasn't already built into the ArgyllCMS driver
code, it could be enabled by the setting:
I1D3_ESCAPE=e9622e9f8d63e133
Another way of setting extra unlock codes is to create an i1d3_escape
file, with one 16 character hexadecimal code per line.
The file should be in the system DATA location:
Unix: $HOME/.local/share/ArgyllCMS/i1d3_escape
OS X: $HOME/Library/Application Support/ArgyllCMS/i1d3_escape
MSWin: $HOME/.local/share/ArgyllCMS/i1d3_escape
I1D3_DISABLE_AIO
The X-Rite i1d3 Rev. B type colorimeters have a new measurement
command called AIO that has some advantages over the commands supported by
the Rev. A hardware, and the ArgyllCMS driver will use this command when
it is available. The older older commands can be used on a Rev. B by
setting I1D3_DISABLE_AIO.
SPYD2024_LOWLEV_MEASURE
The Datacolor Spyder and SpyderPro 2024 colorimeters
by default use a new high level measurement command that performs a
measurement and then computes the XYZ values in the instrument. By setting
the SPYD2024_LOWLEV_MEASURE environment variable (i.e. to "true"),
the Spyder X2 lower level measurements commands will be used instead, and
the conversion to XYZ will be done by the ArgyllCMS driver. This must be
set before starting an application.
See Performance Tuning for other variables.