rmk icon indicating copy to clipboard operation
rmk copied to clipboard

Introduce a configuration matrix for key position specific information

Open tib888 opened this issue 5 months ago • 3 comments

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)
"""

tib888 avatar Aug 02 '25 15:08 tib888

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)
"""

HaoboGu avatar Aug 02 '25 17:08 HaoboGu

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.

tib888 avatar Aug 02 '25 18:08 tib888

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 😅

HaoboGu avatar Aug 03 '25 02:08 HaoboGu