🔌 Intelligent Wi-Fi Management for macOS
A lightweight menu bar application that automatically toggles Wi-Fi based on Ethernet connection status, helping you maintain optimal network performance and battery life.
- 🔄 Automatic Wi-Fi Toggle: Intelligently disables Wi-Fi when Ethernet is connected
- 📱 Menu Bar Integration: Clean, native macOS menu bar interface
- 🌐 Multi-Language Support: Available in English and German
- 🔔 Native Notifications: System notifications for connection changes
- ⚙️ Customizable Settings: Configure auto-toggle behavior and launch preferences
- 🚀 Launch at Login: Optional automatic startup
- 🎯 Manual Override: Click to manually toggle Wi-Fi when needed
- 📊 Real-time Status: Live connection status monitoring
- macOS 14.0 or later
- Xcode 15.0 or later (for building from source)
- Administrator privileges (for network interface control)
- Clone the repository
git clone https://github.com/fahidnasir/ToggleWiFi.git
cd ToggleWiFi- Open in Xcode
open ToggleWiFi.xcodeproj- Build and Run
- Select your development team in project settings
- Build and run the project (⌘+R)
Visit the Releases page Download the latest .dmg file Install the application
⚠️ Note: macOS may show a security warning when opening this app for the first time.
Option 1: Right-click on the App Icon in /Applications → Open → Allow Anyway.
Option 2: Open "Privacy & Security" in Mac settings window and scroll down to the bottom and last security failed app will appear there and you can Allow Anyway.
Launch the app - ToggleWiFi will appear in your menu bar Left-click the icon to manually toggle Wi-Fi Right-click the icon to access settings and options Configure settings to enable/disable automatic behavior Choose your language from the settings panel
Enable Auto Wi-Fi: Toggle automatic Wi-Fi management Settings: Configure app preferences and view status About: View app information Quit: Exit the application
Auto Wi-Fi Toggle: Enable/disable automatic Wi-Fi management Launch at Login: Start ToggleWiFi automatically when you log in Language Selection: Choose between English and German Connection Status: Real-time Ethernet and Wi-Fi status display
ToggleWiFi supports multiple languages:
- 🇺🇸 English (Default)
- 🇩🇪 German (Deutsch)
- Create a new .lproj folder for your language
- Add translated Localizable.strings file
- Update the language list in SettingsView.swift
- SwiftUI: Modern declarative UI framework
- Network Framework: Real-time network monitoring
- UserNotifications: Native macOS notifications
- ServiceManagement: Launch at login functionality
MenuBarManager: Handles menu bar interactions and notificationsNetworkMonitor: Monitors Ethernet connection statusWiFiManager: Controls Wi-Fi interface via networksetupLocalizationManager: Manages app localizationSettingsView: Configuration interface
The app requires:
- Network client entitlement for monitoring connections
- Apple Events automation for system interaction
- App sandbox disabled for network interface control
Contributions are welcome! Please feel free to submit a Pull Request.
- Fork the repository
- Create a feature branch (git checkout -b feature/AmazingFeature)
- Commit your changes (git commit -m 'Add some AmazingFeature')
- Push to the branch (git push origin feature/AmazingFeature)
- Open a Pull Request
- Follow Swift style guidelines
- Maintain localization for all user-facing strings
- Test on multiple macOS versions
- Document new features
If you encounter any issues, please create an issue on GitHub with:
- macOS version
- Steps to reproduce
- Expected vs actual behavior
- Console logs (if applicable)
This project is licensed under the MIT License - see the LICENSE file for details.
- Apple's Network Framework documentation
- SwiftUI community resources
- macOS development community
- 📧 Create an issue on GitHub
- 💬 Start a discussion in the repository
- ⭐ Star the project if you find it useful!
Made with ❤️ for the macOS community






