Setting Up a Macropad for GitHub Copilot on Windows

KM16 Macropad is a sixteen-key aluminium pad with three knobs and confirmed VIA remapping. It can send spare combinations to Copilot commands in a Windows editor.

How do pad keys reach Copilot actions in Visual Studio Code?

Assign a simple output to one physical position in VIA, then test it in a plain text field. In the editor's Keyboard Shortcuts view, search for the named Copilot command and bind the same output. GitHub documents command names for accepting, dismissing, triggering and moving between inline suggestions.

This split keeps the hardware generic. VIA produces a key combination, while the editor decides that it means accept or next suggestion. A broken binding can be diagnosed one layer at a time.

Which Copilot commands are worth dedicated keys?

Accept, dismiss, next suggestion and previous suggestion form a useful group. A trigger key can join them if you call suggestions manually. Place accept and dismiss far enough apart that the difference remains obvious without looking down.

Do not fill the rest of the pad with speculative commands. Use the workflow for several days, then add a key only when a repeated chord is genuinely awkward.

Do you need AutoHotkey for anything?

Not for ordinary Copilot controls. VIA can send the combination and the editor can attach it to a command. A Windows-side remapper is useful only if the pad must behave differently by application or if a command cannot be bound inside the editor.

Every extra automation layer increases the chance that a key acts in the wrong window. If you later add a script, restrict it to the editor and test with a harmless character before connecting it to review actions.

How do you keep bindings from colliding with the editor?

Search the Keyboard Shortcuts view for each proposed combination and inspect context conditions. Check the integrated terminal and chat input as well as the code editor. The same chord can be safe in one focus context and disruptive in another.

The KM16 Macropad offers more positions than this setup requires. Keep a written table of physical key, VIA output and editor command, and retest the group after major editor updates. A small printed label is useful during the first week. Remove it only when you can identify accept and dismiss by position without moving your eyes from the proposed code. If the editor gains a new default binding, inspect conflicts before changing VIA. Preserve the device layer whenever possible. Test both a suggestion and an empty editor before declaring the map finished.

Back to blog