What to do when I need more keys than my keyboard has?

Solution 1:

As a huge fan of keyboard and shortcut productivity, I've tried a number of different approaches to extending and customizing keyboard shortcuts. Some have been wildly successful, using them multiple times per minute, and others have fizzled in practice.

Generally, I've found that a secondary device is much less useful than the keyboard and mouse that your hands are already on. Having to move your hand off the keyboard to some other thing makes the shortcut not-so-short and I find I don't end up using it very often.

This answer is an overview of the approaches I've taken, ordered by how successful they have been for me (starting with most successful).

#1: Gaming mouse

Logitech G600 mouse

While it is designed as a gaming mouse specifically for MMOs, the Logitech G600 is easily the best productivity boost I've ever used, and it's cheap at $40.

  • 12 programmable buttons under your thumb
  • 2 programmable buttons under the scroll wheel
  • Scroll wheel tilts horizontally for left/right movement
  • A third "click" button for your ring finger (ie in addition to left- and right-click)

That's a lot of extra button capacity on a device that you already have your hand on. The bundled software is highly customizable — you can configure each key to send a shortcut key, a series of keypresses, launch a particular program or script directly, or even expose the keypress to a special API (outside of Windows' normal keyboard handling) that can be consumed by an external app. You can also configure the buttons to behave differently depending on which app has focus.

#2: Caps lock

With a bit of hacking, it is possible to use Caps Lock as a modifier like Ctrl or ⊞ Win. Since basically nothing uses Caps+… as a key combo, this opens up the entire keyboard for a new set of shortcuts.

I wrote my own utility for this purpose, but regrettably it's not at all in shape to share. It does look like you can get it working as a modifier in AutoHotkey, though.

#3: Mnemonics

U̲se the old-school keyboard navigation mnemonics to your advantage! Press Alt and underlines will appear under a letter in the label of many controls and menus. Press the the underlined letter to activate the control — selecting a menu item, checking a checkbox, or pressing a button. It's easy to memorize useful sequences since the mnemonic letter is generally the first letter or most important letter of a command. For example, Alt+F, O will open the F̲ile menu and select O̲pen, taking you straight to the open dialog.

Tips:

  • You can configure Windows to always show mnemonic underlines (instead of only after pressing Alt). Go to Settings > Ease of Access > Keyboard and enable "Underline access keys when available".
  • Take advantage of the context menu key (the one between right Alt and Ctrl). You can press it and then press the mnemonic for an item in the menu. For example, in Word, you can press , P to open the Paragraph dialog.

Sadly, most web-based and many "modern" apps neglect mnemonics, so whether this is useful in a given app varies.

#4: Gaming keyboard

Logitech G-910 keyboard There are a number of keyboards designed for gamers that have extra programmable keys. eg Logitech's G series, such as the G-910, which has 5 programmable keys on the left side and 4 on top of the regular F keys. Like the buttons on the G600 mouse, there's lots of programming flexibility.

The design of most gaming keyboards is of course... bold, so if you're using one in an office, prepare to talk about it.

#5: Specialized secondary keyboard

There are many devices that you can set next to your keyboard which provide many extra keys. My favorite was the Logitech G13 (above left), but it was sadly discontinued. It could be had new for $50, but now it sells for up to $400 when you can find it.

These devices are sold under a few different names, including gameboard, gaming keypad, macro keyboard, programmable keypad, content creation controller, and stream controller.

Some devices, like the G13, have dedicated keys with special software to enable programmability. Others appear to Windows as regular keyboards that press the same keys as your main keyboard — they just happen to be oddly shaped and don't have the full alphabet. You should prefer the devices with dedicated input.

  • Stream Deck is cool but pricy. Each key has a screen so you can dynamically change the labels.
  • X-keys (above right) is also relatively expensive, but they've been around a long time and have good software. The key caps are customizable: they're clear, so you can print labels to put underneath.
  • The "gaming keypad" and more generic "macro keyboards" are cheaper, but software quality and flexibility varies.

Depending on your use case, these secondary devices can prove to be not worthwhile if you frequently have to move your hand off the main keyboard, press a key, and then move back. For example, as a programmer, I found it to be much more natural and useful to bind extra keys using Caps as a modifier on my main keyboard. However, my video editor partner found the G13 to be extremely useful in that workflow.

#6: iPad/tablet

Lay a tablet (or even an old phone) on your desk next to your keyboard, disable the screen timeout, and use it to show shortcut buttons. There are a number of Android and iPad apps that connect to an app on your computer and allow you to execute various shortcuts/functions. Or, if you're adventurous, you can build your own as a web app and open it in the device's browser.

While this gives you a huge amount of flexibility because the buttons are virtual on a screen, in my experience this actually turned out to be a huge downside. Touchscreens lack the tactile feedback provided by real keyboards and keypads, which is especially important when you want to be able to quickly find shortcut keys by feel alone. It's the same reason touchscreens in cars suck — you need to be able to find your frequently used controls without looking at the input device.

That said, if you already have an extra device around, this option is free-to-very-cheap.


Foot Pedals?

I've wanted to try using foot pedals, but I've never actually given it a shot.

There's obviously a pretty low practical limit to the number of pedals you can use, but it does give you an extra input device that's always within reach.

Bonus: useful software

These are all free keyboard productivity tools I like:

  • AutoHotkey naturally
  • Ditto clipboard manager
  • FreeVD and SylphyHorn in combination to move windows and switch between Windows 10 virtual desktops
  • Unicode Virtual Keyboard to search for and insert special characters on the fly
  • Switcheroo searches titles of open windows for quick switching

Solution 2:

You can purchase a macro keyboard (scroll through the list). A macro keyboard like this, combined with AutoHotKey sounds like it would be right up your alley.

Solution 3:

Back when Wordperfect 5.1 ruled the earth, there were function key templates that aided in muscle memorization. Templates differed but they usually had at least 4 functions marked for each key (plain, control, shift and alt).

function key template

Solution 4:

Have you considered using two or three key combo in your hotkey setup?

  • Single Key: F1-F12 mapped to functions 1 to 12 and so on for alphabets and numbers

  • Two Key combo: CapsLock+F1-F12 mapped to functions 13 to 24 and so on, for ScrollLock and NumLock as well

Making two key hotkeys is straightforward using ^ ! # + (Ctrl, Alt, Win, Shift) and other keys with alphabet and number keys respectively.

  • Three Key combo: CapsLock+Alt+F1-F12 mapped to functions 25 to 36 and so on, for ScrollLock and NumLock as well..

Match function, alphabet or number keys with CapsLock/AltGr/Right-Alt/Right-Ctrl/Numpad0-9/ScrollLock/NumLock keys for additional hotkeys.

Example 1:

; CapsLock + ALT + K to execute function 1

Capslock & k::
GetKeyState, state, Alt
if state = D
func1()
Return

Source: How to combine three keys as a hotkey with Autohotkey?

Example 2:

#If GetKeyState("CapsLock", "T") ; if CapsLock is ON

!F1::    ; CapsLock + ALT + F1 
func1()
return

..
..

!F12::
func12()
return

#If

Source: AdditiveTips