It’s been a while since I was this excited about a new feature: My Up arrow now has superpowers! When I press it once, it sends Up; when I press twice, it becomes Page Up. If I hold it, it’s a Volume Up, and if I press, then hold — it activates the browser’s address bar (which is at the top part of the window, hence, “up”).
Four actions, one key. My Down, Right, and Left arrows are similarly powerful, as are some of the keys right under my fingers on the home row. And all of this is in addition to layers, and can work on any layer, across all of our keyboards.
It’s called Tap Dance, and it’s available by default on every key:
Tap Dance isn’t a new feature in QMK. The firmware side of it is documented here. It is, however, new to Oryx. That makes it much easier to use — easy enough that my own layout is now full of tap-dance keys.
Just to give you a sense of what can be done with Tap Dance, I’d like to share some of the uses I’ve discovered while testing the feature on my own layout. I’m sure you can come up with lots of other ideas for your own uses.
I recently started using Keyboard Maestro, a powerful automation tool for macOS. If you’re using Windows, you can use something like AutoHotkey for similar effects.
Combining Tap Dance with an automation tool like this allows for single-key access to any application on your machine, for example. If I hit my = key, I get an Equal sign. But if I hold it, Obsidian, a personal knowledge management tool I use often, pops open.
I have a key that lets me quickly call up either of the two messaging apps I use all day long — I hold it to call up WhatsApp, and double-tap it for Telegram. It’s my “messenger” key.
These are basic examples. With time, I’m sure I could get fancier — but I’m just getting started.
While our keyboards can handle lots of Tap Dance keys, our minds may need some time to adjust. I found that it’s quite easy to go overboard with Tap Dance, setting up lots of keys and thoroughly confusing myself.
Instead, I am taking things just a few keys at a time. First I modified my Arrow keys and made sure that works for me, and that I really do use their newfound powers to get actual work done. Once I became used to it, I moved to the next thing. There are still ideas I’m waiting to implement: Double-tapping my Z key to undo (double-tap for Undo), for example. Or pressing and holding my Backspace key to delete entire words backwards. All in good time — I’m letting myself grow into the feature.
There are two types of muscle memory to develop here: One for the actual shortcut (which key does what), and another for the timings (what counts as a hold, what’s quick enough to be a “double tap”). The latter one is called Tapping Term, and you can configure it under the Tapping section of Advanced Settings:
With great power come great… trade-offs, of course. Isn’t that how it goes? Here are a few of the notable ones:
Let’s say you bind your Up key using Tap Dance, and then you try to navigate a text document by hitting Up-Up-Up-Up in rapid succession. This will work, but it will wait until your third or fourth tap to get going. This is because the keyboard needs to make sure you’re not trying to double-tap.
If you’re using AutoShift on your alphanumeric keys, Tap Dance will take precedence. So AutoShift will “stop working” for those keys you’ve set Tap Dance for.
Tap Dance can’t run macros, at least in Oryx. The UI is just too complicated, for now.
If you have a clever use for Tap Dance, show me! Please make something and then ping contact@zsa.io with your layout. I’d love to feature your work in an upcoming newsletter!
Erez Zukerman is the CEO and Co-Founder of ZSA Technology Labs.