XDaliClock(1) User Commands 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.
-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 also contains four builtin bitmapped
fonts, which are larger and more attractive 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.
-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.
-window-id window Render the clock on a window created by some other program.
-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 transparent, 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 will be used instead.
However, the Shape extension 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 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 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 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 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.
To count up from the current time, do this:
xdaliclock -countdown "`date '+%b %d %T %Y'`"
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 preferred 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.''
-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 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 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'' at the window quits.
If the
xdaliclock window is iconified or otherwise unmapped, it will
go to sleep until it is mapped again.
X RESOURCES
xdaliclock 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 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.)
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. Otherwise, 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.
visualID (class
VisualID) The same as the
-visual command-line option.
transparent (class
Transparent) Whether to make the window's background be transparent, 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 property.
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
localtime(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 savings 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 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.
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
https://www.jwz.org/xdaliclock/
There is a version of this program for PalmOS available there as
well.
SEE ALSO
X(1),
xrdb(1),
xlsfonts(1),
xclock(1),
dclock(1),
oclock(1),
tclock(1),
xscreensaver(1)COPYRIGHT
Copyright (C) 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
2002 by 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@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 Macintosh 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-Sep-2002 XDaliClock(1)