Music Decoy - Stop launching the Music app whenever you press ▶ Play
Music Decoy<br>Stop launching the Music app<br>whenever you press ▶ Play<br>DownloadView Source<br>$brew install music-decoy
Stop the Music app from launching<br>As long as the Music Decoy app is running, the system Music app won't launch when you accidentally press ▶ Play.<br>The app does absolutely no work in the background. It works by simply existing as a running process, thanks to having the same bundle identifier as the Music app.<br>How it works?<br>By having the bundle identifier com.apple.Music, the app makes the system think that the Music app is already running.
Configuration
Since v1.1 you can configure Music Decoy to launch another app when the ▷ Play button is pressed.
To do that, run the following command in the Terminal (example for Spotify):
defaults write com.lowtechguys.MusicDecoy mediaAppPath /Applications/Spotify.app
To reset the configuration, run:
defaults delete com.lowtechguys.MusicDecoy mediaAppPath
When does Music launch itself?
When you press the ▶ Play key on your keyboard and there is no other app playing audio
When a bluetooth headset connects and sends a play command
When ending a call, which causes the bluetooth headset to switch from call mode to music mode
Why does this happen?
There is a daemon called rcd (short for Remote Control Daemon) that is responsible for handling media keys.
When a play event occurs, rcd checks if there is an app that is currently playing audio. If there is, it sends the play command to that app. If there isn't, it launches the system Music app.
There is a way to disable that daemon but it also disables the ability to control media playback with the keyboard.
Alternatives
Based on this StackExchange answer, there are a few different ways to achieve the same effect:
launchctl unload -w /System/Library/LaunchAgents/com.apple.rcd.plist
Problem: disables the Play button completely
noTunes which listens for launched apps and kills Music as soon as it is launched
Problem: it does use a tiny bit of CPU in the background although checking for launched apps is very little work
Advantage: it can launch a custom app on Play which this app can't do
Uh.. how do I quit this app?
The app has no Dock icon and no menubar icon so to quit it you'd need to do one of the following:
Launch Activity Monitor , find Music Decoy and press the ❌ button at the top
Run the following command in the Terminal: killall 'Music Decoy'