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 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.
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.
If the ARGYLL_NOT_INTERACTIVE
environment variable is set, then:
A Line Feed will be added to the end of each
progress line.
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 (i.e. testing ARGYLL_NOT_INTERACTIVE
mode manually will probably fail, because the character and
return get split up unless you are very fast at typing them.)
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_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_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 32 bit hexadecimal values. 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
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.
See Performance
Tuning for other variables.