LibStroke - a stroke translation library

LibStroke is a stroke translation library. Strokes are motions of the mouse that can be interpreted by a program as a command. Strokes are used extensively in CAD programs. I fell in love with them when I was using the CAD tools that use a stroke interface to select tools or perform actions. I wrote this library so that others can see how useful strokes can be and so that more programs take advantage of this extremely natural human-computer interface.

Mailing Lists

There are two mailing lists for LibStroke -- an announce and a development list. If you would like to join (or be removed) please email willey at


Tue Aug 7 2001 - Version 0.5.1, a bugfix release.

Get The Software

Projects that use LibStroke

Other Resources

  • "The Design and Implementation of a Stroke Interface Library". The paper tied for first at the 1997 IEEE Region 4 Student Paper Contest! PS or PDF.
  • A list of Sloppy Strokes that you can use to compensate for your imperfect stroke entry.
  • Reference Application: fvwm-2.0.45-stroke.tar.gz
  • Patch to fvwm-2.0.45: fvwm-2.0.45-stroke.patch
  • README/INSTALL for fvwm-2.0.45-stroke: fvwm-2.0.45-stroke.README
  • Stroke .fvwm2rc excerpt: fvwm2rc-stroke.txt
  • Original fvwm-2.0.45: fvwm-2.0.45.tar.gz
  • Soon to come! "Strokes support for PCB. Harry Eaton has integrated LibStroke into PCB, but it's not released yet.
  • wayV -- Another Free Software Stroke Project
  • TCL Stroke Implementation -- Another Stroke Recognition Project (scroll down)
  • Previous version: libstroke-0.5.tar.gz
  • Previous version: libstroke-0.4.tar.gz
  • Previous version: libstroke-0.3.tar.gz
  • Previous version: libstroke-0.2.tar.gz
  • Previous version: libstroke-0.1.tar.gz

    My home page, which contains contact info, etc, is