{"id":29460006,"url":"https://github.com/fahidnasir/togglewifi","last_synced_at":"2026-04-13T01:36:59.077Z","repository":{"id":304263357,"uuid":"1018272350","full_name":"fahidnasir/ToggleWifi","owner":"fahidnasir","description":"🔌 Intelligent macOS menu bar application that automatically toggles Wi-Fi based on Ethernet connection status. Built with SwiftUI and supports multiple languages.","archived":false,"fork":false,"pushed_at":"2025-07-12T00:27:02.000Z","size":155,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2025-07-12T02:53:59.042Z","etag":null,"topics":["automation","ethernet","macos","menubar","menubar-app","multilingual","network","swift","swiftui","utility","wifi"],"latest_commit_sha":null,"homepage":"https://github.com/fahidnasir/ToggleWiFi","language":"Swift","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/fahidnasir.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2025-07-11T23:26:34.000Z","updated_at":"2025-07-12T00:27:05.000Z","dependencies_parsed_at":"2025-07-12T02:55:31.104Z","dependency_job_id":"8cc4f170-724b-443c-ad79-b96524444dd9","html_url":"https://github.com/fahidnasir/ToggleWifi","commit_stats":null,"previous_names":["fahidnasir/togglewifi"],"tags_count":1,"template":false,"template_full_name":null,"purl":"pkg:github/fahidnasir/ToggleWifi","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fahidnasir%2FToggleWifi","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fahidnasir%2FToggleWifi/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fahidnasir%2FToggleWifi/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fahidnasir%2FToggleWifi/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/fahidnasir","download_url":"https://codeload.github.com/fahidnasir/ToggleWifi/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fahidnasir%2FToggleWifi/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":265233499,"owners_count":23731800,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["automation","ethernet","macos","menubar","menubar-app","multilingual","network","swift","swiftui","utility","wifi"],"created_at":"2025-07-14T02:01:10.598Z","updated_at":"2026-04-13T01:36:59.063Z","avatar_url":"https://github.com/fahidnasir.png","language":"Swift","funding_links":[],"categories":[],"sub_categories":[],"readme":"# ToggleWiFi\n\n![Workflow Diagram](Screens/app-togglewifi.png)\n\n\n\u003cdiv align=\"center\"\u003e\n  \u003cimg src=\"https://img.shields.io/badge/Platform-macOS-blue.svg\" alt=\"Platform\"\u003e\n  \u003cimg src=\"https://img.shields.io/badge/Language-Swift-orange.svg\" alt=\"Language\"\u003e\n  \u003cimg src=\"https://img.shields.io/badge/Framework-SwiftUI-green.svg\" alt=\"Framework\"\u003e\n  \u003cimg src=\"https://img.shields.io/badge/License-MIT-yellow.svg\" alt=\"License\"\u003e\n  \u003cimg src=\"https://img.shields.io/badge/macOS-14.0+-purple.svg\" alt=\"macOS Version\"\u003e\n\u003c/div\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003cstrong\u003e🔌 Intelligent Wi-Fi Management for macOS\u003c/strong\u003e\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n  A lightweight menu bar application that automatically toggles Wi-Fi based on Ethernet connection status, helping you maintain optimal network performance and battery life.\n\u003c/p\u003e\n\n## ✨ Features\n\n- **🔄 Automatic Wi-Fi Toggle**: Intelligently disables Wi-Fi when Ethernet is connected\n- **📱 Menu Bar Integration**: Clean, native macOS menu bar interface\n- **🌐 Multi-Language Support**: Available in English and German\n- **🔔 Native Notifications**: System notifications for connection changes\n- **⚙️ Customizable Settings**: Configure auto-toggle behavior and launch preferences\n- **🚀 Launch at Login**: Optional automatic startup\n- **🎯 Manual Override**: Click to manually toggle Wi-Fi when needed\n- **📊 Real-time Status**: Live connection status monitoring\n\n## Screenshots\n\n### Application Workflow\n\n![Workflow Diagram](Screens/app-togglewifi2.png)\n![Workflow Diagram](Screens/toggle-wifi_workflow.jpeg)\n\n### Settings Screen\n\n#### English\n\n![Settings English](Screens/settings_english.jpg)\n\n#### German\n\n![Settings German](Screens/settings_german.jpg)\n\n### Menubar\n\n![App Menubar](Screens/app_menubar.jpg)\n\n### Notifications upon status change\n\n![Notifications](Screens/notifications.jpg)\n\n---\n\n## 🖥️ System Requirements\n\n- macOS 14.0 or later\n- Xcode 15.0 or later (for building from source)\n- Administrator privileges (for network interface control)\n\n## 🚀 Installation\n\n### Option 1: Build from Source\n\n1. **Clone the repository**\n\n```bash\n  git clone https://github.com/fahidnasir/ToggleWiFi.git\n  cd ToggleWiFi\n```\n\n2. **Open in Xcode**\n\n```bash\n  open ToggleWiFi.xcodeproj\n```\n\n3. Build and Run\n\n- Select your development team in project settings\n- Build and run the project (⌘+R)\n\n### Option 2: Download Release\n\nVisit the Releases page\nDownload the latest .dmg file\nInstall the application\n\n    ⚠️ Note: macOS may show a security warning when opening this app for the first time.\n\n    Option 1: Right-click on the App Icon in /Applications → Open → Allow Anyway.\n\n    Option 2: Open \"Privacy \u0026 Security\" in Mac settings window and scroll down to the bottom and last security failed app will appear there and you can Allow Anyway.\n\n### 🎯 Usage\n\nLaunch the app - ToggleWiFi will appear in your menu bar\nLeft-click the icon to manually toggle Wi-Fi\nRight-click the icon to access settings and options\nConfigure settings to enable/disable automatic behavior\nChoose your language from the settings panel\n\n### Menu Options\n\nEnable Auto Wi-Fi: Toggle automatic Wi-Fi management\nSettings: Configure app preferences and view status\nAbout: View app information\nQuit: Exit the application\n\n### ⚙️ Settings\n\nAuto Wi-Fi Toggle: Enable/disable automatic Wi-Fi management\nLaunch at Login: Start ToggleWiFi automatically when you log in\nLanguage Selection: Choose between English and German\nConnection Status: Real-time Ethernet and Wi-Fi status display\n\n### 🌐 Localization\n\nToggleWiFi supports multiple languages:\n\n- 🇺🇸 English (Default)\n- 🇩🇪 German (Deutsch)\n\n### Adding New Languages\n\n1. Create a new .lproj folder for your language\n2. Add translated Localizable.strings file\n3. Update the language list in SettingsView.swift\n\n### 🔧 Technical Details\n\n#### Architecture\n\n- SwiftUI: Modern declarative UI framework\n- Network Framework: Real-time network monitoring\n- UserNotifications: Native macOS notifications\n- ServiceManagement: Launch at login functionality\n\n#### Key Components\n\n- `MenuBarManager`: Handles menu bar interactions and notifications\n- `NetworkMonitor`: Monitors Ethernet connection status\n- `WiFiManager`: Controls Wi-Fi interface via networksetup\n- `LocalizationManager`: Manages app localization\n- `SettingsView`: Configuration interface\n\n#### Permissions\n\nThe app requires:\n\n- Network client entitlement for monitoring connections\n- Apple Events automation for system interaction\n- App sandbox disabled for network interface control\n\n### 🤝 Contributing\n\nContributions are welcome! Please feel free to submit a Pull Request.\n\n#### Development Setup\n\n1. Fork the repository\n1. Create a feature branch (git checkout -b feature/AmazingFeature)\n1. Commit your changes (git commit -m 'Add some AmazingFeature')\n1. Push to the branch (git push origin feature/AmazingFeature)\n1. Open a Pull Request\n\n#### Code Guidelines\n\n- Follow Swift style guidelines\n- Maintain localization for all user-facing strings\n- Test on multiple macOS versions\n- Document new features\n\n### 🐛 Bug Reports\n\nIf you encounter any issues, please create an issue on GitHub with:\n\n- macOS version\n- Steps to reproduce\n- Expected vs actual behavior\n- Console logs (if applicable)\n\n### 📄 License\n\nThis project is licensed under the MIT License - see the LICENSE file for details.\n\n### 🙏 Acknowledgments\n\n- Apple's Network Framework documentation\n- SwiftUI community resources\n- macOS development community\n\n### 📞 Support\n\n- 📧 Create an issue on GitHub\n- 💬 Start a discussion in the repository\n- ⭐ Star the project if you find it useful!\n\n\u003cdiv align=\"center\"\u003e\n  \u003cp\u003eMade with ❤️ for the macOS community\u003c/p\u003e\n  \u003cp\u003e\n    \u003ca href=\"https://github.com/fahidnasir/ToggleWiFi/issues\"\n      \u003eReport Bug\u003c/a\n    \u003e\n    ·\n    \u003ca href=\"https://github.com/fahidnasir/ToggleWiFi/issues\"\n      \u003eRequest Feature\u003c/a\n    \u003e\n  \u003c/p\u003e\n\u003c/div\u003e\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffahidnasir%2Ftogglewifi","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ffahidnasir%2Ftogglewifi","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffahidnasir%2Ftogglewifi/lists"}