BANANASJIM

BANANASJIM / padctl

Public

HID gamepad daemon with declarative TOML device config

12
1
100% credibility
Found Mar 26, 2026 at 12 stars -- GitGems finds repos before they trend. Get early access to the next one.
Sign Up Free
AI Analysis
Zig
AI Summary

padctl is a userspace tool that makes various game controllers work seamlessly on Linux by translating their unique button presses and movements into standard inputs using simple setup files.

How It Works

1
🔍 Struggling with gamepad on Linux

You plug in your fancy controller like DualSense or Steam Deck but games don't recognize buttons or sticks properly.

2
📦 Install padctl easily

Run a simple install command to add support for your controller without kernel hacks or drivers.

3
🕹️ Connect and play instantly

Plug in your gamepad — it auto-detects and maps buttons, sticks, and even gyro to work perfectly in any game.

4
✏️ Customize if you want

Tweak button swaps, gyro mouse sensitivity, or add layers for different games using easy text files.

5
🔄 Hot-swap and update

Add new controllers or tweak settings on the fly — everything reloads without restarting.

🎮 Game like a pro on Linux

Your controllers feel native in every game, with rumble, gyro aiming, and macros ready to go.

Sign up to see the full architecture

4 more

Sign Up Free

Star Growth

See how this repo grew from 12 to 12 stars Sign Up Free
Repurpose This Repo

Repurpose is a Pro feature

Generate ready-to-use prompts for X threads, LinkedIn posts, blog posts, YouTube scripts, and more -- with full repo context baked in.

Unlock Repurpose
AI-Generated Review

What is padctl?

padctl is a Zig daemon that translates vendor-specific HID gamepad reports—like those from DualSense, Switch Pro, or Flydigi Vader—into standard Linux evdev events via uinput. It uses declarative TOML configs for devices, skipping kernel patches or custom drivers, and supports USB or Bluetooth HID github controllers out of the box. Hotplug via netlink auto-detects gear like 8BitDo Ultimate or Steam Deck, mapping buttons, sticks, gyro, and rumble seamlessly.

Why is it gaining traction?

No recompiles for new hid gamepad descriptors: drop a TOML file for your ESP32-HID or Arduino HID gamepad, reload with SIGHUP. Layers toggle gyro mouse (with smoothing/curves), stick-to-scroll, or macros; CLI like `padctl scan` and `padctl switch` make tweaking fast. Beats hid-project github or virtual hid github tools by bundling 12 vendor configs (Sony, Nintendo, Valve) and force feedback passthrough.

Who should use this?

Linux gamers with non-Xbox controllers fighting janky DualSense LT/RT or Legion Go paddles in Steam/emulators. Handheld users (Steam Deck, ROG Ally) needing per-profile gyro aiming without Steam Input. DIY folks testing CircuitPython gamepad HID or hid wiimote github hacks via `padctl-capture`.

Verdict

Solid early pick despite 12 stars and 1.0% credibility—docs shine, tests cover edge cases like hid gamepad report parsing. Install the systemd daemon if kernel drivers flake; maturity lags big projects but config-driven design scales well.

(198 words)

Sign up to read the full AI review Sign Up Free

Similar repos coming soon.