Write on a Mac with an Xbox Adaptive Controller or a PlayStation Access Controller
By Ryleigh Newman · Published
An Xbox Adaptive Controller or a PlayStation Access Controller can run a Mac, but macOS treats it as a game controller, not a mouse or keyboard. InputConfig, a free Mac app, turns its stick into the pointer and its buttons and switch ports into clicks and keys. Map one button or switch to Right Command and the same controller starts YapToText, so you write by voice with nothing else in reach.
I make YapToText, a free dictation app for the Mac, and InputConfig, a free app that turns any button, switch or controller into keys and clicks. I built both because my own hands do not work well.
This app is completely free. You don't have to make an account. There are no subscriptions, no difficult downloads, and nothing is locked. Made for Apple silicon Macs. Source on GitHub.
This guide in other languages: العربية, Čeština, Dansk, Deutsch, Ελληνικά, Español, Suomi, Français, עברית, हिन्दी, Magyar, Bahasa Indonesia, Italiano, 日本語, 한국어, Norsk, Nederlands, Polski, Português, Română, Русский, Slovenčina, Svenska, ไทย, Türkçe, Українська, Tiếng Việt, 简体中文, 繁體中文
On this page: 9 sections
Steps
- Connect the controller to the Mac.
- In InputConfig, turn on the Access Controller or Easy Browse preset.
- Add a row, press Scan, press the button you want for dictation, and give it the Keyboard Key Right Command.
- Click into a text field, press the button, talk, and press it again.
What the Mac sees, and what InputConfig adds
- The controller. Paired over Bluetooth or plugged in, it shows up as a game controller. Games read it. The desktop does not.
- Switches in its ports. A switch plugged into a port arrives as one of the controller's buttons, not as a key.
- InputConfig. Reads those buttons and the stick and sends the pointer, clicks, scrolling, keys, typed text and Mac functions.
Setup for each controller is on inputconfig.com: Xbox Adaptive Controller on a Mac and PlayStation Access Controller on a Mac.
Start from the built-in Access Controller preset
InputConfig's Access Controller preset is one stick and eight buttons for the whole desktop. With the controller's default profile, the stick is the pointer, the center button clicks, socket 5 right-clicks, and socket 7 opens Spotlight. The other rows wait for buttons that reach the Mac once a profile made on a PS5 gives them to sockets: double click, Return, scroll, hold Command for shortcuts, Space, and Mission Control. The PS button is kept by macOS and never reaches an app. If your profile puts buttons elsewhere, Scan a row and press the socket you mean.
For an Xbox Adaptive Controller or any other pad, the Easy Browse preset does the same job: left stick for the pointer, right stick to scroll, A to click.
Give one button the dictation key
Pick the button or switch you press most reliably, ideally one the preset leaves free. The button you trust most should start your words.
YapToText starts and stops from one key, Right Command by default, tapped once to start and once to stop. InputConfig can send that key from a control that is not a key at all: a switch, a controller button, a MIDI pedal, a knock on a MacBook, or the pointer entering a corner of the screen. Put the two together and that control becomes the dictation key.
- You: In InputConfig, add a row, press Scan and press the control you want. Give the row a Keyboard Key output and choose Right Command.
- InputConfig: Presses Right Command each time the control fires, on its own, with no other key held.
- Check: Click into a text field and press the control. YapToText's panel should say Listening. Press it again and the words land at your cursor.
If you would rather keep Right Command for shortcuts, move YapToText to a key nothing else uses. On the Dictation page, Keys card, click the key field and press F18 (or any spare key), then give the InputConfig row a Keyboard Key output of F18 instead. F13 to F19 are the keys InputConfig's own guides suggest, because nothing on a Mac uses them. Tap to start and stop is the mode to pair with a switch: one press starts, the next press stops. Turn on Auto-stop after silence on the Dictation page, Recording card, and the second press is not needed either.
Two cautions. InputConfig's built-in Modifier Holds preset gives a held Right Command to Spotlight and a held Right Option to Apple's Dictation, and those are YapToText's dictation and Quick Edit keys, so do not run that preset alongside YapToText's defaults. And while the Mac is locked, InputConfig sends no keys, only the pointer, clicks and scrolling. This handoff is how both apps are built: InputConfig posts a lone modifier the way a real key does, and YapToText counts a press with no other key as a tap. I have not tested it end to end on every control, so try it once on yours before you rely on it, and if it does nothing, open an issue on GitHub.

Stop, pause and fix from the controller
- Stop. Press the same button again. Or turn on Auto-stop after silence on the Dictation page and just stop talking.
- Pause. Space pauses and resumes while dictating. Give a second button the Space key.
- Cancel. Escape cancels. A hold on the dictation button can send Escape, through InputConfig's hold action.
- Fix. Map another button to Right Option, the Quick Edit key. Select the words with the stick, press it, and say the change.
- Pick a mode. Number keys 1 to 9 pick a mode while dictating, if you give buttons those keys.
Hear what each press did
Every InputConfig row can speak a phrase when it fires. Turn on Speak in the row's Options and type Dictation for the dictation button, or leave it blank to hear the button's name. YapToText speaks its own state through VoiceOver: Listening, Transcribing, Cleaning up, and when it is done. Together, you hear the press and then the result.
Get out of a layout that took over
InputConfig has an emergency stop that lets go of every key and button and gives the pointer back. Hold Back and Start together for three seconds on most pads, hold socket 7 alone on a PlayStation Access Controller, or press Control Option Command period on a keyboard. The emergency stop page has the details. Put it on your most reliable switch, and test it once.
The short version
- Pointing. InputConfig's Access Controller or Easy Browse preset.
- Writing. One button sends Right Command, which starts and stops YapToText.
- Fixing. A second button on Right Option for Quick Edit.
- Safety. The emergency stop, on the switch you trust.
- What is tested. Each app's own features. The handoff between them follows from their code, not an end to end test.
If your controller or switch does something this page does not expect, open an issue on GitHub. Every one gets read.
This app is completely free. You don't have to make an account. There are no subscriptions, no difficult downloads, and nothing is locked. Made for Apple silicon Macs. Source on GitHub.
Related
Sources
- https://inputconfig.com/guides/xbox-adaptive-controller (checked 2026-10-09)
- https://inputconfig.com/guides/playstation-access-controller (checked 2026-10-09)
- https://inputconfig.com/help/emergency-stop (checked 2026-10-09)
- https://inputconfig.com/help/spoken-feedback (checked 2026-10-09)
- https://apps.apple.com/us/app/inputconfig/id6777759147 (checked 2026-10-09)
- https://apps.apple.com/us/app/yaptotext/id6786382289 (checked 2026-10-09)
Questions
Does the Xbox Adaptive Controller work on a Mac?
It connects as a game controller. To use it as a mouse and keyboard on the desktop, an app such as InputConfig, which is free, maps its stick and buttons.
Can I use the PlayStation Access Controller on a Mac?
Yes, with InputConfig's Access Controller preset: the stick is the pointer and the sockets click, scroll and press keys. The PS button never reaches an app.
Can an adaptive controller start dictation?
Yes. InputConfig can press Apple's dictation key, or Right Command, which starts YapToText. The YapToText handoff has not been tested end to end.
Do switches plugged into the controller work?
They arrive as the controller's buttons, so InputConfig can map them like any other button.