xwrits - reminds you to take wrist breaks


xwrits [-display display] [typetime=time] [breaktime=time] [other options]


Xwrits reminds you to take wrist breaks for prevention of repetitive stress injuries. When you should take a break, it pops up an X window, the warning window. You click on the warning window, then take a break. The window changes appearance while you take the break. It changes again when your break is over. Then you click on the window and resume typing. Xwrits hides itself until you should take another break.

Xwrits's graphics are brightly colored pictures of a wrist and hand. The hand clenches and spreads ``as if in pain'' on the warning window, slumps relaxed during the break, and points forward valiantly when the break is over. It is trapped behind bars while the keyboard is locked. Other gestures are included: see +finger below.

Xwrits normally works on the honor system: you can type while you should be taking a break. However, an option makes it actively prevent you from typing by locking the screen. See +lock below.

A simple timing method is used to determine when you should next take a break, sort of like an alarm clock. The typetime option changes the amount of time between breaks. Default is 55 minutes. Xwrits does notice when you leave your workstation idle, however. See +idle below.


It is easy to put the warning window aside ``for 5 minutes'' and ignore it for fifty. Xwrits can escalate its activity over time, making it harder to ignore.

This is done with the after delay-time option. All options following after only apply after you have ignored the warning window for delay-time. In other words, Xwrits's behavior escalates after delay-time. For instance, with this command line,

	xwrits flashtime=:2 after 10 flashtime=.03
the warning window will begin flashing very quickly if it is ignored for 10 minutes.

Any options specified preceding an after option also apply following it. You may explicitly cancel such options, however. For example:

	xwrits +finger after 10 -finger

You may have more than one after option. This creates a series of escalations.


All options may be abbreviated to their unique prefixes. Some may be abbreviated further, in which case the smallest legal abbreviation is shown [in brackets]. Time arguments are expressed in the form minutes:seconds.fraction, where any of the parts may be left off. ``2'' is 2 minutes, ``:2'' is 2 seconds. Options are processed from left to right.

Many options are listed as +option (-option). A + turns the given behavior on; - turns it off. Only the on behavior is described. Off is the default for each toggle option except idle. You can leave off the + sign if you like: ``xwrits +finger'' and ``xwrits finger'' are equivalent. Non-toggle options may be specified with arguments after an equal sign or with an argument following in the list. That is, ``xwrits breaktime=2'' and ``xwrits -breaktime 2'' are equivalent.

-display display
Which display to run on.
typetime=time [t]
The amount of time between breaks. Default is 55 minutes.
breaktime=time [b]
The amount of time a break lasts. Default is 5 minutes.
See Escalation above. The default for delay-time is 15 minutes.
+beep (-beep)
Xwrits will beep when the break should begin and again when it is over.
+breakclock (-breakclock)
A clock will appear in the resting window showing how many minutes remain in the wrist break.
+clock (-clock)
A clock will appear in the warning window showing how many minutes you've put off the wrist break.
+finger (-finger) [f]
The warning window will be rude to you.
The amount of time between flashes of the warning window. Default is 2 seconds.
+flipoff (-flipoff)
Synonym for +finger.
+frugal (-frugal)
Xwrits will use less server memory by destroying some of the pictures when they are not needed. This makes it a little slower, but may be useful for problematic X terminals.
+iconified (-iconified)
The warning window will appear already iconified, not as a separate window.
+idle[=time] (-idle) [i]
When idle is on, xwrits will monitor your typing and adjust its actions accordingly. For instance, no warning window will appear if you leave your workstation unattended. Also, if you stop typing while a warning window is active, but forget to click the warning window, xwrits will automatically start your wrist break. Xwrits waits until time has gone by without a keystroke before starting the break in this case. Default for time is 2 minutes. idle is on by default.
+lock[=jump-time] (-lock)
Xwrits will lock your screen until your break is over. You can prematurely disable the lock and get a normal warning window by typing your password (see password below). The jump-time argument specifies how fast the screensaver will move; default is 8 seconds. If the keyboard has been grabbed by another application when the lock is attempted, the lock will fail and a normal warning window will appear instead.
No more than num warning windows will appear on your screen simultaneously. Normally, there will be only one warning window, but see +multiply below. Num cannot be less than 1, or more than 137. Default is 25.
+multiply[=breed-time] (-multiply) [m]
A new warning window will be created every breed-time. Default for breed-time is 2.3 seconds.
+noiconify (-noiconify)
The warning window will not allow itself to be iconified.
+nooffscreen (-nooffscreen)
The warning window will not allow itself to be moved off the screen, not even partially. This option does not work correctly with virtual-desktop window managers.
The password you type to unlock a locked screen (see +lock above). Xwrits does not protect this password from intruders. Therefore, do not use a password you must keep secure. Default is ``quit''.
+top (-top)
The warning window will continually place itself on top of the window stack.


Here is the way I run xwrits:

	xwrits typetime=40 finger after 15 clock multiply=5:1.4

This looks pretty spectacular:

	xwrits t=0 b=:2 f fla=.5 m=.3 max=100


Eddie Kohler,

Idea for idle processing code from xautolock, by Stefan De Troch and Michel Eyckmans


Xwrits does not use the X resource database at all.

More options might be nice. So might more careful screen locking and password protection and user-specifiable pictures. I would like to include rude finger gestures from other cultures, but I'm not sure how to render them.

Please send any bugs, comments, or suggestions to me.

Yes the misspelling is intentional.

Yes it's my left wrist.