πΉοΈ Macropadxc
| V1 | V2 | V3 | V4 |
|---|---|---|---|
![]() |
![]() |
![]() |
![]() |
| 1 | 2 |
|---|---|
![]() |
![]() |
π User Guide
- Connect the Macropad: Plug your Raspberry Pi Pico Macropad into an available USB port.
- Ensure the Service is Running: The
MacropadxcServicebackground process must be active to intercept keystrokes. If you installed the app via the.debor.exeinstaller, this service is configured to start automatically on login. - Open the Client: Launch the
Macropadxcgraphical client from your application menu or desktop shortcut to configure your keys.
The graphical interface provides a grid that mirrors the 9 physical buttons on your hardware device. To assign a new function to a button:
- Locate the target button in the list (e.g., Button F1).
- Click the dropdown menu to select an Action Type.
- If your selected action requires extra information (like a web address or a file path), a text input field will appear below it. Enter your target Payload there.
You can assign the following types of commands to any key:
-
Media Controls:
Play/Pause,Previous,Next. -
Volume Controls:
Volume Up,Volume Down,Mute. -
Open Website (URI): Opens a specific URL in your default browser.
-
- Payload Example:
https://example.com
- Payload Example:
-
Run Application: Executes a system program, script, or opens a file.
-
- Payload Example (Windows):
notepad.exeorC:\Tools\script.bat
- Payload Example (Windows):
-
- Payload Example (Linux):
gnome-calculatoror/opt/scripts/run.sh
- Payload Example (Linux):
Press Keys (Combo): Simulates a complex keyboard shortcut at the OS level. Combine keys using the + symbol.
-
Payload Example:
CTRL+SHIFT+ESCorWIN+D -
Supported Keys (Case-insensitive):
-
- Modifiers:
CTRL(orCONTROL),SHIFT,ALT,WIN(orMETA)
- Modifiers:
-
- Special:
ENTER,TAB,ESC(orESCAPE),SPACE
- Special:
-
- Arrows:
UP,DOWN,LEFT,RIGHT
- Arrows:
-
- Alphanumeric: Letters
A-Zand numbers0-9
- Alphanumeric: Letters
-
Anything (None): Disables the key completely.
The software features Hot-Reloading. The moment you change an action type or type a new payload in the GUI, the config.json file is automatically updated. The background service detects this change and applies your new settings instantly - no manual saving or restarting required!
Tested on: Debian 13 (Trixie) + KDE Plasma + Wayland
Note
If you install via the .deb package, these dependencies will be installed automatically. Otherwise, you must install them manually.
playerctl(for media keys)pulseaudio-utils(for volume control)xdg-utils(for opening URLs/files)ydotool(for keystroke simulation)
Important
For Debian 13 (Trixie) users: ydotool is temporarily located in the backports repository. Enable it before installation:
echo "deb http://deb.debian.org/debian trixie-backports main" | sudo tee /etc/apt/sources.list.d/backports.list
Warning
- You MUST add your user to the
inputgroup to allowydotoolto simulate keystrokes:sudo usermod -aG input $USER - You must log out and log back in (or reboot) for the group permissions to apply and for the
macropadxc.serviceauto-start to take effect.
1. Install Build Dependencies:
- CMake, C++ Compiler, Python 3
sudo apt install libwayland-dev libxkbcommon-dev xorg-dev(More details: GLFW Compile Guide)
2. Compile Project:
python3 build.py3. Build .deb Installer (Requires dpkg):
cd build
cpack -G DEB- Microsoft Visual C++ Redistributable
1. Install Build Dependencies:
- CMake, MSVC (Visual Studio Build Tools), Python 3
2. Compile Project:
py build.py3. Build .exe Installer (Requires NSIS):
cd build
cpack -G NSIS[
"F1": {
"type": "CMD_MEDIA_NEXT",
"payload": "",
},
"F2": {
"type": "CMD_OPEN_URL",
"payload": "https://github.com/razenxc",
}
]- PlatformIO
Raspberry Pi Pico (YD-RP2040); 9 push buttons connected to individual pins; 3D printed case.
0 - GND
F1 - 15
F2 - 14
F3 - 13
F4 - 12
F5 - 11
F6 - 10
F7 - 9
F8 - 8
F9 - 7
F<button number>
- Example Data:
- TX
F1 - TX
F4 - TX
F8
- TX
- RX:
WAREI_HEY - TX:
WAREI_OK





