Introduce a configuration matrix for key position specific information
It could hold information about the location of the home row, the left/right hand, and maybe timing settigs, which all can be useful for fine tuning HRM. Other ideas are wellcome!
My idea is to config these in the optional 'third coordinate' of the matrix_map:
matrix_map = """
(2, 0) (2, 1) (1, 2) (1, 3) (1, 4) (1, 5) (1, 6) (1, 7) (1, 8) (1, 9) (2, 10) (2, 11)
(3, 0) (3, 1) (2, 2) (2, 3) (2, 4) (2, 5) (2, 6) (2, 7) (2, 8) (2, 9) (3, 10) (3, 11)
(4, 0) (4, 1) (3, 2) (3, 3) (3, 4) (3, 5) (3, 6) (3, 7) (3, 8) (3, 9) (4, 10) (4, 11)
(4, 2) (4, 3) (4, 4) (4, 7) (4, 8) (4, 9)
"""
'L'/'R' to set the sides, upper case for the home row, lower case elsewhere:
matrix_map = """
(2, 0, l) (2, 1, l) (1, 2, l) (1, 3, l) (1, 4, l) (1, 5, l) (1, 6, r) (1, 7, r) (1, 8, r) (1, 9, r) (2, 10, r) (2, 11, r)
(3, 0, l) (3, 1, L) (2, 2, L) (2, 3, L) (2, 4, L) (2, 5, l) (2, 6, r) (2, 7, R) (2, 8, R) (2, 9, R) (3, 10, R) (3, 11, r)
(4, 0, l) (4, 1, l) (3, 2, l) (3, 3, l) (3, 4, l) (3, 5, l) (3, 6, r) (3, 7, r) (3, 8, r) (3, 9, r) (4, 10, r) (4, 11, r)
(4, 2, l) (4, 3, l) (4, 4, l) (4, 7, r) (4, 8, r) (4, 9, r)
"""
Adding "l/r" for tagging hands looks good to me, but I don't like using capitalized L/R for HRMs, because l and L in the matrix map are hard to distinguish
I prefer something like
hrm_keys = "a s" # or ["A", "S"] or "mt!(A, LShift) mt!(S, LGui)`
or
matrix_map = """
(2, 0, l) (2, 1, l) (1, 2, l) (1, 3, l) (1, 4, l) (1, 5, l) (1, 6, r) (1, 7, r) (1, 8, r) (1, 9, r) (2, 10, r) (2, 11, r)
(3, 0, l) (3, 1, l, hrm) (2, 2, l, hrm) (2, 3, L) (2, 4, L) (2, 5, l) (2, 6, r) (2, 7, R) (2, 8, R) (2, 9, R) (3, 10, R) (3, 11, r)
(4, 0, l) (4, 1, l) (3, 2, l) (3, 3, l) (3, 4, l) (3, 5, l) (3, 6, r) (3, 7, r) (3, 8, r) (3, 9, r) (4, 10, r) (4, 11, r)
(4, 2, l) (4, 3, l) (4, 4, l) (4, 7, r) (4, 8, r) (4, 9, r)
"""
This is definitly not good:
hrm_keys = "a s"
If you switch default layers between Qwerty, Colemac or Dvorak, such configuration makes no sense, that is why i want to have positional config.
I doubt that does the people who switches between qwerty/devorak/.. exist? I have to admit that I don't have experience on switching layout on a single keyboard 😅