So, Here’s a fun one.
TLDR: I tried implementing caps on multi-touch keys in the touch editor, but I specifically can’t do a nextlayer jump from a double-tap to rightalt-caps
. It lands on the wrong layer.
- Code here: keyboards/release/sil/sil_cameroon_azerty at master · MattGyverLee/keyboards · GitHub
- The bug affects the four multi-touch keys I marked as
T_CAPSRC
.
Before implementing caps
, the Cameroon Keyboards’ keys already returned to the default
layer after typing something capital or special (i.e. typing an ‘ɛ
’ on rightalt
outputs the letter, then returns to the default
layer.). With existing default
, shifted
, and rightalt
layers, implementing caps
and getting all the nextlayers right becomes…complex. See below for my map:
- I first duplicated my
shift
later to becomecaps
, made a few changes to the top row, and then removed all of thenextlayers
from individual keys in the touch editor. - I duplicated the
rightalt-shift
layer to createrightalt-caps
, and set thenextlayers
torightalt
for individual keys in the touch editor. - Finally, I duplicated
symbol
to makesymbol-caps
(I don’t want going to symbol to cancel caps), and sent thenextlayers
tocaps
.
I got to work making the modifier keys jump correctly, but I ran into problems with four multitaps.
I can’t use a double-tap to jump to rightalt-caps
from rightalt
or rightalt-shift
, but I can get there by going to caps
from default
first and then to rightalt-caps
via the Cameroon key.
I have made a new testing table, the whole set is described below:
Once it is fully working, I need to retest my symbol-caps layer which is hard to access.
I’ve had issues in the past with nextlayers
configured in touch not going where they were supposed to, and got around it with a > nextlayer()
rule in the code, but I tried that and it doesn’t seem to be working now. Is this another lazy selector (Marc’s words, not mine)?
In case K_CAPS
was a reserved string (keyman/keyboardProcessor.ts at 65770747a3c71ceaec99758c1e2a64f158a69a7a · keymanapp/keyman · GitHub), the broken keys now have a KeyID of T_CAPSRC
. Still no luck.
I am currently only testing Cameroon Azerty. My current changes are on the master branch of my personal public fork.
So…
Any ideas to make it right? Any ideas if you make code changes to keep this backward-compatible with KM15?
KM Dev 16.0.92
. Windows 11, testing on Chrome for iphone and Android.
~Matthew