[OS] ControllerKeys - system-wide controller mapping for macOS - $9.99
I'm the developer of ControllerKeys, an open source macOS app that turns game controllers into system-wide keyboard, mouse, and automation devices. Problem I built it because I wanted to use my Mac from the couch without constantly reaching for a keyboard and mouse. The basic setup is simple: buttons become keyboard shortcuts, the left stick moves the cursor, the right stick scrolls, and holding a trigger gives you precision cursor control. Then it grew from there: Chords: press multiple buttons for one shortcut Long-hold and double-tap actions Profiles for different apps or workflows On-screen keyboard with app launcher, bookmarks, and quick commands Touchpad support for DualSense, DualShock 4, and Steam Controller Gyro mouse control and gyro gestures for DualSense, DualShock 4, and Steam Controller Mac-to-Mac controller handoff: push the cursor against a screen edge and your controller input follows to the other Mac Macros, shell commands, webhooks, OBS controls, and JavaScript scripts Xbox, PlayStation, Nintendo, Steam Controller, and 300+ third-party controller support Comparison Steam Input is excellent for games, but ControllerKeys is aimed at system-wide Mac control. It can drive Safari, Finder, Terminal, OBS, Anki, creative apps, editors, or anything else on macOS, without needing Steam to be open. Compared with older macOS tools like Enjoyable, ControllerKeys supports layers, chords, long-hold/double-tap actions, touchpad quadrants, gyro input, app-specific profiles, macros, scripts, webhooks, OBS controls, portable JSON profile import/export, and Universal Control-style controller handoff between Macs. The handoff feature is one of my favorite parts: pair two Macs running ControllerKeys, push the controller cursor against a configured screen edge, and the mouse, keyboard, and mapped actions move to the other Mac. It is local-network only, with authenticated frames, and it means one controller can drive a MacBook plus a Mac mini/Studio setup without manually switching devices. I also recently added support for the new Steam Controller hardware. ControllerKeys talks to supported controllers directly, so Steam Controller trackpads and gyro can be used for normal macOS apps too, not just Steam games. User Proof A few use cases surprised me: A medical-school Anki user posted about using ControllerKeys with a DualShock 4, specifically calling out layers, chords, touchpad quadrants, and how it felt closer to reWASD/DS4Windows-style tools than older macOS options. One Gumroad buyer said they tested 10+ macOS controller mappers looking for held-trigger layer support before finding this. A physics professor at Arizona State uses a DualSense + ControllerKeys for hybrid lectures: touchpad cursor, OBS scene switching, slides, and Bluetooth mobility instead of being tethered to a Stream Deck. Anki post: https://www.reddit.com/r/medicalschoolanki/comments/1t7cnyy/controller_anki_macos_finally/ Pricing The prebuilt app is $9.99 on Gumroad: https://thekevintang.gumroad.com/l/xbox-controller-mapper The source code is available here: https://github.com/NSEvent/xbox-controller-mapper Website: https://www.kevintang.xyz/apps/controller-keys/ Transparency I'm Kevin Tang, the developer. Portfolio/contact: https://www.kevintang.xyz LinkedIn: https://www.linkedin.com/in/thekevintang/ Privacy Policy: https://www.kevintang.xyz/apps/controller-keys/privacy-policy.html Terms: https://www.kevintang.xyz/apps/controller-keys/terms.html ControllerKeys needs macOS Accessibility permission to simulate keyboard and mouse input, so I think users should be able to inspect what the app is doing before trusting it. Happy to answer questions, especially around controller support, Steam Controller behavior, remote handoff, or Accessibility/security concerns.
已收集讨论
the Mac-to-Mac controller handoff is the feature that really stands out here. Universal Control already does something similar for keyboard and mouse but having it work with a game controller and follow cursor-edge logic is a genuinely different use case. the physics professor setup with DualSense + OBS switching is a great example of how far this goes beyond just "play games from the couch".
The Mac-to-Mac controller handoff feature came from a pain point discovered from switching between my MacBook and Mac Studio! I was doing dev work on both computers and was controlling my Macs with ControllerKeys using two different Dualsense controllers when I thought to myself, “this is silly, I should figure out how to handoff like Apple’s Universal Control so I can just use one controller” I can control both computers with my MacBook keyboard/touchpad and with my Logitech K400 Plus, so why not my controllers too? ControllerKeys came from my desire to use any Mac with a portable input device. The default solution for most people is something like a Logitech K400 Plus, but with today’s voice transcription tech being so good, I find a game controller is plenty good to have full control over my computer (falling back to the on screen keyboard if really needed). Game controllers are so much more portable, ergonomic, and lend themselves to being really great for things like chords. If you ever spent any time in games with these game controllers, you’ll already have an intuitive way for how you will want make your mappings to control things. If your use case is more simple—like you just need to point and click, maybe use a few shortcuts—then a game controller ends up being a much more comfortable and capable laser pointer like tool.
Great Jobs ! Does the gyro mouse work well enough for actual precision tasks (like clicking small UI elements), or is is more of a rough cursor movement, finish with stick kind of thing ?
Yes the gyro works great, especially for the newer controllers. Here’s a demo using ControllerKeys v1.8.3 and a Dualsense controller to show mouse precision and accuracy using the gyroscope to move the mouse on the Mac. https://youtube.com/shorts/w2n5ogYjyzo?si=PMUxCOcv4Bn5blG1 The mouse precision and accuracy is more than enough for me to reliably hit small UI elements when navigating around my Mac with my Dualsense controller. Dualsense, DualShock, Steam Controller, and Nintendo Switch Pro Controller all have gyroscope hardware. DualShock has more limited gyroscope hardware, so it does work, but doesn’t feel as buttery. I personally do like using the touchpad to control my mouse a bit more than gyro for a controller that has a touchpad. But you can certainly use either or both!
Basically a mapping tool that maps keyboard and mouse cursor to the controller, interesting
Yes you got it! It can replace the mouse and keyboard functionality of one of these Logitech K400 Plus keyboards—but just more portable and ergonomic.
looks really cool
Thank you, I hope you give it a try and find it useful! What controllers do you have and what do you see yourself wanting to make easier using a controller?
Interesting, I think a good use case would be for a Mac mini connected to TV via HDMI (which turns it into a more console-like experience)
Yes, I have a Mac Studio connected to my TV via HDMI and use it like that myself! ControllerKeys gives you easy control over those setups where a keyboard a mouse might be awkward.
Steam controller as HID mode! Does it mean I can play game via CrossOver with Steam Controller as a normal gamepad?
Yes it should work to play Windows games via Crossover on Mac with your Steam Controller. ControllerKeys turns your controller button presses into Mac keyboard/mouse actions. The Crossover window should then receive those keyboard/mouse actions for your game. Note that if you want to play games with ControllerKeys, I’d recommend you turn on Realtime Mode for your config in Hardware->Input for the best latency experience. In Realtime Mode, any button presses won’t wait to see if a chord will be fired before firing the single button action.
Is it compatible with Flydigi controllers for extra back button mapping?
It should work with Flydigi controllers, but I haven’t had one to test before. If Flydigi is using the same controller format as either Xbox Elite Series 2 controller or PlayStation Dualsense Edge, then the back buttons will be there. If you have any issues, let me know and I’ll try to get my hands on it to support it!
This is really cool man. Nice work!
Thank you!! :)
I gotta give this a try! But now I also want a steam controller with it's touch pads! Does/would this work if I use my Steam Deck as a controller?
Awesome, I hope you can try it out and give me your feedback! The Steam controller is really nice for navigating and browsing around with ControllerKeys. I don’t think it’d work right now with your Steam Deck, but I don’t know too much about the Steam Deck. Does Steam Deck let you use its hardware as a Bluetooth controller or something on other devices as a built in feature? It sounds really interesting.
Will this work on everything?
that long dock is making me sick 🥴
😂I use a lot of different apps
Nice Work! Looks very cool
Thank you!😊
Goddamnn thats perfect!
Awesome, I hope you get some good use out of ControllerKeys!