The point where we ditch the keyboard/mouse input combination for something more practical, ergonomic, and much cooler is fast approaching. One small step toward that destination -- at least on all things Linux -- is KGesture.Turn your computer keyboard upside down and shake it. If a fine sprinkling of pizza dust and burger bits don't materialize, it might mean that you have a social life. Barring the shower of food flakes, keyboards are still nasty things. Pound away long enough on one of them, and you may be asked to make a guest appearance at your HMO's physical therapy department.
That mouse sitting off to the side of your keyboard isn't much better for your physical health. Repetitive motion used in pushing around the ubiquitous pointing device can cause almost as much -- if not more -- damage than using a computer keyboard. And wiping the gunk off the trackball every few weeks really isn't as exciting as it may sound.
Sooner or later something better has to replace these inconvenient input devices. With the help of Open Source programmers like Mike Pilone, that change may come even faster than you think.
At the end of last week, Linux and Open Source news sites and mailing lists were buzzing with mention of Pilone's newest program, KGesture. The initial modest announcement posted to a KDE developer's mailing list:
I wrote KGesture the other day. It is a gesture recognition application for KDE 2. As far as I know, it is the first of its kind and offers something MS doesn't.
What KGesture offers is the ability to replace mouse clicks and keyboard commands with simple movements of the mouse. The program can interact with your KDE programs, even launching new applications as needed.
Gesture recognition with a desktop mouse is relatively new, but Pilone points out that the concept has some precedence in the computing world: "CAD apps have been doing it with a pen forever," he writes.
Instead of pointing and clicking your way through Konqueror, for example, simply moving the mouse a bit to the left could signal the program to go back one page. Drawing an "e" on the desktop might launch your email client of choice, and so on.
The program relies heavily KDE's Desktop Communications Protocol (DCOP), a fast interprocess protocol that, among other things, can be used to start applications. KGesture also takes advantage of Mark Willey's libstroke gesture library -- it's included with the archived file for download.
KGesture won't liberate users from the tyranny of today's input devices, but it's a step in the right direction. The program allows users to fully customize and record the strokes used to launch and interact with applications, cutting down on overall mouse movement, and eliminates a great deal of "click" from "point-and-click" interfaces.
Downloading and compiling KGesture was painless enough, the real task was getting comfortable with using the program. Years of hunt, peck, point, and click will not wash away overnight. It seemed that the program was a bit cumbersome at first, but a quick cleaning of the mouse underbelly took care of that problem.
The program's Gesture Wizard enables users to record up to 26 different gestures. I soon learned the two-pronged approach to working in harmony with KGesture: keep it simple (but not too simple), and for heaven's sake, pause!
Pilone recommends a minimum of three strokes per gesture. This prevents errors like the one I encountered when I mapped the "back" function on Konqueror to a simple "dash" movement. This caused a bit of trouble any time the mouse was moved. The problem was solved by re-recording that gesture as a lowercase "r".
Pause a second (approximately 150 milliseconds, for those with perfect timing) before making a stroke, then leave the mouse still for the same length of time after the stroke. This lets KGesture figure out that you've completed the gesture.
My initial experiences with KGesture involved making Konqueror move back and forth between pages. I do plan to use the program on a daily basis to simplify loading programs and performing repetitive tasks. Overall, I'm very satisfied with my first foray into the realm of gesture recognition, and with the performance of KGesture.
Pilone explains: "It started as a little adventure in stroke recognition, but people seem to like it." And, as he mentioned in his program announcement message, it's something that Microsoft certainly doesn't have for their graphical user interface.
This is just the dawn of alternative input methods for computers, and especially for Linux. With time and support, programs like KGesture will improve, as, I hope, will voice recognition software like IBM's ViaVoice -- or another alternative. In the next decade, it's entirely possible that the new standard input devices could be a mouse and a microphone.