XDaliClock(1)XDaliClock(1)NAMExdaliclock - melting digital clock
SYNOPSISxdaliclock [-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 pro
grams of the same name, written by Steve Capps in 1983 or
1984.
OPTIONSxdaliclock 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.
-font fontname
Specifies the X font to use; xdaliclock can cor
rectly animate any font that contains all the dig
its plus colon and slash, and in which the letters
aren't excessively curly.
The xdaliclock program also contains four builtin
bitmapped fonts, which are larger and more attrac
tive than the standard X fonts. One of these
fonts will be used if the -font option is given
one of the fontnames BUILTIN0, BUILTIN1,
BUILTIN2, or BUILTIN3.
-builtin0
This is the same as specifying -font BUILTIN0.
X Version 11 11-Nov-99 1
XDaliClock(1)XDaliClock(1)-builtin1
This is the same as specifying -font BUILTIN1.
-builtin2 or -builtin
This is the same as specifying -font BUILTIN2.
-builtin3
This is the same as specifying -font BUILTIN3.
-fullscreen
Make the window take up the whole screen. When
-fullscreen is specified, the displayed time will
wander around a little, to prevent any pixels from
being on continuously and causing phosphor burn-
in.
-root Display the clock on the root window instead of in
its own window. This makes the digits wander
around too.
-visual visual
Specify which visual to use. Legal values are:
default Use the screen's default visual (the
visual of the root window.) This is the
default.
best Use the visual which supports the most
writable color cells.
class One of StaticGray, StaticColor, TrueColor,
GrayScale, PseudoColor, or DirectColor.
Selects the deepest visual of the given
class.
number A number (decimal or hex) is interpreted
as a visual id number, as reported by the
xdpyinfo(1) program; in this way you can
select a shallower visual if desired.
If you don't have a 24-bit system, using a visual
other than the default one may cause colormap
flashing.
-transparent
Causes the background of the window to be trans
parent, if possible.
If the server supports overlay planes, then they
will be used (this is the case on SGIs, and on
certain HP, DEC, and IBM systems.)
If overlay planes are not available, but the
server supports the Shape extension, then that
X Version 11 11-Nov-99 2
XDaliClock(1)XDaliClock(1)
will be used instead. However, the Shape exten
sion is very inefficient: it will cause your X
server to use up a lot of cycles.
Also, if the Shape extension is used, you will
probably need to configure your window manager to
not put a titlebar on the XDaliClock window.
(This is the case at least with twm, tvtwm, and
mwm.) If you don't do this, then the window will
flicker constantly, as the window manager tries to
add and remove the titlebar ten times each second.
None of these problems occur if overlay planes are
used (or if the -transparent option is not
requested.)
-nontransparent
Don't make the window's background be transparent.
This is the default.
-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 dis
playing on, then xdaliclock can work correctly by
simply making the drawing requests it needs when
it needs them. This is the elegant method. How
ever, 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 kbps 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 drasti
cally 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 charac
ter) 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
X Version 11 11-Nov-99 3
XDaliClock(1)XDaliClock(1)
medium, this program can seem sluggish when using
a large font over a very slow connection to the
display server.
-countdown date
Instead of displaying the current time, display a
countdown to the specified date (if the date has
already passed, count up from it.) The date can
take two forms: either a time_t (an integer, the
number of seconds past "Jan 1 00:00:00 GMT 1970");
or, a string of the form "Mmm DD HH:MM:SS YYYY",
for example, "Jan 1 00:00:00 2000". This string
is interpreted in the local time zone.
The following standard X Toolkit command line arguments
are commonly used with xdaliclock:
-display host:dpy
This option specifies the X server to contact.
-geometry geometry
This option specifies the prefered size and posi
tion 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.''
-bd color
This option specifies the color to use for the
border of the window. The default is the same as
the foreground color.
-rv This option indicates that reverse video should be
simulated by swapping the foreground and back
ground 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 while the button
X Version 11 11-Nov-99 4
XDaliClock(1)XDaliClock(1)
is held.
Typing ``space'' at the xdaliclock window will toggle
between a twelve hour and twenty-four hour display.
Typing ``q'' or ``^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 RESOURCESxdaliclock understands all of the core resource names and
classes as well as:
mode (class Mode)
Whether to display 12-hour or 24-hour time. If
12, this is the same as the -12 command line argu
ment; 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.)
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.
font (class Font)
The same as the -font command line option: the
font to melt. If this is one of the strings
BUILTIN0, BUILTIN1, BUILTIN2, or BUILTIN3, then
one of the large builtin fonts will be used. Oth
erwise, this must be the name of a valid X font.
fullScreen (class FullScreen)
The same as the -fullscreen command-line option.
root (class Root)
The same as the -root command-line option.
X Version 11 11-Nov-99 5
XDaliClock(1)XDaliClock(1)
visualID (class VisualID)
The same as the -visual command-line option.
transparent (class Transparent)
Whether to make the window's background be trans
parent, if possible. If true, this is the same as
the -transparent command line argument; if false,
this is the same as -nontransparent.
memory (class Memory)
This must be high, medium, or low, the same as the
-memory command-line option.
countdown (class Countdown)
Same as the -countdown command-line option.
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 prop
erty.
TZ to get the current time zone. If you want to force
the clock to display some other time zone, set this
variable before starting it. For example:
sh: TZ=GMT0 xdaliclock
csh: ( setenv TZ PST8PDT ; xdaliclock )
You may notice that the format of the TZ variable
(which is used by the C library ctime(3) and local
time(3) routines) is not actually documented anywhere.
The fourth character (the digit) is the only thing
that really matters: it is the offset in hours from
GMT. The first three characters are ignored. The
last three characters are used to flag daylight sav
ings time: their presence effectively adds 1 to the
zone offset. (I am not making this up...)
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 neces
sary, 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 pos
sible that shipping a bitmap to the server would be more
X Version 11 11-Nov-99 6
XDaliClock(1)XDaliClock(1)
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.
It should display the day of the week somewhere.
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.
The correct default datemode should be extracted from the
current locale.
Should have a -analog mode (maybe someday...)
UPGRADES
The latest version can always be found at
http://www.jwz.org/xdaliclock/
SEE ALSOX(1), xrdb(1), xlsfonts(1), xclock(1), dclock(1),
oclock(1), tclock(1), xscreensaver(1)COPYRIGHT
Copyright 1991, 1992, 1993, 1994, 1995, 1996, 1997,
1998, 1999 by Jamie Zawinski. Permission to use, copy,
modify, distribute, and sell this software and its docu
mentation 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 per
mission 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@jwz.org>, 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 Mac
intosh version of this, so that I could snarf them for the
-builtin3 font.
And thanks to Steve Capps for the really great idea.
X Version 11 11-Nov-99 7