Keyboard Primer

Hex-map uses the ANSI keyboard for all of its user input
There is no mouse, no menus or buttons or scroll-bar or other windows based controls
All the input functionality needed in a GUI is provided through the keyboard
The absence of the mouse from the UI
reduces cognitive load which simplifies the UI


Figure 1. The keyboard map for a full-sized ANSI keyboard

Coarse screen-space navigation
The keys shown with a red outline in Figure 1.,
the alpha-numeric keys of the keyboard
all the alphabet keys and the numbers and characters
form a trapezoid ("trap")
The trap's 4 rows are directly mapped to the hex-grid at a certain grid scaling.
The trap serves as a large discrete mousepad.
It's function is coarse screen-space navigation
which is sufficient for most common UI functions.
The trap is mapped 1:1 to the grid
so screen-space navigation is at intervals of about the size of a physical key

Figure 2. The trap mapped to an onscreen grid

The trap maps to a trapezoidal area that is a subset of the on-screen hex-grid
To make all points on the screen accessible via the trap-map
a mechanism is provided to move the map both vertically and horizontally
The map is shifted using the '~' key, in the top left corner
A single tap shifts vertical, a double tap shift horizontal.

Figure 3. The trap-map shifted vertically

Fine-grained screen-space navigation
This is provided by 6 keys, 3 each on the left and right edge of the keyboard.
The Tab, Capslock and Shift keys on the left edge
and the '\' Enter and Shift keys on the right edge.
These keys control the movement of a cross-hair on the hexagonal grid at unit-resolution.
They are like arrow keys for the hexagonal context
Since a hex-grid has 3 axis, 6 keys are well suited to traverse it.

Figure 4. Sub-trap refinement happens on this grid

Selection
Once a point has been navigated to using the controls described above
it is selected by execute (the space bar) which is equivalent to a mouse click.

Hex-map's base controls
The escape key at the top left corner is a designated app exit key.
|
The key at the bottom left corner of the keyboard is a designated "mode-switch" key.
It enables switching the mode of operation of the UI
from trap-baesd navigation/selection to something else which depends on the app.
These base controls are sufficient for on-screen space selection using a keyboard.

Key's available for mapping by an app
All the keys shown with a '?' in Figure 1.
can be used by an app for direct-mapped controls,
all the function keys, the Backspace key
2 keys in the right bottom corner in the space bar row
and the key to the right of the left bottom corner in the space bar row
Direct-mapped controls are more efficient than on-screen controls
and can be used for the app's more frequent UI functions.

Designing for the keyboard
Hex-map UI design involves designing a UI mode
which means a specific mapping of the keyboard's keys
that meets a desired UI function
keeping in mind the conventions described above.
For example, a "zone" UI mode
breaks the keyboards set of keys into a central zone around the 'H' key
and six zones surrounding the central zone
corresponding to a ring of hexagons surrounding a central hexagon.
Such a mode can be used to provide a menu style selection
with a central menu item and 6 surrounding menu items.
Since a UI mode is easy to implement
many such modes can be designed, implemented and tested
Hex-map will provide a library of UI modes designed by us
and a simple way to put them together to form a UI