Drift is a premium, high-performance, minimalist desktop quick-capture HUD designed to seamlessly channel thoughts, task items, project headings, and fleeting inspirations directly into your Obsidian Vault without breaking your focus.
Summoned by a global hotkey, Drift appears instantly, takes your input, handles command routing, and dismisses itself in a fraction of a second.
- Auto-Chronological Log headers: When routing entries to your files, Drift checks for a daily Markdown header (e.g.
## June 06, 2026 - Saturday). If it's missing, Drift automatically inserts it with appropriate newline spacing to keep your logs neat and organized. - Smart Commands & Ghost Autocomplete: Prefix your thought with
/todo(/t),/inspiration(/i),/projects(/p), or/random(/r) to route it. Drift provides elegant inline suggestions with Tab or Enter autocomplete. - Zero-Latency Global Hotkey: Double-tap
Ctrl+Space(or your custom bind) to pull up the entry box. If you open a second instance, Drift uses an internal TCP socket to focus the existing instance rather than spawning a duplicate window. - Multi-Monitor Centering Logic: Drift automatically detects the monitor closest to your cursor and centers itself there, ensuring the HUD is exactly where your eyes are.
- Robust Offline Buffer: If your Obsidian Vault is on an unmounted network drive or encrypted vault that is locked, Drift queues your captures in
buffer.jsonand silently flushes them the second your vault reconnects. - Linux Native Escape Guard: Integrates with
xdotoolon X11/GNOME environments to ensure seamless focus stealing, and auto-dismisses itself instantly when you click anywhere outside the HUD. - On-the-fly Pinch Zooming: Scale the entire HUD up and down smoothly using standard trackpad pinch gestures (
Ctrl + Scroll) to match high-resolution screens.
- Backend: Rust (Tauri v2,
tauri-plugin-global-shortcut, single-instance lock via TCP loopback sockets) - Frontend: Svelte 5 (using modern reactive Runes), SvelteKit (Static adapter)
- Styling: Tailwind CSS v4, Vanilla CSS backdrop-filters, custom keyframe micro-animations
- Interops: Linux X11 focus handling (
xdotool), cross-platform config mapping (dirs-next)
- Rust Toolchain: Install Rust via rustup
- Node.js: Node.js 18+ and npm
- Linux Dependencies (Debian/Ubuntu):
sudo apt-get install -y libwebkit2gtk-4.1-dev build-essential curl wget libssl-dev libgtk-3-dev libayatana-appindicator3-dev librsvg2-dev xdotool
-
Clone the repository:
git clone https://github.com/yourusername/drift.git cd drift -
Install web dependencies:
npm install
-
Run Development Server:
npm run dev
This starts SvelteKit. To run the full native app in development mode:
npx tauri dev
-
Build Release Binary:
npx tauri build
The compiled binary will be placed under
src-tauri/target/release/drift.
Drift creates its configuration folder on the first launch:
- Linux:
~/.config/drift/config.json - macOS:
~/Library/Application Support/drift/config.json - Windows:
%APPDATA%/drift/config.json
Here is the default configuration generated by Drift:
{
"version": "1.0.0",
"obsidian_vault_path": "~/Documents/ObsidianVault",
"global_hotkey": "Control+Space",
"ui": {
"theme": "system",
"fallback_blur": false,
"show_character_count": true
},
"routing": {
"i": {
"mode": "inspiration",
"destination": "inspiration.md",
"prefix": "- Idea: "
},
"t": {
"mode": "todo",
"destination": "todo.md",
"prefix": "- [ ] "
},
"p": {
"mode": "projects",
"destination": "projects.md",
"prefix": "## "
},
"r": {
"mode": "random",
"destination": "random.md",
"prefix": "- "
}
}
}obsidian_vault_path: Path to your active Obsidian vault (supports tilde~expansion on Linux/macOS).global_hotkey: Keyboard shortcut to summon the capture card from anywhere.ui.fallback_blur: If true, disables transparency/backdrop filters and uses a beautiful solid dark-mode gradient (recommended on Linux window managers lacking compositor effects).ui.show_character_count: Toggle the minimal character counter in the footer.routing: Defines command shortcuts and how they write to markdown. For example, typing/t Buy milkresolves thetrouting key, writing- [ ] Buy milkintoobsidian_vault_path/todo.md.
Ctrl+Space(Customizable): Toggle Drift open/closed.Enter(Single line mode): Submit and dismiss.Ctrl+Enter/Cmd+Enter(Multi-line mode): Submit if you have added carriage returns in your text.Escape/ Click Outside: Cancel entry and dismiss instantly (clears draft safely).Tab/Enter: Autocomplete slash command (e.g./to+Tabcompletions to/todo).Ctrl + Pinch Zoom: Magnify or shrink HUD size.
This project is licensed under the MIT License - see the LICENSE file for details.

