You have a wired workbench: a Thunderbolt dock, ethernet, display, a pair of speakers and a Bluetooth keyboard and mouse. Two Macs live on that desk — one for work, one for personal use. Switching between them should be as simple as moving a single cable.
Without Anchorman, that means manually connecting Bluetooth devices, waiting for them to pair, and disabling WiFi so you're actually on the fast wired network. Every. Single. Time.
Anchorman automates all of that. Plug the Thunderbolt cable into a Mac and within seconds:
- Your Bluetooth keyboard and mouse connect to it automatically
- WiFi turns off because you're already on ethernet
Unplug and hand the cable to the other Mac — it takes over just as seamlessly. No menus, no pairing screens, no forgotten WiFi toggle.
A pair of macOS launchd daemons that manage your peripherals automatically when you dock and undock.
| Daemon | What it does |
|---|---|
anchorman-wifi |
Disables WiFi when docked to ethernet |
anchorman-bluetooth |
Connects Bluetooth peripherals when dock present |
- macOS (tested on macOS Sequoia)
- Must be installed as root (launchd system daemon)
blueutilfor the Bluetooth daemon:brew install blueutil
sudo ./install.shThis installs both daemons. To install only one:
sudo ./install.sh --wifi
sudo ./install.sh --bluetoothsudo ./install.sh --uninstallLog files and the Bluetooth config file are left in place and must be removed manually if desired.
Watches for network interface events using route monitor. When a change is detected, it checks whether any wired ethernet interface has an active link and an assigned IP. If so, it turns WiFi off; when the wired connection drops, WiFi comes back on.
Logs:
tail -f /var/log/anchorman-wifi.log
tail -f /var/log/anchorman-wifi.error.logVerify it works: plug in an ethernet cable — WiFi should turn off within a second. Unplug — WiFi comes back.
Polls the IORegistry every few seconds for a specific Thunderbolt dock. When the dock appears, it connects the configured Bluetooth devices. When the dock is removed, it disconnects them.
This means when you move the Thunderbolt cable from Mac A to Mac B:
- Mac A detects dock removal → disconnects your keyboard and mouse
- Mac B detects dock arrival → connects your keyboard and mouse
system_profiler SPThunderboltDataTypeLook for device_name_key. Use any unique substring of the name as your DOCK_NAME.
blueutil --pairedsudo nano /usr/local/etc/anchorman-bluetooth.confDOCK_NAME="Express Dock" # substring of your dock's product name
BLUETOOTH_DEVICES=("aa:bb:cc:dd:ee:ff" "11:22:33:44:55:66")sudo launchctl unload /Library/LaunchDaemons/com.gringolito.anchorman-bluetooth.plist
sudo launchctl load /Library/LaunchDaemons/com.gringolito.anchorman-bluetooth.plistLogs:
tail -f /var/log/anchorman-bluetooth.log
tail -f /var/log/anchorman-bluetooth.error.logsudo launchctl list | grep anchorman| File | Purpose |
|---|---|
anchorman-wifi.sh |
WiFi daemon (installed to /usr/local/bin/) |
anchorman-bluetooth.sh |
Bluetooth daemon (installed to /usr/local/bin/) |
com.gringolito.anchorman-wifi.plist |
launchd service definition for WiFi daemon |
com.gringolito.anchorman-bluetooth.plist |
launchd service definition for Bluetooth daemon |
install.sh |
Installer / uninstaller |