NAME¶
swisswatch - the mother of all X Toolkit clocks
SYNOPSIS¶
swisswatch [-option ...]
DESCRIPTION¶
Swisswatch is an analog clock for X that is highly customizable by means
of resources.
SYNOPSIS¶
Handles minute-hand display correctly when ticking more often than once a
minute.
Handles arbitrary number of hands and/or mark specifications.
OPTIONS¶
- -fg foreground color
- choose a different color for the hands and marks.
- -bg background color
- choose a different color for the background.
- -tick time
- the interval between updates of the display. This should be
a positive floating-point number. -geometry geometry
define the initial window geometry; see X(1).
- -display display
- specify the display to use; see X(1).
- -noshape
- causes the clock to not reshape itself and ancestors to
exactly fit the outline of the clock.
- -railroad
- -sbb
- -cff
- -ffs
- causes the second and minute hands to behave differently at
the turn of the minute. This mode tries to mimick the Look and Feel of the
swiss federal railway clocks.
RESOURCES¶
- .tickTime / .TickTime
- Time between ticks, in seconds. The hands will move this
often. (All hands have their positions recomputed and redrawn each time
the clock ticks.) This is a floating-point value, though values less than
the system's clock resolution will not work very well. Ticks occur
precisely on the appropriate boundary, regardless of when the program was
started; for example, if tickTime is 5, ticks occur precisely when
gettimeofday().tv_sec%5 changes.
- .numMarks / .NumMarks
- Number of sets of marks around the clock face.
- .child_n.cycle / .Mark.Cycle /
.Hand.Cycle
- For a mark, the number of marks in set n. For a
hand, the number of ticks corresponding to one complete turn of the
hand.
- .child_n.outsideEnd / .Mark.OutsideEnd
- Outside end of marks in set n, as a radial
distance.
- .child_n.length / .Mark.Length
- Length of marks in set n; the marks extend from the
outsideEnd position inward for this distance.
- .child_n.phase / .Mark.Phase
- Phase of mark set n. This specifies a rotation of
the whole set of marks. The default is 0, which specifies that a mark
appear at the straight-up ("12-o'clock") position, with the
other number-1 marks (if any) spaced evenly around the face. If phase is
nonzero, it specifies a rotation of the entire set of marks clockwise. The
value is the rotation, as a fraction of the distance from one mark to the
next. For example, any integer value will have no visible effect (any
desired effect corresponds to some value in [0..1]). Experimentation is
recommended.
- .child_n.centerX / .Mark.CenterX
- .child_n.centerY / .Mark.CenterY
- These specify where on the clock face the center of the
circle formed by the marks is to be. The X and Y coordinates are scaled so
that the bounding square of the clock face is [-1..1] x [-1..1]. This
allows for placing circles of marks centered at points other than the
center of the clock face; this is useful primarily in conjunction with the
corresponding options for hands.
- .child_n.foreground / .Mark.Foreground
- Color used to draw a mark or hand.
- .nChildren / .NChildren
- Number of hands and marks on the clock.
- .child_n.class
- The class of the hand or mark, currently only
"Hand" and "Mark" are supported.
- .child_n.width / .Hand.Width
- The width of the hand. For triangular hands, this is the
width of the base; for rectangular hands, this is the width of the
rectangle; and for circular hands, this is the diameter of the circle. If
the width of a triangular or rectangular outline hand is zero, the hand is
drawn as a single line instead of the full shape.
- .child_n.shape / .Hand.Shape
- The shape of the hand. Hands can be triangular,
rectangular, or circular; the allowed values are "triangle",
"rectangle", "circle", "triangular",
"rectangular", and "circular". Illegal values produce
a complaint and a default is used.
- .child_n.render / .Hand.Render
- The rendition of the hand. Hands can be drawn as outlines
or as filled shapes; the allowed values are "outline",
"fill", "outlined", and "filled". Illegal
values produce a complaint and a default is used.
- .child_n.strokeWidth / .Hand.StrokeWidth
- The width of strokes used to draw the hand, when the hand
is drawn in a way that uses strokes. A value of 0 uses so-called
"thin" lines, which are often faster.
- .child_n.strokeWidthR /
.Hand.StrokeWidthR
- If a non-zero floating point number is specified, the
stroke width will always be the product of this number and the clock's
outer radius (in x direction if it is an ellipsis).
- .child_n.cap / .Hand.Cap
- The line cap style used when drawing hands. This produces
no visual effect except when drawing triangular or rectangular hands of
width 0. Legal values are "notlast", "butt",
"round", "projecting", "capnotlast",
"capbutt", "capround", and
"capprojecting".
- .child_n.join / .Hand.Join
- The line join style used when drawing hands. Legal values
are "miter", "round", "bevel",
"joinmiter", joinround", and "joinbevel".
- .child_n.cycle / .Hand.Cycle
- The number of seconds it takes for the hand to circle
around the face once. For example, a normal second hand will give 60, a
normal minute hand 3600. If this is small compared to the tickTime value,
the hand will move by visually large amounts each tick; this may or may
not be desirable. The value may be floating-point.
- .child_n.phase / .Hand.Phase
- An offset applied to the time of day before computing the
hand position. To determine the position of a hand, the following is
computed:
((now - tz - phase) % cycle) / cycle
where `now' is the current time of day (obtained with time(3)), tz is a
correction factor for the timezone as found in the tm_gmtoff field of the
structure returned by localtime(3)), phase is the value of the phase
resource for the hand, and cycle is the value of the cycle resource for
the hand. The result is a number from 0 to 1, which is mapped into an
angular position, with 0 being straight up, .25 being straight right, .5
being straight down, etc.
The simplest way to determine the desired phase value for a hand is to
experiment. It is usually obvious that the value should be a multiple of
something like 3600; try various multiples until you get the desired hand
position.
- .child_n.color / .Hand.Foreground
- The color used for drawing the hand. Hands are drawn
opaquely in increasing numerical order.
- .child_n.center.x / .Hand.Center.X
- .child_n.center.y / .Hand.Center.Y
- These specify where on the clock face the pivot point of
the hand is to be. The X and Y coordinates are scaled so that the bounding
square of the clock face is 1..1] x [-1..1]. This allows hands to rotate
about points other than the center of the clock face, as with some
watches.
- .geometry / .Geometry
- Geometry specification, when none is given on the command
line. If no geometry spec can be found anywhere, the equivalent of
200x200+100+100 is used.
- .background / .Background
- Color used as a background for all drawing.
- .name / .Name
- A string, which is stored as the window manager name for
the window. If none is given, "xwatch" is used.
- .iconName / .IconName
- A string, which is stored as the window manager icon name
for the window. If none is given, "xwatch" is used.
- .railroad / .Railroad
- Enables or disables Swiss-railway-clock mode, as described
under the -railroad command-line option. The value can be
"true", "false", "yes", or
"no".
- .circular / .Circular
- If set, the clock will remain circular even if one tries to
resize it to a non-circular ellipse. This is the previous behavior. The
possible values are the same as for .swiss/.Swiss.
EXAMPLE RESOURCES¶
The distributed application defaults files define various different looks for
swisswatch. Try them out by calling it as
swisswatch
swisswatch -name swisswatch
swisswatch -name fancy
swisswatch -name botta
swisswatch -name swissclock
swisswatch -name oclock
COLORS¶
If you would like your clock to be viewable in color, include the following in
the #ifdef COLOR section you read with xrdb:
*customization: -color
This will cause swisswatch to pick up the colors in the app-defaults color
customization file: /usr/lib/X11/app-defaults/SwissWatch-color.
SEE ALSO¶
X(1), X Toolkit documentation
COPYRIGHT¶
Copyright 1989, Massachusetts Institute of Technology.
See
X(1) for a full statement of rights and permissions.
AUTHOR¶
Simon Leinen, Ecole Polytechnique Federale de Lausanne
CREDITS¶
Der Mouse <mouse@larry.McRCIM.McGill.EDU> wrote the mclock program that
already featured most of the functionality: smooth movement of the minute hand
and excessive configurability. I basically reimplemented mclock as a Toolkit
application. This manpage also contains slightly adapted text from
mclock.doc.