Hey,
Concerning the rollover detection, has anyone tried considering the duration of the overlap ?
FN ----------------------
KEY ------------------
x y z
Using some user-defined constants DX, DY, and DZ, how about:
if (x > DX || y > DY) ismod = true;
if (x + y > DZ && z == 0) cancel = true;
From what I gather, in the current implementation only the part "x > DX" is considered for "ismod". Using this version would allow setting a higher value for DX, reducing the number of mis-fn triggers. After all, the main thing that matters is the duration between the press of the modified key and the release (if any) of space bar (fn).
I point this out also because I would not just put arrows or navigation (vi input is here to do that better), or even worse rather useless media keys in the fn layer, but actual letters (éčā etc.) and programming symbols ([]#{} etc.). So speed matters just as with any regular key. As of now, I'm using a layout with a dead key for that (since the last 12 years or so - and yes, I'm totally anti AltGr, never at the same place on different keyboards, and requiring way too much stress on the thumb to activate it except for a few keyboard designs, mostly ISO - and ANSI is far more ergonomic than ISO for everything else).
Any thoughts on this modification of algo ?
Note that I haven't tried the scripts here yet, so I'm speculating for now.