Different Gesture Matching Techniques

wayV has two different techniques for matching gestures, overtime this will expand.

The key to set is Think, of which there are two possible options:

        1. Pda
                It works well and can recognize over 40 different
                gestures. It doesn't take into consideration the
                direction the gesture is drawn in. Note this will
                always find a matching gesture - even if its very
                baldy wrong.

        2. Pda & Vector
                Like Pda above except it takes direction into
                consideration. It works at the moment but further
                work is required.

                The direction is recorded in the Gesture sub-key
                vector, which is comma delimited and set-able to
                N, NE, E, SE, S, SW, W and NW

Configuring Gestures & Actions

The main, and required, configuration file is called "wayv.conf". When you read the words "configuration file" from here on presume its wayv.conf.

In wayv.conf you'll primarily be interested in the Action sub-sections.

Every gesture has an action associated with it - to find out what action is associated with what gesture have a look at a Gesture section - they start with the text "Gesture {" and end with the text "}", e.g.

Gesture {
		name = "A";
		description = "A";
		shape =
		 0, 0, 0, 0, 1, 0, 0, 0
		, 0, 0, 0, 1, 1, 1, 0, 0
		, 0, 0, 0, 1, 0, 1, 0, 0
		, 0, 0, 1, 0, 0, 1, 0, 0
		, 0, 1, 0, 0, 0, 0, 1, 0
		, 0, 1, 0, 0, 0, 0, 1, 0
		, 1, 1, 0, 0, 0, 0, 1, 1
		, 1, 0, 0, 0, 0, 0, 0, 1
		vector = NE, SE;
		action = "Action A";

Every Gesture section has a sub-key called "action =", the text between the quotes (after the equal) is the Action section associated with the gesture.

The vector sub-key is a new addition in 0.2.

Every action section starts with "Action {" and ends with "}", e.g.

Action {
		name = "Action A";
		process = exec "netscape";
		match = "";

The action sub-key "name =" is how a gesture is matched with an action. When Gesture.action = the action sub-key "process =" is used to carry out commands.

The action sub-key "process =" can compose of three different commands:

                Starts a program

	2. warp
                Jumps the mouse back to the initial start position of
                a gesture

                Wait so many seconds (useful when combined with sendkey)

        4. kill
                Kill the last command executed by wayV, this is handy
                for canceling mismatched actions

                Send a keypress to the active application or window
                manager. Its the same as a key been pressed on the

                An example of a composite keypress is:
                        sendkey "Control_L+c c"
                (see HOWTO-wayv-keymap for more information)

and there can be multiple commands each separated by a comma, e.g. process = warp, exec "xcalc", sendkey "o n e";

Activating Gesture Capture & Processing (was Mouse Activation)

When using wayV you need to press specific key and mouse button combinations to activate gesture capture. Once a gesture is captured its checked to see if there are any associated actions.

The key in the configuration file to setup what actives the gesture capture is the "Launch =" key. It can have multiple parameters each seperated by a ",". The parameters are:

	Mx (where x is any number greater than 0) = Which mouse
	                     button must be held down when
			     drawing a gesture
	SHIFT = Shift Key
	LOCK = Caps Lock On/Off
	CONTROL = Control Key
	MOD1, MOD2, MOD3, MOD4, MOD5 = Other keys which can
	                               be assigned with the
	                               unix command 'xmodmap'.

An example of the setup wayV requires to begin gesture capture when mouse button 1 is held down is:

Launch = "M1";

Another example to begin gesture capture when the Shift key and mouse button 2 is held down is:

Launch = "M2,SHIFT";

A final example for when the Shift key, the Control Key and mouse button 3 is held down is:

Launch = "M3,SHIFT,CONTROL";

Note: There CAN only be one mouse button used as part of activation, i.e. you cannot hold down multiple mouse buttons but multiple keys pressed at once can be setup and used.

Controlling The Display

The display has been considerably improved and rewritten for version 0.2.

The structure that has to contain the keys for the display is called Pretty. We'll go through each key in it in turn, note that some of the keys do interact with each other and change the overall result:

        1. display
                This is the main key - controls what type of
                gesture input window, if any, appears. When a
                gesture input window appears the path followed
                by the pointer through it should be shown.

                Can be set to:
                        - yes
                                full screen input window that
                                pops up on gesture activation
                        - no
                                no input window but the gestures
                                are still capture on gesture
                        - X, Y, WIDTH, HEIGHT
                                always on screen input window

                                X = Upper left hand corner
                                    the input window starts
                                Y = Upper left hand corner
                                    the input window starts
                                WIDTH = width of the input window
                                HEIGHT = height of the input window

        2. managed
                Turns on or off whether the window manager attempts
                to control the input window. This is only relevant
                for input windows that has the X, Y, WIDTH, HEIGHT

                        - yes
                                input window is exactly like all the
                                other applications on your desktop
                        - no
                                the input window cannot be moved or
                                managed. This is handy for PDAs (personal
                                digital assistants)

        3. color
                Not yet usable

        4. size
                If an input window is used this controls the width
                of the lines drawn by the gesture path.

        5. feedback
                A very handy feature which I think is quite handy. If
                its on a text box appears in the middle of the screen
                after a gesture is inputted.

                The text box tells the user what Action is matched with
                the inputed gesture.

                        - yes
                                Especially handy if used in combination
                                with a gesture for the kill command (see
                                above in "Configuration Gestures & Actions")

                        - no
                                no user feedback box

        6. wait
                Length of time the user feedback, if its on, appears
                on the screen.


Right that should be enough to get people started. Have a look at the wayV website for more information and at the mailing lists for further help.


wayV was written by Mike Bennett (smoog at stressbunny dot com) with contributions from various others.


wayV -

RELATED TO wayv.conf…