New version of Watch - a typing/mouse monitor

Skip Montanaro
Sat, 14 Dec 2002 12:27:21 -0600

I'm sick of fiddling with Watch, so I'm announcing a new version.  (How's
that for arbitrary?)  Aside from fixing some annoying bugs and introducing
others, the most significant new feature is that it now coordinates activity
on multiple systems using a small XML-RPC server to keep track of idle time.
Here's a more complete description yanked from the docstring:

    Watch is a Tk-based program that monitors work and rest times for
    keyboard and mouse use to help users avoid overuse that can lead to or
    exacerbate repetitive strain injuries.  The user can define the duration
    of work and rest intervals.  In fascist mode, the user can't override
    the displayed rest window.  In friendly mode, a cancel button is
    available to allow the user to prematurely terminate the rest interval.

    Watch currently runs on Linux, Windows and MacOSX systems as long as
    Tkinter is available.  It's never been tried on MacOS 9, but there isn't
    any insurmountable reason why it can't be made to work there either.

In case you like the concept, there is still lots to do:

    * The code's a mess.

    * The state machine needs to be better separated from Tkinter so that
      other widget toolkits can be (more easily) substituted for Tkinter.

    * I believe there's a bug in the transition from the rest phase to the
      work phase, though I haven't looked closely at that.  Until you're
      happy that it's working reliably, you should enably its friendly mode
      so you don't get stuck with a cover window that won't disappear.

    * I don't know how well (or if at all) the XML-RPC server can be spun
      off from non-Unix platforms.

    * On non-Linux platforms keyboard activity can either not be tracked or
      in some situations can only be hinted at (e.g. the jiggle-mouse
      function for Emacs).

    * It's completely unpackaged.  Originally, it was a single file.  It's
      now three (two applications and a shared module).  The only way to get
      it at the moment is to use CVS.

Watch can be found at it's SF home:

Feedback is always welcome.

Skip Montanaro -