Calibration Primer

Since hex-map uses a map of the physical keyboard to an onscreen hex-grid
and this map is effected by the size and layout of the keyboard and the screen size and resolution.
In the presnce of many variations in these parameters
hex-map has to initialise itself based on the values of these parameters
For example, a retina resolution screen will have smaller hexels
and inter-key spacing will map to a larger scale of the hex-grid
than a regular resolution screen
Similarly, on laptop keyboards, the 'H' which is at the center of a keyboard
may not align with the center of the screen which is the origion of the hex-grid
The grid's origion may have to be shifted to align it with the 'H' key.
On the implementation side,
while wxWidgets provides for unicode values for key presses
that are compatible across platforms
this is not true for all the keys
There is no way to differentiate between a right shift and left shift key
In the space bar row, Apple keyboard's follow a different convention than PC keyboards
While Apple has the Command keys, Windows PCs have the Control keys
Most of the ambiguity is in the space-bar row.
Based on a brief analysis of these variations,
we have identified the following parameters that need to be calibrated

The right shift key
All the control keys in the space bar row
The size in inches of the display's screen diagonal
The width in inches of the Tab row of the keyboard
The horizontal shift in pixels of the onscreen keyboard to align it with the onscreen grid
For laptops, the horizontal shift in pixels of the grid origion to align it with 'H'

We are in the process of developing an app to calibrate any given system