paulo@0: 2008-05-06 paulo@0: paulo@0: This is Jordan Sissel's 'keynav', modified by Paulo Ang. paulo@0: paulo@0: http://www.semicomplete.com/projects/keynav paulo@0: http://iacs5.ucsd.edu/~pbang/mouseless.htm paulo@0: paulo@0: Note that this is based on an earlier release of 'keynav', not the paulo@0: latest 'xdotool' based code. paulo@0: paulo@0: paulo@0: To build: paulo@0: paulo@0: Run 'xmkmf', then 'make keynav'. paulo@0: paulo@0: To run: paulo@0: paulo@0: Simply run 'keynav'. For a list of the default keys see 'config.h'. paulo@0: paulo@0: To configure keys: paulo@0: paulo@0: Modify 'config.h' and recompile. paulo@0: paulo@0: To configure even more: paulo@0: paulo@0: Modify 'keynav.c' and recompile. paulo@0: paulo@0: paulo@0: Hints: paulo@0: paulo@0: It's faster to use the "diagonal" movement keys, since they split the paulo@0: mouse area into four accessible parts, but the binary vi-keys is easier paulo@0: when you're just starting out or fine-tuning a small area. paulo@0: paulo@0: A good tactic would be to use the diagonal keys until the point you want to paulo@0: click on is exactly on the crosshairs (or the selection area is too small), paulo@0: then just use vi-keys to hone in. paulo@0: paulo@0: The nine-grid mode is even faster than the regular four-grid mode. paulo@0: Enable it by default by specifying '-n ' parameters to keynav, where paulo@0: is the number of moves before it automatically switches back to paulo@0: four-grid mode. Or press Shift-[center]. But you may want to hold off on paulo@0: using it until you get the hang of the four-grid mode first. paulo@0: paulo@0: You can have two instances of 'keynav' running simulataneously, as long as paulo@0: they have different trigger keys. You may want to do this to be able to use paulo@0: both home row keys and the numeric keypad to 'keynav', for example. paulo@0: paulo@0: paulo@0: About the statistics: paulo@0: paulo@0: 'keynav' outputs debug messages to stderr, and stats to stdout. Simply paulo@0: redirect to taste. 'hits' are the number of keys you've hit, 'moves' are the paulo@0: number of movements made, and 'clicks' are the number of mouseclicks paulo@0: not including simple clicks (ie, clicks that don't end the movement mode). paulo@0: paulo@0: paulo@0: If 'keynav' appears to hang: paulo@0: paulo@0: It's probably because of the drag mode, which can be buggy with some apps. paulo@0: A click from your real mouse will probably restore keyboard control, where paulo@0: you can kill 'keynav' and start it up again.