Qwo

Original idea by Pr. Ken Perlin.
Author : Charles Clement <caratorn@gmail.com>

This project is an implementation of Quikwriting, an efficient way to input
text for hand-held devices almost without picking your finger off the screen.
For information about QuikWriting, take a look at
http://mrl.nyu.edu/~perlin/demos/quikwriting.html

INSTALLATION:

qwo needs imlib2 and libconfig libraries.

You will need to install illume-config-illume to change the default keyboard on
the Freerunner. Deactivate Qtopia keyboard by adding the line:
export QTOPIA_NO_VIRTUAL_KEYBOARD=1
in the file /etc/X11/Xsession.d/89qtopia and restart the X server with:
/etc/init.d/xserver-nodm restart
Then click on the wrench, keyboard configuration utility and select qwo.


USAGE:

Every normal gesture for printing the characters that are displayed by default
starts and ends in the middle region of the screen. To input the character that
is in the center of a region, start with your finger/stylus in the middle
region, enter the one the character is in and go back to the center. To display
the character that is on the left of the middle one, start in the center, go in
the region and then to the adjacent region on the left and then in the center.

Gestures are handled with key presses and thus should be strong enough.

Numbers are issued with a press on the corresponding region of a numeric keypad,
except for the 0, currently issued by entering the center region and releasing
in the one below.

The arrow is a modifier and will change the case to uppercase for the next
inputed character; extending the gesture one region past its normal destination
will lock the case to upper, to return to lowercase, issue the arrow again.

The left < and right > of the center area are, respectively, the delete and
space.

Other characters can be obtained without beginning and ending in the center, the
current keymap for these can be displayed on the screen by going in the middle
left region, then the one below and release. The same gesture will take you back
to the normal screen. The P represents paste.

You can specify the window position and size by setting the geometry option
either in the config file or on the command line. Format is
[size][{+-}<xoffset>[{+-}<yoffset>]], if {x,y}offset is negative it will position the
window relative to the right or bottom edge.

You can resize the window by issuing a gesture starting in one of the outer
region, going to all other regions except the center one and ending past the
starting one. The incremented size is multiplied by the number of region past
the starting one where you lift your finger. Issuing this gesture clockwise
grows the window, counter-clockwise shrinks it.

It is possible to customize the layout by adding a configuration file in your
home directory named .qworc or with the command line switch -c <file_name>.  You
first need to install libconfig (http://www.hyperrealm.com/libconfig/).  An
example configuration file for a French layout is provided in data/qworc. You
can access these characters by issuing a normal gesture and instead of going
back to the center, go back to the first region entered.

These characters also need to be mapped on the keyboard.

The definitions for the letters are the ones defined in /usr/include/X11/keysymdef.h
without the "XK_" prefix.

Finally it is possible to change the color of the letters (foreground), the
background and the lines (delimiter-color). Colors can be specified as X11 color
names or as a RGB triplet in hexadecimal format prefixed with the string "0x".
