QsFlow is a Wayland-native application launcher and quick-search tool for Linux. Type to search installed apps, Firefox bookmarks, web suggestions, GitHub, and inline math — all from a single floating overlay. Built with a Rust backend and QML frontend powered by Quickshell.
- App Launcher — fuzzy-search
.desktopentries across XDG data directories. - File & Path Search — walk
~/Desktop,~/Documents,~/Downloadsand home; open results in the default application. Files get type-specific icons by extension. - Clipboard History — search and paste from
cliphisthistory viacprefix. - System Commands — type
lock,reboot,shutdown,suspend, orlogoutto run system actions directly from the launcher. - Firefox Bookmarks & History — read
places.sqlitedirectly; no browser extension needed. - Web Suggestions — live Google search autocomplete via
sprefix. - GitHub Search — quick link with
gprefix. - Inline Calculator — evaluate math expressions automatically; no prefix required.
- Usage History — frequently-launched items surface on empty input, ranked by count;
press
Deleteto remove an entry. - GTK Theme Integration — reads accent colors from your GTK4 theme CSS, falling back to built-in defaults.
- Plugin System — TOML-driven plugin registry; enable, disable, reorder, or remap keywords without touching code. New plugins are picked up automatically on startup.
- Icon Resolution — resolves application icons from Papirus, Breeze, Adwaita, and hicolor themes, plus Flatpak exports and legacy pixmaps. Results are cached per session.
- Wayland compositor with
wlr-layer-shellsupport - Quickshell
- Rust toolchain (to build the core backend)
- Firefox (optional, for bookmarks / history)
- cliphist (optional, for clipboard history)
# clone and build
git clone https://github.com/Prslc/QsFlow.git
cd QsFlow/core
cargo build --release
# link the binary into PATH
ln -s "$(pwd)/target/release/qsflow-core" ~/.local/bin/qsflow-coreThen bind a hotkey (e.g. Alt+Space) to launch the shell:
quickshell -p /path/to/QsFlow/ui/MainShell.qml| Input | Action |
|---|---|
firefox |
fuzzy-search installed applications |
b <query> |
search Firefox bookmarks |
h <query> |
search Firefox history |
f <query> |
search files by name |
d <query> |
search files by path (multi-token fuzzy) |
c <query> |
search clipboard history (cliphist) |
s <query> |
Google suggestions |
g <query> |
GitHub search |
lock / reboot / shutdown |
system commands |
2 + 3 |
inline calculator |
| (empty) | show most-used items |
Enter |
launch selected result |
Delete |
remove history item |
On first run, ~/.config/qsflow/plugins.toml is generated automatically:
[[plugins]]
id = "calculator"
keyword = ""
enable = true
[[plugins]]
id = "system-commands"
keyword = ""
enable = true
[[plugins]]
id = "app-search"
keyword = ""
enable = true
[[plugins]]
id = "firefox-bookmarks"
keyword = "b"
[[plugins]]
id = "firefox-history"
keyword = "h"
[[plugins]]
id = "web-search"
keyword = "s"
[[plugins]]
id = "github"
keyword = "g"
[[plugins]]
id = "file-search"
keyword = "f"
[[plugins]]
id = "path-search"
keyword = "d"
[[plugins]]
id = "clipboard"
keyword = "c"Reorder entries to change priority, change keyword to remap prefixes, or set
enable = false to disable a plugin without removing its block. Removed or
unknown plugin IDs are silently ignored.
Theme colors are read from ~/.config/gtk-4.0/dank-colors.css (falling back to
built-in defaults).
- Quickshell — QtQuick shell toolkit that powers the Wayland overlay.
- Papirus — icon theme providing high-quality SVG icons.
- tokio — async runtime driving the backend.
- rusqlite — Firefox profile and usage database access.
- walkdir — recursive directory traversal for file and path search.
- nucleo — fuzzy matching for application search.
- rustc-hash — fast non-cryptographic hashing for plugin maps and icon cache.
