A fast, cross-platform application launcher with fuzzy search that helps you quickly find and launch applications from anywhere on your system.
Features
- Cross-Platform: Works on Windows, Linux, and macOS
- Daemon Architecture: Lightweight background service for instant response
- Smart Fuzzy Search: Intelligent character matching with proximity-based scoring
- Custom Hotkeys: Configure any key combination to show the launcher
- Auto-Discovery: Automatically finds applications in standard system directories
- Clean Interface: Minimal, distraction-free design
- Icon Support: Platform-specific icon loading with smart fallbacks
- System Integration: Works with your OS's application management
Installation
Prerequisites
Ensure you have Rust 1.89+ installed on your system.
From Source
git clone https://github.com/qa3-tech/launchdock.git cd launchdock cargo build --release cargo install --path .
From Binaries
Download the latest release for your platform from the releases page.
Usage
Basic Commands
# Start/stop the daemon launchdock start launchdock stop # Show the launcher launchdock show # Check status launchdock status # View logs launchdock logs launchdock logs clear
Using the Launcher
- Press your configured hotkey to show the launcher
- Type to search for applications (fuzzy matching supported)
- Use arrow keys or number shortcuts (1-7) to select
- Press Enter to launch, or Escape to close
Search Examples:
- Type
fxto find Firefox - Type
gvto find applications like "Gnome Video" or "GoodVibes" - Type
codeto find VS Code, Visual Studio Code, etc.
How It Works
LaunchDock uses intelligent fuzzy search that matches characters in order but not necessarily consecutively. The search algorithm considers:
- Character proximity: Closer matches rank higher
- Application name length: Shorter names get slight preference
- Early matches: Matches at the beginning of names score higher
- Consecutive characters: Sequential character matches get bonus points
This means typing psg will find "Photoshop Graphics" before "Photo Studio Gallery" because the characters are closer together.
Platform Support
Linux
- Scans
/usr/share/applications/, user applications, and desktop entries - Supports
.desktopfiles, AppImages, and executables - Icon loading from standard theme directories
macOS
- Scans
/Applications/, system apps, and user applications - Supports
.appbundles with comprehensive icon discovery - Searches multiple icon naming patterns and formats
- Includes system commands: Shutdown, Logout, Restart, Lock Screen
Configuration
LaunchDock works out of the box with zero configuration. It automatically:
- Discovers applications in standard system directories
- Finds and loads application icons
- Generates fallback icons for apps without icons
Building from Source
Development Setup
git clone https://github.com/qa3-tech/launchdock.git cd launchdock # Build debug version cargo build # Run tests cargo test # Build optimized release cargo build --release # Install locally cargo install --path .
Code Quality
# Format code cargo fmt # Lint code cargo clippy # Run with debug logging RUST_LOG=debug cargo run -- start
Troubleshooting
Daemon Issues
# Check if running launchdock status # View error logs launchdock logs # Restart daemon launchdock stop && launchdock start
Missing Applications
- Ensure apps are installed in standard directories
- Restart daemon to refresh:
launchdock stop && launchdock start - Check logs to see scan results:
launchdock logs - Verify system permissions for application directories
Performance
- Clear large log files:
launchdock logs clear - Check for repeated errors:
launchdock logs | grep ERROR
Platform-Specific
Linux: Ensure desktop entries are properly installed
macOS:
-
Grant permissions in System Settings → Privacy & Security if needed
-
Lock Screen Command: The Lock Screen system command requires Accessibility permissions to work properly:
- Try using Lock Screen from LaunchDock
- macOS will prompt you to grant Accessibility permissions (or the command will fail silently)
- Open System Settings → Privacy & Security → Accessibility
- Find LaunchDock in the list and enable it (you may need to click the + button to add it manually)
- You may need to restart LaunchDock:
launchdock stop && launchdock start
Note: Shutdown and Restart commands will always prompt for your password as they require administrator privileges. This is a macOS security requirement.
Architecture
LaunchDock uses a clean client-server architecture:
- CLI Client: Handles commands and communicates with daemon
- Background Daemon: Manages application discovery and UI lifecycle
- UI Module: Cross-platform launcher interface with Iced framework
- Model Layer: Application data structures and fuzzy search logic
Contributing
Contributions are welcome! Please see our dual licensing model below.
Development Workflow
- Fork the repository
- Create a feature branch:
git checkout -b feature/amazing-feature - Make your changes and add tests
- Ensure code quality:
cargo fmt && cargo clippy - Commit:
git commit -m 'Add amazing feature' - Push:
git push origin feature/amazing-feature - Open a Pull Request
