The only game I play on the Mac Mini connected to our TV is Cuphead.
I wanted the game to launch automatically when I turn on one of our Nimbus game controllers, which connect via Bluetooth.
This is how:
- Save the .scpt file below as e.g. ~/Library/Scripts/LaunchCupheadIfControllerIsConnected.scpt
- In the .scpt, change "Nimbus" if your Bluetooth game controllers have some other name.
- Save the .plist below as e.g. ~/Library/LaunchAgents/henrik.launch_cuphead_if_controller_is_connected.plist
- In the .plist, change
media
to whatever your username is.
- In the .plist, change
- Load the .plist as a launch agent with
launchctl load ~/Library/LaunchAgents/henrik.launch_cuphead_if_controller_is_connected.plist
That should be it. When something changes about Bluetooth devices, the launch agent will trigger the script. The script checks if there is a connected device with "Nimbus" in its name (our controllers are named "Nimbus 1" and "Nimbus 2"). If so, it launches Cuphead if not already launched.
On the first run (possibly two runs?) you should get a macOS prompt to confirm permissions.
Works for me(tm) on macOS Mojave.
I've never been able to get this script working, or it was unreliable for me.
For what I needed, I used a macOS app called Shortery that runs automations when a particular condition is triggered. In this way I'm able to run a shortcut when a device connect or disconnect from the Mac.