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

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.

Tap Dance on its own

  • Single-key copy, cut, and paste: My X, C, and V keys now do double-duty as cut, copy, and paste — no modifiers needed. I simply hold the key for a moment, and it does its thing. I got quite quick at this after a while.
  • Cursor control: I mentioned my Up arrow at the top of this post; my Down arrow also sends Down when tapped once, and Page Down when tapped twice. My Left and Right arrows start skipping whole words backwards and forwards when I press and hold them. This also works while holding down Shift, making it easy to select entire words when editing text.
  • Media control: My Up and Down keys, when held, control Volume. My Tab key sends Play/Pause when held.
  • Window control:
    • New tab: When I hold down my T key, it pops up a new tab in whatever browser or application I'm using (sends Cmd + T).
    • Next/previous tab: Double-tapping my Left arrow key moves to the previous tab; double-tapping my Right arrow moves to the next one.
    • Close window: Holding W for a moment closes the current window (sends Cmd + W).
    • Quit application: Holding Q for a moment quits the current application (sends Cmd + Q).
  • Single-key Alfred: Holding M for a moment pops open Alfred (sends Cmd + Space which is my Alfred shortcut).

Tap Dance combined with software

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.

Take it slow: Tap Dance is (muscle) memory intensive

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:

Tapping Term

Tap Don'ts: Various gotchas

With great power come great... trade-offs, of course. Isn't that how it goes? Here are a few of the notable ones:

Key repeat

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.

AutoShift

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.

Macros

Tap Dance can't run macros, at least in Oryx. The UI is just too complicated, for now.

Your turn!

If you have a clever use for Tap Dance, show me! Please make something and then ping [email protected] with your layout. I'd love to feature your work in an upcoming newsletter!