{"id":31684938,"url":"https://github.com/darksworm/aeroswitch","last_synced_at":"2025-10-08T08:58:39.090Z","repository":{"id":310195545,"uuid":"1039038303","full_name":"darksworm/aeroswitch","owner":"darksworm","description":"fast window switcher for aerospace","archived":false,"fork":false,"pushed_at":"2025-08-21T14:43:48.000Z","size":2004,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2025-09-21T06:46:49.922Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Swift","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/darksworm.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","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-08-16T10:50:02.000Z","updated_at":"2025-08-21T14:43:52.000Z","dependencies_parsed_at":"2025-08-16T13:07:09.858Z","dependency_job_id":"78b46c8a-bb8a-4e1f-a52f-ea6765000883","html_url":"https://github.com/darksworm/aeroswitch","commit_stats":null,"previous_names":["darksworm/aeroswitch"],"tags_count":7,"template":false,"template_full_name":null,"purl":"pkg:github/darksworm/aeroswitch","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/darksworm%2Faeroswitch","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/darksworm%2Faeroswitch/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/darksworm%2Faeroswitch/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/darksworm%2Faeroswitch/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/darksworm","download_url":"https://codeload.github.com/darksworm/aeroswitch/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/darksworm%2Faeroswitch/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":278916428,"owners_count":26068091,"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","status":"online","status_checked_at":"2025-10-08T02:00:06.501Z","response_time":56,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"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":[],"created_at":"2025-10-08T08:58:37.982Z","updated_at":"2025-10-08T08:58:39.083Z","avatar_url":"https://github.com/darksworm.png","language":"Swift","funding_links":[],"categories":[],"sub_categories":[],"readme":"# AeroSwitch\n\n\u003cp align=\"center\"\u003e\n  \u003cimg src=\"Assets.xcassets/AppIcon.appiconset/128.png\" alt=\"AeroSwitch Icon\" width=\"128\" height=\"128\"\u003e\n\u003c/p\u003e\n\n**A fast and lightweight window switcher for AeroSpace users**\n\nAeroSwitch is designed for users who struggle with switching workspaces by number. Instead of memorizing workspace numbers, simply search for your applications by name and switch directly to any window across all workspaces.\n\n## 🚀 Quick Start\n\n### Installation\n\n```bash\n# Add the tap and install\nbrew tap darksworm/aeroswitch\nbrew install darksworm/tap/aeroswitch\n```\n\n### Setup\n\nStart AeroSwitch as a background service that runs automatically on login:\n\n```bash\n# Start the service and enable auto-start on login\nbrew services start aeroswitch\n```\n\nThen configure the activation keybinding in your AeroSpace configuration (`~/.aerospace.toml`):\n\n```toml\n[mode.main.binding]\ncmd-tab = 'exec-and-forget /opt/homebrew/bin/aeroswitch --activate'\n```\n\n### Start Using\n\n1. **Restart AeroSpace** to load the new configuration\n2. **Press Cmd+Tab** to open the window switcher\n3. **Type to search** for windows by app name or title\n4. **Use arrow keys** to navigate, **Enter** to switch, **Alt+Enter** to summon\n\nThat's it! 🎉\n\n## ✨ Features\n\n- **🔍 Smart Search**: Search windows by application name or window title\n- **🚀 Lightning Fast**: Instant fuzzy search with intelligent scoring\n- **🎨 Beautiful UI**: Translucent design with rounded corners and app icons\n- **⌨️ Keyboard Driven**: Navigate entirely with keyboard shortcuts\n- **🖱️ Mouse Support**: Click to select windows when preferred\n- **📱 System Tray**: Unobtrusive system tray integration\n- **🔄 Auto-Hide**: Automatically closes when losing focus\n- **🎯 Two Strategies**: Choose between workspace focus or summon modes\n\n## 🖼️ Screenshot\n\n![AeroSwitch Demo](screenshots/aeroswitch-demo.png)\n\nThe window switcher displays a clean, searchable list of all windows across workspaces with:\n- Application icons for easy visual identification\n- App name and window title\n- Current workspace indicator\n- Translucent background that adapts to your desktop\n\n## 📋 Prerequisites\n\n- macOS 13.0 or later (supports both Intel and Apple Silicon)\n- [AeroSpace](https://github.com/nikitabobko/AeroSpace) window manager\n- Swift 6.1 or later (for building from source)\n\n## ⚙️ Advanced Configuration\n\n### Alternative Hotkeys\n\nDon't want to override Cmd+Tab? Use these alternatives:\n\n```toml\n# Use Alt+Space instead\n[mode.main.binding]\nalt-space = 'exec-and-forget /opt/homebrew/bin/aeroswitch --activate'\n\n# Or use Cmd+Shift+Tab\n[mode.main.binding]\ncmd-shift-tab = 'exec-and-forget /opt/homebrew/bin/aeroswitch --activate'\n```\n\n### Command Line Options\n\n```bash\naeroswitch [OPTIONS]\n\nOptions:\n  --background    Start as background helper process\n  --activate      Activate existing helper process  \n  --summon        Use summon-workspace instead of workspace switching\n  --help, -h      Show help message\n\nDefault behavior:\n  If no flags are provided, will activate existing instance or start background process.\n```\n\n### Keyboard Shortcuts\n\n- **Search**: Start typing to filter windows\n- **Navigate**: Use `↑` and `↓` arrow keys to select windows\n- **Activate**: Press `Enter` to switch to selected window\n- **Summon**: Press `Alt+Enter` to bring window to current workspace  \n- **Cancel**: Press `Esc` to close the switcher\n\n### System Tray\n\nRight-click the system tray icon for options:\n- **Show Window Switcher**: Open the window switcher manually\n- **Quit AeroSwitch**: Exit the application\n\n## 🔧 Alternative Installation: Build from Source\n\nFor developers or users who prefer building from source:\n\n```bash\ngit clone https://github.com/darksworm/aeroswitch.git\ncd aeroswitch\nmake release\nsudo make install\n```\n\n\u003e **Note**: If you installed from source instead of Homebrew, use `/usr/local/bin/aeroswitch` instead of `/opt/homebrew/bin/aeroswitch` in your AeroSpace configuration.\n\n## 💡 Tips \u0026 Troubleshooting\n\n### Workspace Strategies\n\nAeroSwitch supports two workspace switching strategies:\n\n1. **Focus Mode** (default): Switches to the target workspace, then focuses the window\n2. **Summon Mode**: Brings the window to the current workspace\n\n### AeroSpace Integration\n\nAeroSwitch automatically detects your AeroSpace installation in common locations:\n- `/opt/homebrew/bin/aerospace`\n- `/usr/local/bin/aerospace`  \n- `/usr/bin/aerospace`\n\n### Troubleshooting\n\n**AeroSwitch won't start:**\n- Check that the binary is executable: `chmod +x /usr/local/bin/aeroswitch`\n- Verify AeroSpace is running: `ps aux | grep aerospace`\n\n**Window switcher doesn't appear:**\n- Make sure the background process is running: `ps aux | grep aeroswitch`\n- Check AeroSpace logs for any errors\n\n## 🔧 Development\n\n### Building from Source\n\n```bash\n# Debug build\nswift build\n\n# Release build\nswift build -c release\n```\n\n## 🤝 Contributing\n\nContributions are welcome! Please feel free to submit issues, feature requests, or pull requests.\n\n### Development Guidelines\n\n- Follow Swift conventions and best practices\n- Test changes thoroughly with AeroSpace\n- Update documentation for new features\n- Use semantic commit messages\n\n## 📝 License\n\nThis project is licensed under the GPL v3 License - see the [LICENSE](LICENSE) file for details.\n\n## 🙏 Acknowledgments\n\n- [AeroSpace](https://github.com/nikitabobko/AeroSpace) - The excellent tiling window manager that inspired this tool\n- Swift and SwiftUI communities for excellent documentation and examples\n\n## 📞 Support\n\nIf you encounter issues or have questions:\n\n1. Check the [Issues](https://github.com/darksworm/aeroswitch/issues) page\n2. Create a new issue with detailed information about your problem\n3. Include your macOS version, AeroSpace version, and steps to reproduce\n\n---\n\n**Made with ❤️ for the AeroSpace community**","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdarksworm%2Faeroswitch","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdarksworm%2Faeroswitch","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdarksworm%2Faeroswitch/lists"}