Using game controllers and keyboards for custom shortcuts

Recently I’ve been following a trend in macro-pads, specialised/bespoke keyboards that provide an easy way to trigger keyboard shortcuts. A host of small companies have flooded the market with modified Bluetooth numeric pads that target Procreate, and Figma have teamed up with Work Louder to create a branded keypad with additional jog and rotary dials.

But none of these seem quite right for me. I have so many controllers and devices already it felt better to make use of what I have to hand.

I’m encouraged to find that there are lots of options! I’m a macOS user and I also dabble with Windows on occasion, but I have no idea how this can be done well on Linux.

8Bitdo <em>Micro</em>

Controllers

An obvious choice for a device with multiple buttons is a game controller. In modern macOS it’s easy to pair Nintendo Switch controllers, and the JoyCon (left or right) is an ideal candidate for a hand-held shortcut device. Xbox and PlayStation controllers can also be paired but they are much larger. Wired or wireless controllers will work.

You can even use a Wii remote using an adapter like the Mayflash MAGIC-NS Lite. Or you might use more esoteric controllers with an adapter from Robert Dale Smith’s Controller Adapter store. In fact, I use one of his adapters to get an old Sony Jog Controller to act like a GameCube controller, which I then map to keyboard shortcuts using the methods below. The sky’s the limit!

8Bitdo also have their Micro controller which offers more buttons and slightly better one-handed ergonomics than a Switch JoyCon. This controller is really interesting as it can pose as a Switch Pro Controller, generic controller, or keyboard. This gives us even more options. 8Bitdo are aware of this market and have created this device to fit, including a bespoke mobile app, and they even go so far as to call out this use case in their marketing material.

Keyboards

These could be cheap bluetooth numeric pads or other small keyboards. I’ve personally tried a Nintendo Wireless Keyboard that came with Nintendo DS game Pokémon Typing Adventure. And of course the 8Bitdo controller mentioned above has a keyboard mode. There are many macro-pads listed for sale online, with various numbers of keys and rotary dials. Wired or wireless keyboards will work, so get creative!

Remapping

The 8Bitdo controller has a specific app for iOS/Android that can change its keyboard mappings. That’s cool for those mobile devices, and the iOS version will even run on an M1 Mac. But we can achieve a more versatile solution by doing the remapping in software on the computer.

The general concept is to use an app that will take an input from your device of choice and map it to a keyboard shortcut or some other action that you specify. There are many apps that do this, so I’ve limited my list below to those that offer one important feature: per-app mapping.

This means you can set different shortcuts for each app you use, and they will change as you move between apps. Of course, it is best if this happens automatically to prevent any friction in the process.

I might have a button set to “zoom in” or “zoom out” that will trigger slightly different shortcuts in my text editor than in my image editor, or I might have a button set to “primary tool” and it will trigger a tool in a different way depending on the design app I am currently using.

My personal favourite app is JoyMapperSilicon, but we really are spoiled for choice.

Mouse

It’s also possible to use the analog sticks and gyro of a Switch JoyCon as a mouse using QJoyControl. Analog is straightforward and as you’d expect. But using gyro basically gives you an Air Mouse which is pretty amazing.

Apps

You can sort the table by headings: name, cost, platform, how the per-app function works, relative ease-of-use, and whether it works with devices keyboard (key) or controller (joy) or both.

Name Cost Platform Per‑app? Easy? Type
8BitDo Ultimate Software Free iOS/Android Manual Yes Key
AutoHotKey Free Windows Auto No Joy
BetterTouchTool $10 macOS Auto Yes Both
GamePad Companion $10 macOS Manual No Joy
JoyKeyMapper Free macOS Auto Yes Joy
JoyMapperSilicon Free macOS Auto Yes Joy
JoyToKey $7 Windows Auto No Joy
Keyboard Cowboy Free macOS Auto No Key
Keyboard Maestro $36 macOS Auto No Both
QJoyControl Free macOS No Yes Joy
USB Overdrive $20 macOS Auto Yes Both
--
Originally published: 2023-12-23
--
Comments: @gingerbeardman