π 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