I assume this is QMK, because changing the settings clears or introduces the issue. I’m using Vial for the programming/configuration.
I have a key configured tap-dance, like many others: - on tap, and ctrl on hold. The issue is that most of the time when I type something like -p
, I get only the -
. Then, the next time I type p
, I get 2 of them. So something like this will happen:
I type foo -p bar baz
, but don’t notice the p
is missing until after baz
, cursor left and type p
again, and end up with -pp
Most of my keys are tap-dance of some pattern: <char> on tap, layer shift in hold, <char> on tap-hold. I’ve noticed this buffered character after -
on other characters; it isn’t just p
. Changing the timeout does affect the frequency, but doesn’t entirely eliminate it. I haven’t noticed it on any other combo, although they’re all of the same pattern; it seems to be only happening with the -/ctrl tap-dance. Removing the multitap on -
eliminates the issue.
This is my first QMK. I’d been using an Ergodox for years, and kmonad
on my laptop for a year or so, although I recently switched to kanata
(fantastic piece of software, incidentally), so I’m more or less familiar with the world of layers, multi-tap/tap-dance, combos, and so on. This one has me stumped, though.
I’ve checked and there’s no combo defined that involves dash. I’ve never created a QMK macro, but it occurs to me that I didn’t check if there are any defined.
Does anyone have a suggestion of how I can debug this? Could there be some bug, some bit that I accidentally set, that’s causing this? Is there some QMK feature that does exactly this thing, and I’ve somehow enabled it? I’ve power cycled the keyboard, although I haven’t yet tried a hard or factory reset.
Any ideas would be appreciated!
Edit corrected “multi-tap” to “tap-dance”, as QMK calls it the one thing and not t’other
I tend to use tap-dance for modifiers, like my thumb Esc is also Alt, because one I tap (and never hold) and the other I always hold (and has no use taped). Having (e.g.) a key only dedicated to Alt is a wasted key; Alt isn’t a good key to have on a layer; and it would be not only annoying to have to tap a layer switch key to get to Alt, and even then there’d be a chording issue where you still need to have access to all your keys and Alt so you can type chords like Ctrl-Alt-X.
How do you manage the four(-ish) modifier keys without tap-dance, or having dedicated, single-purpose keys for them? On a 36, that’s 11% of the keyboard dedicated to modifiers (Ctrl, Shift, Meta, Alt) at best, or 19% if you make use of the fact that there are left/right distinctions for three of those keys (is there a Right Meta?).
Honestly, I’d be happy with a different solution. Modifier keys are hard enough; I still have trouble with accuracy with only three thumb keys. I had an ErgoDox for years and never really used all twelve of the thumb keys; it was just too hard to reliable hit that inner column.
For that matter, how do you do layer switches without tap dance, or dedicated keys? Are you using momentary layers, or layer switch? Are they dedicated layer keys, and if so, where are your modifiers keys and things like space/return? Can you post your config so I can load it in Vial and look at it?
I might misunderstood some terms here, but I feel like our understanding of what tap-dance is might be different.
That said, here’s an ilustration of what I got on my Minidox. I also use something similar on my QAZ, although that one got 32 keys instead of 36.
Edit: actually, I think the latest version got the whole semicolon and Backspace switched. The semicolon button is backspace by default and P + Backspace gives me semicolon. Main reasoning are: rarely use semicolon and fighting the primal urge of pinky finger to backspace is hard (I rotate between sub40s and 40s at least once a week)
Oh, Yeah. I’m just calling it what Vial/QMK calls it. I don’t think the *Dox’s use vanilla QMK - they have their own proprietary firmware and configuration format (ZSA), although I think it is based on QMK. I did a bunch of research on this once because I got tired of having to use Oryx and wanted to use a desktop app like Vial, and eventually found out they’re incompatible.
Tap-dance in QMK terms is different behavior of a key based on whether it’s tapped or held; there’s a hold timeout where it can go into repeat if no other key is typed while it’s held, and it can also be configured to have different behavior on double-tap and tap+hold. I haven’t yet set up any double-taps, but I used them a lot in my ErgoDox because of all of the extra in the middle.
Thanks for the screen cap!