This is a bash script that will automatically turn your wifi off if you connect your computer to an ethernet connection and turn wifi back on when you unplug your ethernet cable/adapter. If you decide to turn wifi on for whatever reason, it will remember that choice. This was improvised from this mac hint to work with Yosemite, and without hard-coding the adapter names. It's supposed to support growl, but I didn't check that part. I did, however, add OSX notification center support. Feel free to fork and fix any issues you encounter.
Most the credit for these changes go to Dave Holland.
- Mac OSX 10+
- Administrator privileges
- Copy
toggleAirport.sh
to/Library/Scripts/
- Run
chmod 755 /Library/Scripts/toggleAirport.sh
- Copy
com.mine.toggleairport.plist
to/Library/LaunchAgents/
- Run
chmod 600 /Library/LaunchAgents/com.mine.toggleairport.plist
- Run
sudo launchctl load /Library/LaunchAgents/com.mine.toggleairport.plist
to start the watcher
- Run
sudo launchctl unload /Library/LaunchAgents/com.mine.toggleairport.plist
to stop the watcher - Delete
/Library/Scripts/toggleAirport.sh
- Delete
/Library/LaunchAgents/com.mine.toggleairport.plist
- Delete
/private/var/tmp/prev_eth_on
- Delete
/private/var/tmp/prev_air_on
To debug, just run: sudo /Library/Scripts/toggleAirport.sh
and add echo's wherever you'd like
I'm on 12.6 macOS and not getting the above change to launchctl to work. I run the following:
sudo launchctl bootout system /Library/LaunchAgents/com.mine.toggleairport.plist
sudo launchctl bootstrap system /Library/LaunchAgents/com.mine.toggleairport.plist
sudo ifconfig en0 down
sudo ifconfig en0 up
I don't see any errors, but if I do a
launchctl list|grep -i 'com.mine'
nothing shows. I am assuming that means it isn't running. Any suggestions on what I'm missing here?After a reboot I tried the following again from above:
sudo launchctl bootout system /Library/LaunchAgents/com.mine.toggleairport.plist; sudo launchctl bootstrap system /Library/LaunchAgents/com.mine.toggleairport.plist; sudo ifconfig en0 down; sudo ifconfig en0 up; sudo sleep 15;
Here is what I'm getting:
% sudo launchctl bootout system /Library/LaunchAgents/com.mine.toggleairport.plist; sudo launchctl bootstrap system /Library/LaunchAgents/com.mine.toggleairport.plist; sudo ifconfig en0 down; sudo ifconfig en0 up; sudo sleep 15;
/Library/LaunchAgents/com.mine.toggleairport.plist: Could not find specified service
Boot-out failed: 113: Unknown error: 113
Could not find service.
When it says could not find specified service is the the toggleAirport.sh script listed in the .plist file or something else?