- Published on
External Keypad for OBS Controls
- Authors

- Name
- Martin Andrews
- @mdda123
The idea: use a cheap USB numeric keypad as a dedicated control surface for OBS, with each key remapped to a distinct hotkey combination that OBS can listen for.
The Open Source tool for the job is keyd - a key remapping daemon that works at the kernel level, so it applies system-wide before any application sees the input.
FWIW, I bought the extra keypad itself from Aliexpress for <USD 15.
Install keyd
su
cd ~
git clone https://github.com/rvaiya/keyd
cd keyd/
make
make install
systemctl enable --now keyd
Identify the keypad’s device ID
Plug in the keypad and run keyd monitor while pressing a few keys. The output will show the device ID — look for the first 4:4 hex digits at the start:
keyd monitor
For example, the device ID might look like 13ba:0001.
Configure the key remapping
Create /etc/keyd/default.conf with the keypad’s device ID in the [ids] section, then map each keypad key to a unique Ctrl+Shift+Alt+Fn combination that OBS hotkeys can be bound to:
joe /etc/keyd/default.conf
[ids]
# This file applies to the external numberpad only (look at keyd monitor)
# uses the first 4:4 digits
13ba:0001
[main]
# keypress (from keyd monitor) -> key output
# Note that OBS does not allow for function keys F13+,
# so we have to use unusual key combos (the following were all unused)
kp0 = C-S-A-f1
kp1 = C-S-f1
kp2 = C-S-f2
kp3 = C-S-f3
kp4 = C-S-f4
kp5 = C-S-f5
kp6 = C-S-f6
kp7 = C-S-f7
kp8 = C-S-f8
kp9 = C-S-f9
kpdot = C-S-A-f2
kpenter = C-S-A-f3
backspace = C-S-A-f4
kpplus = C-S-A-f5
kpminus = C-S-A-f6
kpasterisk= C-S-A-f7
kpslash = C-S-A-f8
# use 'keyd reload' to update from these settings
To apply the changes without restarting the daemon:
keyd reload
Bind the hotkeys in OBS
In OBS Studio, go to Settings → Hotkeys and assign each scene or action to the corresponding Ctrl+Shift+(Alt+)Fn combination.
The keypad keys now trigger those combinations, giving a dedicated one-handed control surface.
All Done!