Configuration file for wayv
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
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 = Action.name the action sub-key "process =" is used to carry out commands.
The action sub-key "process =" can compose of three different commands:
1. exec "COMMAND TO EXECUTE GOES HERE" Starts a program 2. warp Jumps the mouse back to the initial start position of a gesture 3. delay "INTEGER OF SECONDS TO WAIT" 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 5. sendkey "SPACE DELIMITED ALIAS(ES) FROM KEYMAP FILE" Send a keypress to the active application or window manager. Its the same as a key been pressed on the keyboard. 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";
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.
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 activation - X, Y, WIDTH, HEIGHT always on screen input window X = Upper left hand corner the input window starts on Y = Upper left hand corner the input window starts on 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 set. - 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 - http://www.stressbunny.com/wayv