ONESTROKE
Changes
0.8.2:
- This version now comes bundled with a gesture profile.
- The user interface received a tune up.
- More and much needed documentation. 0.8.1:
- Fixed some ugly bugs affecting Trapezoid recognizers, they are much more reliable now!
- Added Trapezoid Composite recognition mode. 0.8.0:
- Initial release.
Description
OneStroke is a gesture-based character input program. Gestures consist of one mouse stroke drawn on the program drawing pad. Each gesture symbol has an X11 keycode and modifiers associated with it. A keyboard event is generated using the XTest extension and sent to the focused window with each gesture.
All symbol manipulation is done via the GTK GUI. Symbol sets are stored in 'profiles' and can be modified, saved, and loaded via the Symbols window. Profiles are saved as files in the "~/.onestroke-0.8" directory. You can access this window by right clicking on the drawing pad and going through the context menu.
The gesture recoginition method and feedback drawing mode can also be set via the context menu. The methods are all homegrown and some of them are still very experimental. As of version 0.8.1 all Trapezoid methods are extremely reliable.
Recognition Methods
Default (Trapezoid Composite)
Combines the two Trapezoid methods for better reliability.
Scale Dependent (Trapezoid Distance)
Finds distance between symbol graphs by finding the average distance between
the pens of each graph over time. The graphs are normalized by length to
make this comparison possible.
Scale Independent (Trapezoid Angle)
Similar to the previous method, this variation uses segment angle difference
instead of pen distance. It is naturally impervious to scale differences.
Experimental (Node Distance)
OneStroke comes with an experimental nodification function which attempts to
place nodes at important positions along a graph in the hope that these will
be unique. The nodification function used currently places nodes after a pen
has turned more than a certain number of degrees ignoring minor fluctuations.
The new node graphs are then matched by A) having the same number of points,
and then B) the average distance between corresponding points. The
nodification function is still glitchy keeping this method from being very
reliable.
Creating and Modifying Gestures
Gestures must consist of one pen stroke only. While the bundled profiles are perfectly functional, you should create or modify the gestures to best suit your personal preferences.
To create a gesture right click on the main window, select "Symbols..." and click "New" to the right of the "Symbol:" label. A new blank symbol has now been created but may be off screen, scroll the window to find it (it will be selected and say 'none'). Select the key events and modifiers that should be generated on the right pane. Now simply draw the stroke you wish to associate with this key event on the main window. Deselect the icon or close the symbol window and you can now try out your new gesture!
To modify a gesture, open the symbols window, scroll to find it and select it. You can now change key event properties and draw on the main window to change the associated stroke.
Default Profiles
These profiles are bundled with the program and are installed into empty user profile directories. You can create your own by typing a new name into the profile name box in the Symbols window and clicking Save.
risujin
This is my personal gesture profile. The gestures are configured to resemble
handwriting as closely as possible. Additional gestures are provided for
control keys (arrow keys, backspace, etc).
Author
If you have any questions or comments please feel free to contact me. I'd like to hear about bugs and feature requests!
Copyright 2006 Michael Levin <cyren@mn.rr.com> http://www.missirina.com/risujin/onestroke.php
The OneStroke icon was created by Eugenia Loli (http://eugenia.blogsome.com/).
