Desperate to grade faster, I used ChatGPT to build this controller mapper to take advantage of my PS5 dual sense controller, so I can apply rubrics in Gradescope more ergonomically. One day AI will take over the grading but I can dream. --- Nov 1, 2026
DualGrade maps a PS5 DualSense controller to keyboard and mouse controls on macOS.
The download contains the source code. Follow the steps below to build and install the app on your Mac.
Download and extract the DualGrade ZIP.
Install Apple's Command Line Tools if you do not already have them. Open Terminal and run:
xcode-select --install
Finish the installation before continuing.
Open the project folder in Terminal. Type cd (including the space), drag the
extracted DualGrade folder into the Terminal window, and press Return.
Build the app by running:
bash build.command
Move the app into Applications. Quit any running copy of DualGrade using its menu bar menu.
When the build finishes, find DualGrade.app in the dist folder and move it to
Applications, replacing the previous copy if you are updating.
Refresh Accessibility approval when updating. After replacing the app, keep DualGrade closed and run the following command from the extracted project folder:
bash repair-accessibility.command
This clears only DualGrade's previous Accessibility approval and opens the installed app and Privacy settings. You must grant access again in the next step. You can skip this step on a first installation; use it later if an update leaves controller output blocked.
Allow keyboard and mouse output. Open the copy of DualGrade in Applications, then open System Settings → Privacy & Security → Accessibility and enable DualGrade. If it is not listed, click + and select DualGrade from Applications. Quit and reopen DualGrade afterward.
The current build is not notarized. If macOS blocks it and you trust the download, attempt to open the app, then open System Settings → Privacy & Security and look for Open Anyway.
Connect your controller using USB-C, select a profile, and click Enable. Press the controller's Options button to pause or resume mapping. Changes to mappings save automatically.
USB-C is recommended, especially for touchpad features. Bluetooth touchpad support remains experimental.