Keyboards + joysticks · Win32 & SDL2

Every keystroke and stick, as live data.

BlinkPose.Periphery turns ordinary input hardware into a clean data stream. It reports key presses per physical keyboard through Win32 Raw Input — so it can tell two identical keyboards apart — plus joystick axes and buttons over SDL2, and keeps a live roster of every connected device the moment it's plugged in.

keys · axes · buttons · device roster · real-time

localhost — BlinkPose.Periphery
BlinkPose.Periphery dashboard: keyboards and joysticks with live axes and buttons

Plate I — the Periphery dashboard: the live roster of connected keyboards and joysticks, with axes and buttons as they move.

What it captures

Keys, axes, buttons — and which device

One stream that knows not just what happened, but exactly which piece of hardware it came from.

Keyboard keys

Every key press, reported per physical keyboard — two identical keyboards stay distinct.

Barcode / QR scans

Keyboard-wedge scanners are buffered into whole scans instead of loose keystrokes.

Joystick axes

Analog stick and trigger values, live and normalised, per controller.

Joystick buttons

Button states for every connected controller, updated each tick.

Device roster

A live list of every connected keyboard and joystick, appearing the instant it's plugged in.

Synthetic input

Inject keystrokes back to the OS from the dashboard — handy for testing and automation.

Inside the dashboard

A card for every device

Each keyboard and joystick gets its own live card, so you always know what's connected and active.

Why it's different

It knows which device

Most input hooks flatten everything into one stream. Periphery uses Win32 Raw Input to keep every event tagged with its source device — essential for multi-station setups, scanners and multi-controller rigs.

per-kbd
source-tagged keys
axis+btn
joysticks via SDL2
roster
hot-plug aware
send-key
synthetic input