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
@adamshand Many thanks for your script, really helpful and straight forward.
The only issue I have with it is that it supports only one ethernet port. This is problematic for me as at home I'm connected to a dockingstation with an builtin ethernet port, in the office I'm connected to another brand dockingstation with a builtin ethernerport (other identifier, obviously) and when I'm on the run at customer side I have a normal USB to Ethernet Adaptor.
Optimally the script would support multiple Ethernet interfaces and toggle wifi off as soon as at least one of the cabled connections is connected.
I don't think this problem is relevant for wifi connections as you're normally running on the one that is built in on the computer and not attaching external ones. For wifi the actual behaviour fits perfectly.
Would be great if that could be implemented too.
Cheers Patrik