The SNAM Quick User Interface for Reticle Reduction Entry of Location (SQUIRREL for short) is a novel location input method which allows those who have trouble using the mouse (or simply don’t like using it) to quickly move the pointer using very few keystrokes.
SNAM stands for SQUIRREL is Not A Mouse.
Press and hold the SNAM modifier key. A reticle comprised of four translucent colored quadrants will appear over the currently focused window. Then push the SNAM zoom-in key corresponding to the quadrant in which your target is located. The reticle will be reduced in size to cover exactly that quadrant. Repeat until the center of the reticle is over your target.
If by accident you find the reticle in the wrong location, simply press the SNAM zoom-out key to back up one step, or release and re-press the SNAM modifier key to reset the reticle to its initial location.
Once the center of the reticle is in the desired location, clicking and scrolling is performed by pressing the appropriate SNAM action key.
The key to using SNAM quickly is to look not at the center of the reticle (which jumps around) but at your target (which stays put). The color of the quadrant which is over your target indicates exactly which zoom key to press next.
Any location on the screen can be reached in 10 or fewer keystrokes.
SNAM allows pixel-perfect accuracy with at most 10 keystrokes per relocation. Of course, most applications need less accuracy and thus fewer keystrokes. For example, switching to a different window typically requires no more than 4 keystrokes.
SNAM does not currently support drag-and-drop. This feature is desired by SNAM’s author and is thus in the works.
SNAM “freezes” the display while the reticle is active (though not while clicking or scrolling actions are being performed). This does not bother the author in the slightest (since he does not use SNAM but rather a trackball to play Starcraft) and will likely not change.
SNAM gets confused when Num Lock is on. Turn off Num Lock, or include Num Lock when setting up the SNAM modifier. It may be possible to run two instances of SNAM simultaneously – one configured with Num Lock, one without – if you really need to.
SNAM doesn’t work with locking modifiers (meaning that you must hold the SNAM modifier rather than click to enable and click to disable). If there is demand the author will remedy this.
There is a bug in (at least) GCC 4.5.3 which results in a broken SNAM being built. Upgrade (or downgrade) your GCC if this is a problem.
SNAM currently only runs on GNU/Linux based systems. A Windows
version is in the works, but I have to figure out what things like
lpfnWndProc mean first.
Download the latest snapshot, or
darcs get http://hub.darcs.net/squirrel/snam/.
apt-get install libxcb1-dev libxcb-render0-dev libxcb-render-util0-dev libxcb-xtest0-dev
(or the equivalent on your distro).
SNAM is just a single binary,
snam. Just stick it in a
directory somewhere (say
/usr/local/bin) and add it to your
file (or wherever you configure programs to start at startup).
SNAM does not require a restart of X to run. You can run it
at any time, so long as you kill the previously running instance of
Important: You will also need to assign keys to X11’s
mod3 modifier (or whatever you have configured SNAM to
xmodmap in order for SNAM to work. For
example, if you wish to assign Caps Lock to SNAM, run
xmodmap -e 'remove lock = Caps_Lock' -e 'add mod3 =
Caps_Lock'. You will also need to add this to your
.xinitrc, before the line that executes SNAM.
Alternatively, you can place the above
add commands in your
~/.Xmodmap file (on
separate lines), and add
xmodmap ~/.Xmodmap to your
.xinitrc if your distro does not load it
SNAM is configured entirely on the command line. Run
--help to see a list of options, or run the
snam-config program (which requires the
package to be installed) to interactively create a command line.
Important: If you wish to use Caps Lock as the SNAM
modifier, you must first use
xmodmap (as explained above) to map Caps Lock to a modifier
Hold down the SNAM modifier key (Caps Lock if you configured SNAM
xmodmap as described above – or try SNAM
live by pressing Control on this web page!). The default
SNAM grid looks like this:
|zoom NW||zoom NE||scroll up|
|zoom SW||zoom SE||scroll down|
This grid is overlaid on the keyboard in three different positions by default. QWERTY users will find this one useful:
|space bar or /|
DVORAK users can use this grid:
And fans of the number pad can use this grid:
Of course, you can use
snam-config to reconfigure the
SNAM keyboard layout to your liking.
SNAM was written by Chris Pacejo. Feel free to send me e-mail if you have questions, suggestions, bugs, or fixes.