Can anyone here describe the QMK mod-tap behaviour that gets the “tap” keycode held?
Since that wasn’t very clear, I’ll eleborate. I understand that QMK has a version of DualUse/SpaceCadet/Qukeys that allows the user to get a repeat (i.e. hold) of the “tap” keycode, and I’m working on adding a version of this functionality to Qukeys. My question is this: If I have a QMK mod-tap shift/x key, and I tap it and quickly press and hold it, what happens? Does the keyboard send a report with x, then one without it, then another with x again? Or does it just send one report with the x? Or is it more complex?
I’m thinking of having it do two different things if a Qukey is pressed twice in quick succession — a double tap (press, release, press, release) should produce four reports, resulting the “tap” character being repeated, but a tap, then press+hold (press, release, press, hold) will behave as if the user simply pressed the key for the “tap” keycode once, and held it.
The reason for the second behaviour is that on macOS, in apps that use Apple’s Cocoa input system, a press+hold brings up a menu of accented characters, and it would be annoying to get eé every time you want to simply type é.
Thanks! One follow-up question: in the short, long case, if you hold the second press long enough to get x repeating, does the half-second pause happen after the first x or the second one?
@merlin I’m not entirely sure what you’re asking about, but in case this is useful:
On my qmk layout, I have a set up as as layer 2 on hold. Double-tapping that key (short, hold) results in a single a and then shows the macOS system control allowing for input of accented characters.
I get aà with the qmk behavior. I think it’s not ideal, but I’d be hard pressed to figure out an algorithm that would get the hold-behavior on the tap key without impairing usage of the intended tap/hold.