Quick Launch Keys
Many keyboards now come with shortcut keys for starting a web browser or controlling volume. I wanted to be able to define my own actions so created Quick Launch Keys.
Each key sends ctrl-alt-windows plus a number pad key from 1 to 8. No matter how long the key is held down for, it never repeats. This prevents multiple copies of a program being launched accidentally. The built in shortcuts feature of Windows can be used, but I prefer Directory Opus.
The code is based on the AVR-USB HIDKeys reference project. The main modification is the sending of a key-up code after the key-down code to prevent a key from repeating.
At the request of Björn Claesson, a Macro Keys version was created which sends two or more tabs followed by enter. The number of tabs sent corresponds to the key number. This is useful for operating GUI applications where tab is used to move the focus and enter to "click" a button.
Hardware
Only minimal hardware is required. The keys are not multiplexed. No debouncing is done as debouncing is carried out as a side effect of the low polling speed.
![]() |
| Quick Launch Keys schematic |
![]() |
| Macro Keys schematic |
![]() |
| Quick Launch Keys |
Connections for the Macro Keys are not shown on the schematic, see the table below:
| ATmega8 | Key | ||
| Port C 0-5 | Key 1-6 | ||
| Port B 0-5 | Key 7-12 | ||
| Port D 0-1 | Key 13-14 | ||
| Port D 4-7 | Key 15-18 | ||
Firmware