For some reason, mouse gestures have never fully caught on with desktop users. Movements of the mouse that launch a command or simulate a combination of keys are ideal for those who prefer not to move their hands constantly between the mouse and the keyboard, or who have trouble typing because of some physical challenge. Yet many users have never heard of mouse gestures, and they are apparently so little in demand that, nine months after the KDE 4 releases began, KDE has yet to implement any of the software or settings that enabled mouse gestures in earlier versions of the desktop. Meanwhile, GNOME has never had more than a limited selection of gestures available in the Mouse Preferences -> Accessibility tab. Under these circumstances, the recent releases of Easystroke and Gestikk are welcome additions to the desktop. Similar to each other in operation and layout, either is a reasonably satisfactory way to set up and manage mouse gestures.
Currently at version 0.2.2.1, Easystroke is available in .deb packages for Ubuntu Hardy and Intrepid from the developer's site. Now at version 0.6, Gestikk also comes in a package for Ubuntu, although one that lacks dependency resolutions, and therefore requires you to install python-virtkey, python-kiwi, python-notify, and python-pyparsing before it will run. In addition, both Easystroke and Gestikk are available as source code. Easystroke also gives you the download option of a tar file with statically linked dependencies. For testing, I took the simple route and used the Ubuntu packages.
If you intend to use mouse gestures all the time, you will probably want to configure your desktop to run them at startup. In GNOME, for instance, you can add Easystroke or Gestikk to System -> Preferences -> Session -> Startup Programs, while in KDE, you should add them to System Settings -> Advanced -> Autostart. Other desktops may also support the two programs, since both work with a number of window managers.
Setting up and using mouse gestures
When running, both Easystroke and Gestikk have a similar set of options and functions. Each displays an icon in your panel's system notification tray, which you can click to configure or run the program.
In Easystroke, go to the Actions tab and click the Add Action button to set up a mouse gesture. You start by giving the action a name, then defining its type -- in most cases, whether it will start a command or emulate a series of keystrokes, although you have additional options for simulating scrolling or clicking a button. If you choose a command or a series of keystroke, you enter it or them under the argument column, and only then do you define the mouse gesture by clicking the Record Stroke button.
As the popup dialog informs you, you define a gesture in Easystroke by moving the mouse any place on the screen while holding the mouse button that indicates a gesture is in progress when it is pressed. When you are finished, the gesture appears in the Stroke column on the left side of the table in the Actions tab.
Similarly, you enter gestures in Gestikk from the Gestures tab of the Configuration window. As soon as you click the Add button, Gestikk opens a small window in which you must draw the mouse gesture twice. Move the mouse too quickly, or too little, or fail to make the same gesture in your two efforts, and you receive feedback in strained English to help you correct your mistake. Once you succeed in getting Gestikk to accept your gesture, you move on to another dialog to choose a command or "keypress," and on to a third to enter the details of your selection. From there you can test your gesture before accepting the gesture. Although on my machine, Gestikk intermittently opened two instances of the second dialog -- only one of which worked -- the main difference in the processes of the two applications is that Gestikk's is more orderly.
Another difference is that, while Easystroke displays a small illustration of the gesture on the same tab as other information about it, Gestikk requires you to click the View gesture button for a view. However, this advantage for Easystroke is counterbalanced by the fact that Gestikk clearly shows the starting point of the gesture, a small touch that makes it easier to reproduce the gesture.
Whichever of the two programs you use, defining a gesture is the slowest part. Once you have one set up, to use it all you need to do is retrace it on the desktop. However, you may want to keep the configuration window of the program open as a crib sheet until you have memorized your gestures.
Easystroke and Gestikk offer similar sets of options. Both allow you to set the mouse button that activates a gesture, and the minimum length of the mouse movement that activates the program, and in both you can have a mouse gesture appear on screen while you are making it -- an option that can be invaluable if you are having trouble duplicating the gesture you set.
In addition, both programs support scripting. However, only Gestikk provides a Quick Start guide that gives you examples of how you can modify the behavior of each gesture with scripting. You can, for instance, set mouse gestures to work only on a particular workspace or when a particular window is open. Gestikk also includes the option of displaying error messages and notifications either on the screen or as balloon help. Easystroke offers statistics about how each gesture is used, a feature that seems to have limited use at best.
Choice is good
Neither Gestikk or Easystroke has reached its first major release. Working with both, I experienced several crashes, delays when using the interface, and instances when making a mouse gesture crashed the programs.
Still, the potential of each is strong. Both are simple yet effective programs, and, while I have a mild preference for Gestikk, Easystroke is not far behind. As soon as each application stabilizes, it should be a welcome addition to the desktop.