NAME
xtartan - draw various tartans as window backgrounds
SYNOPSIS
xtartan [-draw] [-list] [-print] [-version] [-r] [-s scale] [-t
tartanname] [-w linewidth] [-np namepattern] [-sp setpattern] [-dark]
[-modern] [-fade] [-fv fadevalue] [-min] [-minimum]
DESCRIPTION
Xtartan generates a pixmap containing a Scottish tartan and sets it as
the background of a new window (or the root window if -r is used).
Tartan sett information and color information are specified using X11
resources, allowing you to easily add your own tartan if it is not
already included, or to modify the pattern or individual colors of
existing tartans.
The standard applications default file for Xtartan includes
descriptions for over 240 setts.
OPTIONS
-draw Draw the tartan as a window background (the default action).
-list Print out a list of the names of all of the available tartans.
-print Print out the sett information for the specified tartan.
-version
Print out the version number of the xtartan program.
-r Display on the root window instead of creating a new window.
-s Scale up the width of the stripes in the tartan by the specified
integer (default 2).
-w Scale up with width of the lines drawn by the specified integer.
-t Use the specified tartan. If not specified, the MacBeth tartan
is used.
-np Use the specified name pattern to filter tartans for -list and
when cycling through the tartans. Only tartans which contain
the specified string as a substring of the name will be used.
-sp Use the specified sett pattern to filter tartans for -list and
when cycling through the tartans. Only tartans which contain
the specified string as a substring of the sett will be used.
-dark -modern
Using either of these will display the tartan in its darker
modern colors as opposed to the traditional ancient colors.
-fade -fv
Using -fade will fade the colormap to create a tartan that is
usable as a background for WWW pages. The fadeValue (-fv)
resource controls how bright. Algorithm details are later in
this document.
-min -minimum
Either of these switches forces the displayed window (in "draw"
mode) to be the exact size of the tartan after taking scaling
into account. Details are below, in the showMinimum resource.
Xt switches
In addition to the above switches, any of the standard top-level
switches for the Xt toolkit can be specified (such as -display).
RESOURCES
In addition to standard Xt toolkit resources, xtartan looks for the
resources described below. All resources are application resources
(xtartan.<resource>).
action Type String, class Action. Specifies the action to take; one of
"draw", "print", "list", or "version". Setting the action to
one of these is equivalent to specifying the command line option
of the same name.
colorCode.<codename>
Type String, class ColorCode. Specifies the color name
translation for the indicated color code. Color codes are used
in the sett descriptions. For example, if the sett used "BK4"
and the resource "*.colorCode.BK: Black" was specified, the BK4
would be drawn as a black stripe of width four. By specifying a
resource such as "XTartan.colorCode.BK: Grey" in your personal
resources (or with the -xrm command line option), you can
override the translation of the BK color code and make it come
out as Grey instead of Black.
firstTartan
Type String, class firstTartan (sic - no capitalization).
Specifies the name of the first tartan in the list of tartans.
All tartan sett information is specified in resources. See the
descriptions of the sett and nextTartan resources.
lineWidth
Type Int, class LineWidth. Specifies the line width factor.
Equivalent to the "-w" command line option.
<tartanname>.nextTartan
Type String, class nextTartan (sic - no capitalization).
Specifies the name of the next tartan in the list of tartans.
The chain of tartans starts with the tartan specified with the
firstTartan resource and goes through each nextTartan resource.
When Xtartan starts up, it reads the chain into memory so that
it can go forwards or backwards in the list. You can add your
own tartan into the middle of the chain by overriding the
nextTartan resource of the tartan preceding your tartan (to
refer to your tartan) and by specifying the nextTartan resource
on your new tartan to refer to the tartan formerly referred to
by the preceding tartan. For example, if you wanted to add the
tartan Foobar between Fletcher and Forbes, you could do this by
specifying the following resources in your personal resources:
XTartan.Fletcher.nextTartan: Foobar
XTartan.Foobar.sett: B4 R4 (a simple sett)
XTartan.Foobar.nextTartan: Forbes
You should run xtartan with the -list option after adding a
tartan to make sure you have not broken the chain.
scale Type Int, class Scale. Specifies the scale factor. Equivalent
to the "-s" command line option.
<tartanname>.sett
Type String, class sett (sic - no capitalization). Specifies
the sett information for the tartan. Each color stripe is
represented by a color code immediately followed by a thread
count, e.g. BK4. The color code is translated by the
colorCode.<code> resource. The sett string can contain comments
in parentheses (one level only), and some special codes, which
are preceded by a percent character (%). The special codes
modify the interpretation of the sett string as follows:
%a - the sett is asymmetric (no pivots)
%b - all thread counts are even; they are divided
by two when read in
%p - the last two colors are a double pivot
%v - vertical pattern (which follows) is different from
horizontal pattern (which precedes)
The sett pattern is drawn from left to right and from bottom to
top.
tartan Type String, class Tartan. Specifies the name of the tartan to
use. Equivalent to the "-t" command line option.
useRoot
Type Boolean, class UseRoot. If true, set the background of the
root window instead of opening a new window. Equivalent to the
"-r" command line option.
dark Type Boolean, class Dark. If true, use the darker, modern
colors instead of the brighter "ancient" colors. This can be
toggled interactively.
fade Type Boolean, class Fade If true, fade the image to create a
backdrop tartan. This can be toggled interactively.
fadeValue
Type int, class FadeValue Controls the brightness of the faded
backdrop. Defaults to 2. The algorithm scales all color values
to use the top "fv" fraction of the available range; e.g., if
the fadeValue is 5, then the top 1/5th of the color range is
used. Out of a 65534 color range, the minimum value is 49149
instead of 0.
showMinimum
Type Boolean, class ShowMinimum If true, the window will always
be the minimum size to hold the current tartan, taking scaling
into account. This means the window dimensions will change when
the scale is changed or when the tartan itself is changed.
Default is False, meaning the window will stay at its current
size until adjusted by either turning showMinimum on (see
below), or resizing using window-manager handles.
INTERACTIVE OPTIONS
While xtartan is running, you can change tartans, scale, linewidth and
dark mode by entering keyboard command characters (except when -r is
used). The actions defined in xtartan are listed below, followed by
the default translation bindings.
exit() Causes xtartan to exit.
help() Prints out a list of what the standard translation binding do.
info() Prints out the current tartan name, scale, and line width.
lineWidth(new)
Changes the line width multiplier. The argument is a numeric
string optionally preceded by a "+" or "-" character. If there
is no sign character, then the new number is used directly as
the new line width. If there is a leading sign, then the new
number is either added or subtracted from the current value, and
the result is used as the new line width.
name() Prints out the name of the current tartan.
scale(new)
Changes the scale multiplier. The argument is a numeric string
and is interpreted in the same was as for the lineWidth action.
setTartan(name)
Switches the current tartan to the specified tartan. If the
name is "+", the next tartan in the list is selected. If the
name is "-", the previous tartan in the list is selected. If
the name is "0", the first tartan in the list is selected. For
these specials, the name and sett patterns are used to filter
out tartans which do not match those patterns.
sett() Prints out the name and sett of the current tartan, and
translations for the color codes used in that sett.
dark() Toggles between dark and bright colors (modern vs. ancient).
xpm() Dumps the current tartan to an xpm file in the current
directory. The file will be named after the tartan’s name, with
"_dark", "_fade", and ".xpm" added appropriately.
gif() Dumps the current tartan to a gif file in the current directory.
The file will be named after the tartan’s name, with "_dark",
"_fade", and ".gif" added appropriately.
fade() Toggles between normal and faded colors.
minimum()
Toggles between displaying minimum window and constant window.
root() Will install the current tartan to the root window and exit. As
the program exits, it will print the command line to regenerate
the tartan it just installed.
The standard translation bindings (in the default app-defaults file)
are:
Ctrl<Key>C : exit()\n\
:<Key>? : help()\n\
:<Key>h : help()\n\
:<Key>f : setTartan(0)\n\
:<Key>n : setTartan(+)\n\
:<Key>N : name()\n\
:<Key>p : setTartan(-)\n\
:<Key>P : sett()\n\
:<Key>q : exit()\n\
:<Key>t : info()\n\
:<Key>* : scale(+1)\n\
:<Key>/ : scale(-1)\n\
:<Key>+ : lineWidth(+1)\n\
:<Key>- : lineWidth(-1)\n\
:<Key>= : scale() lineWidth()\n\
:<Key>d : dark()\n\
:<Key>x : xpm()\n\
:<Key>g : gif()\n\
:<Key>a : fade()\n\
:<Key>r : root()\n\
:<Key>m : minimum()
BUGS AND WARNINGS
When using line widths greater than one, there are often alignment
problems when abutting the tartan tiles, and you can see a line
delimiting the edge of the background pixmap where the tartan lines do
not match properly.
Strange patterns can be caused by using line widths which are large
compared to the width of the color stripes in the tartan. The
algorithm has been changed and you can now only go up to a scale factor
of 11.
Not all of the "tartans" are actual tartans; some are random patterns
to test out the various drawing capabilities of the program. The
tartan labeled "Mine" is not really a tartan, but is a plaid pattern in
some cotton flanel I use for a great kilt.
Not all tartans look good/accurate in dark mode. The dark mode
algorithm was optimized to keep reds, yellows, and whites relatively
bright while darkening the blues and greens. This works very well for
clans like MacLeod and Sutherland. Odd colors like maroon and pink
(Melville), or tartans with heavy blue-red blends (MacGilllivray) may
become darker, richer, or more yellowish than they should be.
SOURCES
The sett descriptions came from a number of different sources. The
source for each sett in the app-defaults file is indicated in a
comment. The following sources were used:
"The Tartan Weaver’s Guide" by James D. Scarlett, first
published 1985 by Shepheard-Walwyn (Publishers) Ltd., 26 Charing
Cross Road, London WC2H 0DH. This book contains color pictures
of 142 tartans, and thread counts for 228 tartans, plus a bit of
history about each tartan (but not about the people associated
with them). It contains the notice, "Copyright (c)
Illustrations Shepheard-Walwyn (Publishers) Ltd. 1977." I
presume this means that the illustrations in this book are
copyrighted, but the sett information is not. The setts listed
in this source have been taken from a number of other sources.
The source for each sett is well documented, making this a good
starting point if you are interested in tracing the history of a
particular tartan. Setts from this source are indicated with
(W) in the app-defaults file.
"The Official Tartan map of tartans approved by clan chiefs, the
standing council of Scottish chiefs, or the Lord Lyon King of
Arms" by Dunbar and Pottinger, published by Elm Tree Books in
1976. (Entered by J. Dean Brock (brock@cs.unc.edu)) Setts from
this source are indicated with (D) in the app-defaults file.
"The Clans and Tartans of Scotland" by Robert Bain, published by
Collins, London and Glasgow, in 1950 (first published 1938). I
find no copyright notice in "The Clans..." nor any text
restricting distribution of information nor reserving rights in
any manner. This book does not contains thread counts; thread
colors and counts for these setts have been estimated from the
photographs, so there is a good chance that they do not exactly
match any official sett. Each tartan faces a one page
description of the history of the people associated with the
tartan. Setts from this source are indicated with (C) in the
app-defaults file.
Because of the difficulty of establishing the authenticity of tartans,
there are a great many tartans for which more than one sett is listed.
These are listed with various suffixes which generally indicated what
authority was used for that version of the tartan (e.g. _VS for tartans
which came from the Vestiarium Scoticum).
In many cases, photographic plates show a sett which is clearly not the
same as the thread counts given. Usually the difference is in the size
(thread count) for particular stripes, or in the color of a stripe
(e.g. white vs. yellow). When the difference was more than this, I
have included additional setts to reflect the photograph as well as the
printed sett.
Please remember that the sett information here has been manually
transcribed from printed material, and transcription errors may have
occurred. In some cases the sources have contained errors, some in the
printed thread counts, some weaving errors in the photographic
examples; there may well be additional errors that I am not aware of.
I have done my best to ensure the correctness of the information
provided, but there are bound to be some errors remaining.
If you are serious about getting the correct definition for a sett,
please do a little research and find some authoritative references.
The list above is a good start, or you can go to your local library and
look up "tartans" in their subject index.
COPYRIGHT
This software is not copyrighted.
Xtartan and the sett definitions that are included with it have not
been sanctioned by any Scottish authority; no guarantee is placed on
the accuracy of the tartans it produces.
ORIGINAL AUTHOR
Jim McBeath
Globetrotter Software, Saratoga, California
jimmc@hisoft.uucp (Highland Software, Palo Alto)
CURRENT MAINTAINENCE BY
Joe Shelby
jshelby@autometric.com