XDaliClock(1) X Version 11(26-oct-91) XDaliClock(1)
NAME
xdaliclock - melting digital clock
SYNOPSIS
xdaliclock [-toolkitoption ...] [-option ...]
DESCRIPTION
The xdaliclock program displays a digital clock; when a digit changes, it
``melts'' into its new shape.
This program was inspired by the Alto and Macintosh programs of the same
name, written by Steve Capps in 1983 or 1984.
OPTIONS
xdaliclock accepts all of the standard toolkit options, and also accepts
the following options:
-help Print a brief summary of the allowed options on the standard
error output.
-12 Use a twelve hour clock.
-24 Use a twenty-four hour clock.
-seconds
Update every second.
-noseconds
Update once per minute; don't display seconds at all.
-cycle Do color-cycling.
-nocycle
Don't do color-cycling.
-shape Use the Shape Extension, if it's available, to make the window
background be transparent.
This doesn't interact terribly well with the twm or tvtwm window
managers, unless they have been configured to not put a titlebar
on the xdaliclock window. If this isn't specified in your .twmrc
or .tvtwmrc file, then the window will flicker constantly, as the
window manager tries to add and remove the titlebar ten times
each second.
Also, this turns most X servers into huge cycle hogs. This is
probably because of inefficient implementations of the Shape
extension.
-noshape
Don't use the Shape Extension.
10/89 Page 1
XDaliClock(1) X Version 11(26-oct-91) XDaliClock(1)
-memory low
Use high-bandwidth, low-memory mode. If you have a very fast
connection between the machine this program is running on and the
X server it is displaying on, then xdaliclock can work correctly
by simply making the drawing requests it needs when it needs
them. This is the elegant method. However, the amount of data
necessary to animate the display ends up being a bit over 10
kilobytes worth of X Protocol per second. On a fast machine with
a local display, or over a fast network, that's almost
negligible, but (for example) an NCD X Terminal at 38.4 kilobaud
can't keep up. That is the reason for:
-memory medium
Use high-memory, low-bandwidth mode. In this mode, xdaliclock
precomputes most of the frames that it will ever need. This is
the sleazy copout method. The bandwidth requirements are
drastically reduced, because instead of telling the server what
bits to draw where, it merely tells it what pixmaps to copy into
the window. Aside from the fact that I consider this to be
cheating, the only downside of this method is that those pixmaps
(about 170 of them, each the size of one character) are consuming
server-memory. This probably isn't a very big deal, unless
you're using an exceptionally large font.
-memory high
With memory set to high, the cache is twice as large (the n ->
n+2 transitions are cached as well as the n -> n+1 ones). Even
with memory set to medium, this program can seem sluggish when
using the builtin font over a very slow connection to the display
server.
-font fontname
Specifies the X font to use; xdaliclock can correctly animate any
font that contains all the digits plus colon and slash, and in
which the letters aren't excessively curly.
The xdaliclock program contains a builtin bitmapped font, which
is larger and more attractive than the standard X fonts. This
font will be used if the -font option is given the fontname
BUILTIN.
-builtin
This is the same as specifying -font BUILTIN.
The following standard X Toolkit command line arguments are commonly
used with xdaliclock:
-display host:dpy
This option specifies the X server to contact.
Page 2 10/89
XDaliClock(1) X Version 11(26-oct-91) XDaliClock(1)
-geometry geometry
This option specifies the prefered size and position of the clock
window.
-bg color
This option specifies the color to use for the background of the
window. The default is ``white.''
-fg color
This option specifies the color to use for the foreground of the
window. The default is ``black.''
-rv This option indicates that reverse video should be simulated by
swapping the foreground and background colors.
-bw number
This option specifies the width in pixels of the border
surrounding the window.
-xrm resourcestring
This option specifies a resource string to be used.
COMMANDS
Clicking and holding any mouse button in the xdaliclock window will cause
it to display the date (in mm/dd/yy format) while the button is held.
Typing ``space'' at the xdaliclock window will toggle between a twelve
hour and twenty-four hour display.
Typing ``q'' or ``C-c'' at the window quits.
If the xdaliclock window is iconified or otherwise unmapped, it will go
to sleep until it is mapped again.
X DEFAULTS
xdaliclock understands all of the core resource names and classes as well
as:
seconds (class Seconds)
Whether to display seconds. If true, this is the same as the
-seconds command line argument; if false, this is the same as
-noseconds.
cycle (class Cycle)
Whether to do color cycling. If true, this is the same as the
-cycle command line argument; if false, this is the same as
-nocycle.
shape (class Shape)
Whether to use the Shape Extension, if available. If true, this
is the same as the -shape command line argument; if false, this
is the same as -noshape.
10/89 Page 3
XDaliClock(1) X Version 11(26-oct-91) XDaliClock(1)
memory (class Memory)
This must be high, medium, or low, the same as the -memory
command-line option.
font (class Font)
The same as the -font command line option: the font to melt. If
this is the string BUILTIN, then the large builtin font is used;
otherwise, it must be the name of a valid X font.
mode (class Mode)
Whether to display 12-hour or 24-hour time. If 12, this is the
same as the -12 command line argument; if 24, this is the same as
-24.
datemode (class DateMode)
Specifies how the date should be printed when a mouse button is
held down. This may be one of the strings mm/dd/yy, dd/mm/yy,
yy/mm/dd, yy/dd/mm, mm/yy/dd, or dd/yy/mm. The default is
mm/dd/yy. If seconds are not being displayed, then only the
first four digits will ever be displayed (mm/dd instead of
mm/dd/yy, for example.)
ENVIRONMENT
DISPLAY to get the default host and display number.
XENVIRONMENT
to get the name of a resource file that overrides the global
resources stored in the RESOURCE_MANAGER property.
SEE ALSO
X(1), xrdb(1), xlsfonts(1), xclock(1), dclock(1), oclock(1), tclock(1)
BUGS
Other system load will sometimes cause the second-display to increment by
more than one second at a time, in order to remain synchronized to the
current time.
The -memory option is disgusting and shouldn't be necessary, but I'm not
clever enough to eliminate it. It has been said that hacking graphics in
X is like finding sqrt(pi) with roman numerals.
When using a small font (less than 48x56 or so) it's possible that
shipping a bitmap to the server would be more efficient than sending a
DrawSegments request (since the endpoints are specified using 16 bits
each, when all that we really need is 6 or 7 bits.)
Support for the Shared Memory Extension would be a good thing.
Should display the day of the week somewhere.
This should be hooked up to xlock(1) or something like it.
Page 4 10/89
XDaliClock(1) X Version 11(26-oct-91) XDaliClock(1)
Should double the size of the builtin font, for full-screen mode.
The color cycling should be less predictable; it should vary saturation
and intensity as well, and should be more careful that foreground and
background contrast well.
Should have a -analog mode (coming soon...)
COPYRIGHT
Copyright 1991, Jamie Zawinski. Permission to use, copy, modify,
distribute, and sell this software and its documentation for any purpose
is hereby granted without fee, provided that the above copyright notice
appear in all copies and that both that copyright notice and this
permission notice appear in supporting documentation. No representations
are made about the suitability of this software for any purpose. It is
provided "as is" without express or implied warranty.
AUTHOR
Jamie Zawinski <jwz@lucid.com>, 18-sep-91.
Please let me know if you find any bugs or make any improvements.
Thanks to Ephraim Vishniac <ephraim@think.com> for explaining the format
of the bitmap resources in the Macintosh version of this, so that I could
snarf them for the -builtin option.
And thanks to Steve Capps for the really great idea.
10/89 Page 5