How cap153/stools works
stools is a lightweight desktop application launcher. The main workflow is platform-specific startup, application discovery and indexing, interactive fuzzy/pinyin search with MRU ranking, display in a Slint window, and launching the selected entry. Configuration, keybindings, themes, localization, and platform-specific Windows tray/hotkey behavior are supporting capabilities. Some subsystem links rely on README or SOURCE INDEX references rather than inspected implementation excerpts.
Main entry points: windows.rs Windows tray runtime · linux.rs Linux runtime · launcher.rs Row and icon helpers · search.rs Search worker
Components 21
Platform runtime
- Entry dispatch
src/main.rs - Linux runtime
src/platform/linux.rs - Windows tray runtime
src/platform/windows.rs
App catalog
- App entry model
src/core/model.rs - Index cache
src/core/indexer.rs - Linux app scan
src/platform/linux.rs - Windows app scan
src/platform/windows.rs - Shell icons
src/platform/windows_icon.rs
Search and launcher UI
- Launcher window
ui/launcher.slint - Row and icon helpers
src/launcher.rs - Search worker
src/core/search.rs - Fuzzy and pinyin matcher
src/core/matcher.rs
Preferences and state
- Configuration
src/core/config.rs - Search paths
src/core/path_utils.rs - Keybindings
src/core/keybind.rs - Theme rendering
src/core/theme.rs - Locale support
src/core/i18n.rs - MRU history
src/core/history.rs
Other components
- User
- Window manager
- Operating system
Connections 35
- User → Entry dispatch: starts launcher
README.md - Window manager → Linux runtime: binds launch key
README.md - Entry dispatch → Linux runtime: dispatches on Linux
src/main.rs - Entry dispatch → Windows tray runtime: dispatches on Windows
src/main.rs - Linux runtime → Configuration: loads settings
src/platform/linux.rs - Windows tray runtime → Configuration: loads settings
src/platform/windows.rs - Configuration → Locale support: selects template
src/core/config.rs - Linux runtime → Search paths: resolves scan dirs
src/platform/linux.rs - Windows tray runtime → Search paths: resolves scan dirs
src/platform/windows.rs - Linux runtime → Linux app scan: scans applications
README.md - Windows tray runtime → Windows app scan: scans applications
README.md - Linux app scan → App entry model: builds entries
src/platform/linux.rs - Windows app scan → App entry model: builds entries
src/platform/windows.rs - Linux runtime → Index cache: loads index cache
README.md - Index cache → App entry model: stores entries
src/core/indexer.rs - Linux runtime → Keybindings: handles bindings
src/platform/linux.rs - Windows tray runtime → Keybindings: handles bindings
src/platform/windows.rs - Windows tray runtime → Operating system: registers hotkey
README.md - Windows tray runtime → Windows app scan: rescans in background
src/platform/windows.rs - Linux runtime → Search worker: creates search
src/platform/linux.rs - Windows tray runtime → Search worker: creates search
src/platform/windows.rs - Search worker → Fuzzy and pinyin matcher: ranks queries
src/core/search.rs - Fuzzy and pinyin matcher → MRU history: ranks by recency
src/core/matcher.rs - Search worker → Launcher window: updates results
src/core/search.rs - Linux runtime → Row and icon helpers: builds visible rows
src/platform/linux.rs - Windows tray runtime → Row and icon helpers: builds visible rows
src/platform/windows.rs - Row and icon helpers → Launcher window: provides row data
src/launcher.rs - Row and icon helpers → Shell icons: loads shell icons
src/launcher.rs - Linux runtime → Operating system: launches selection
README.md - Windows tray runtime → Operating system: shell launches selection
README.md - Linux runtime → MRU history: records launches
README.md - Windows tray runtime → MRU history: records launches
README.md - Configuration → Theme rendering: supplies theme
src/core/theme.rs - Linux runtime → Theme rendering: applies appearance
src/platform/linux.rs - Windows tray runtime → Theme rendering: applies appearance
src/platform/windows.rs