Transform your Xbox or DualSense controller into a powerful productivity tool for macOS
Get up and running in under a minute
Sonoma or later
Bluetooth enabled
Permission required
Get the app from Gumroad
Open the DMG and drag to /Applications
Grant Accessibility permissions when prompted
Pair your Xbox controller via Bluetooth
Why Accessibility permissions? The app uses Apple's CGEvent API to simulate keyboard and mouse input. This is the same API used by accessibility tools and automation software. The app is fully open source so you can verify it doesn't do anything nefarious.
Everything you need for controller-driven productivity
| Type | Description |
|---|---|
| Simple Key | Single keystroke per press |
| Modifier + Key | Like ⌘C |
| Hold Modifier | Hold button = hold modifier |
| Long Hold | Different action on long press |
| Double Tap | Quick double press trigger |
| Repeat | Auto-repeat while holding |
Press multiple buttons for one action. Fully customizable — create your own combinations.
Mouse cursor
Scroll wheel
Create multiple configurations for different workflows
Settings saved to ~/.controllerkeys/config.json
Type without reaching for your physical keyboard
Insert text snippets or run terminal commands with a single button press
Example: Map a button to insert your email address, or run git status in your terminal.
Full support for PlayStation 5 DualSense controller
Use the touchpad as a full trackpad with multi-touch gesture support
Two-finger gestures included
Turn your spare controller into a productivity powerhouse
Code from your couch with AI-powered tools
Pro tip: Map RT to accept AI suggestions, LB+A to trigger inline completion
Combine with voice transcription for hands-free computing
Don't let your old controllers collect dust
Alternative input for those who need it
See the app in action with Xbox and DualSense controllers
Solutions to common issues
~/.xbox-controller-mapper/config.jsonAnswers to frequently asked questions
Yes! Xbox Series X|S controllers connect to Mac via Bluetooth. Put your controller in pairing mode (hold the pairing button until the Xbox button flashes), then go to System Settings → Bluetooth and select the controller.
Once connected, ControllerKeys lets you use it for productivity — not just gaming.
Yes! DualSense controllers work great with Mac. Hold the Create and PS buttons together until the light bar flashes, then pair via System Settings → Bluetooth.
With ControllerKeys, you get full touchpad support as a trackpad, plus LED color customization when connected via USB.
Bluetooth: Wireless convenience, works great for most features.
USB: Required for DualSense LED color customization and microphone access. Also provides slightly lower latency and keeps your controller charged.
1. Turn on your Xbox controller by pressing the Xbox button
2. Hold the pairing button (top of controller) for 3 seconds until the Xbox button flashes rapidly
3. On your Mac, go to System Settings → Bluetooth
4. Select "Xbox Wireless Controller" from the list
1. Turn off your DualSense controller if it's on
2. Hold the Create button (left of touchpad) and PS button together for 3 seconds
3. The light bar will flash blue when in pairing mode
4. On your Mac, go to System Settings → Bluetooth and select "DualSense Wireless Controller"
Yes. The app is fully open source — you can verify exactly what it does. It doesn't connect to the internet, collect data, or log your inputs.
Controller inputs are translated to keyboard/mouse events in real-time and immediately discarded. The app is signed and notarized by Apple.
The app supports Xbox Series X|S controllers and PlayStation 5 DualSense controllers. Both are fully supported via Apple's GameController framework.
DualSense controllers get additional features: full touchpad support with multi-touch gestures, LED color customization, and microphone button mapping.
The app uses Apple's GameController framework, which supports official Xbox and DualSense controllers. Third-party controllers may work if macOS recognizes them as compatible controllers, but compatibility varies.
Currently, the app supports one controller at a time. The first connected controller will be used.
The app is designed for productivity (coding, browsing, general use). Most games have native controller support. Using both may cause conflicts or double inputs.
When configuring a button, select only the modifier (⌘ ⌥ ⇧ ⌃) without a key, and enable "Hold Modifier".
The modifier will be active while the button is pressed.
Yes. In the key capture field, select "Mouse Left Click" or "Mouse Right Click" as the action.
They're independent:
Yes. Clear all mappings from the button configuration. It will do nothing when pressed.
Increase the deadzone setting. 15-20% usually eliminates drift while maintaining responsiveness.
Use Focus Mode. Set a modifier as the trigger, then hold it while moving the joystick for slower, precise movement.
Currently, left stick is always mouse and right stick is always scroll. This isn't configurable yet.
Profiles save to ~/.xbox-controller-mapper/config.json — a human-readable JSON file you can backup or share.
Generally yes. They operate at different levels — this app handles controller input, while Karabiner and Hammerspoon handle keyboard input and automation. They typically don't conflict.
Yes. Add ControllerKeys to System Settings → General → Login Items.
The app continuously monitors controller input and translates it to keyboard/mouse events in real-time. Quitting stops all mapping.
Vibe coding is a relaxed approach to programming where you use AI assistants like Claude Code, Cursor, or Copilot to do most of the heavy lifting while you guide the process.
ControllerKeys lets you control your IDE from the couch — navigate code, accept AI suggestions, and trigger commands without touching a keyboard.
Absolutely! Map buttons to trigger AI completions, accept suggestions, or run terminal commands. Works great with Claude Code, Cursor, Copilot, Aider, Codex CLI, Roo Code, and any other AI coding assistant.
Pair this app with a voice transcription tool like VoiceInk (open source, Whisper-based). Map a controller button to toggle voice recording, and you have hands-free typing.
This combo is perfect for couch computing — dictate text while using the controller for navigation and commands.
Turn it into a productivity tool! Use it to control your Mac from the couch, navigate presentations, browse the web, or code with AI assistance. It's a great way to repurpose controllers you're not using for gaming.
Yes. Controllers are ergonomically different from keyboards and mice, which can help if you have repetitive strain injuries or need alternative input methods. The customizable mappings let you adapt it to your specific needs.