A fast and lightweight window switcher for AeroSpace users
AeroSwitch 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.
# Add the tap and install
brew tap darksworm/aeroswitch
brew install darksworm/tap/aeroswitchStart AeroSwitch as a background service that runs automatically on login:
# Start the service and enable auto-start on login
brew services start aeroswitchThen configure the activation keybinding in your AeroSpace configuration (~/.aerospace.toml):
[mode.main.binding]
cmd-tab = 'exec-and-forget /opt/homebrew/bin/aeroswitch --activate'- Restart AeroSpace to load the new configuration
- Press Cmd+Tab to open the window switcher
- Type to search for windows by app name or title
- Use arrow keys to navigate, Enter to switch, Alt+Enter to summon
That's it! π
- π Smart Search: Search windows by application name or window title
- π Lightning Fast: Instant fuzzy search with intelligent scoring
- π¨ Beautiful UI: Translucent design with rounded corners and app icons
- β¨οΈ Keyboard Driven: Navigate entirely with keyboard shortcuts
- π±οΈ Mouse Support: Click to select windows when preferred
- π± System Tray: Unobtrusive system tray integration
- π Auto-Hide: Automatically closes when losing focus
- π― Two Strategies: Choose between workspace focus or summon modes
The window switcher displays a clean, searchable list of all windows across workspaces with:
- Application icons for easy visual identification
- App name and window title
- Current workspace indicator
- Translucent background that adapts to your desktop
- macOS 13.0 or later (supports both Intel and Apple Silicon)
- AeroSpace window manager
- Swift 6.1 or later (for building from source)
Don't want to override Cmd+Tab? Use these alternatives:
# Use Alt+Space instead
[mode.main.binding]
alt-space = 'exec-and-forget /opt/homebrew/bin/aeroswitch --activate'
# Or use Cmd+Shift+Tab
[mode.main.binding]
cmd-shift-tab = 'exec-and-forget /opt/homebrew/bin/aeroswitch --activate'aeroswitch [OPTIONS]
Options:
--background Start as background helper process
--activate Activate existing helper process
--summon Use summon-workspace instead of workspace switching
--help, -h Show help message
Default behavior:
If no flags are provided, will activate existing instance or start background process.- Search: Start typing to filter windows
- Navigate: Use
βandβarrow keys to select windows - Activate: Press
Enterto switch to selected window - Summon: Press
Alt+Enterto bring window to current workspace - Cancel: Press
Escto close the switcher
Right-click the system tray icon for options:
- Show Window Switcher: Open the window switcher manually
- Quit AeroSwitch: Exit the application
For developers or users who prefer building from source:
git clone https://github.com/darksworm/aeroswitch.git
cd aeroswitch
make release
sudo make installNote: If you installed from source instead of Homebrew, use
/usr/local/bin/aeroswitchinstead of/opt/homebrew/bin/aeroswitchin your AeroSpace configuration.
AeroSwitch supports two workspace switching strategies:
- Focus Mode (default): Switches to the target workspace, then focuses the window
- Summon Mode: Brings the window to the current workspace
AeroSwitch automatically detects your AeroSpace installation in common locations:
/opt/homebrew/bin/aerospace/usr/local/bin/aerospace/usr/bin/aerospace
AeroSwitch won't start:
- Check that the binary is executable:
chmod +x /usr/local/bin/aeroswitch - Verify AeroSpace is running:
ps aux | grep aerospace
Window switcher doesn't appear:
- Make sure the background process is running:
ps aux | grep aeroswitch - Check AeroSpace logs for any errors
# Debug build
swift build
# Release build
swift build -c releaseContributions are welcome! Please feel free to submit issues, feature requests, or pull requests.
- Follow Swift conventions and best practices
- Test changes thoroughly with AeroSpace
- Update documentation for new features
- Use semantic commit messages
This project is licensed under the GPL v3 License - see the LICENSE file for details.
- AeroSpace - The excellent tiling window manager that inspired this tool
- Swift and SwiftUI communities for excellent documentation and examples
If you encounter issues or have questions:
- Check the Issues page
- Create a new issue with detailed information about your problem
- Include your macOS version, AeroSpace version, and steps to reproduce
Made with β€οΈ for the AeroSpace community