gnotes-linux: Sticky Notes That Actually Live on the Linux Desktop
Forking gnotes for Nobara — Nemotron code review, tray-first UX, Tauri 2 floating windows, and a GitHub Pages home on davidcole.cloud.
- gnotes
- tauri
- linux
- nobara
- open-source

Why I forked instead of waiting for macOS parity
I wanted Stickies-style floating notes on Nobara, not a roadmap footnote under “Phase 3: Linux.” The upstream gnotes repo is a solid Tauri 2 + React alpha — macOS-first, multi-window, SQLite-backed — but Linux needed its own release track: tray entry, Wayland caveats, HiDPI coordinates, and packaging I could actually install on Fedora.
So I shipped gnotes-linux as a deliberate fork, not a temporary branch.
| Layer | Choice |
|---|---|
| Shell | Tauri 2 + Rust |
| UI | React 18 + TipTap |
| Storage | SQLite (WAL + FTS5 for search later) |
| Linux UX | System tray first; main controller hidden |
| Review | NVIDIA Nemotron via NIM split review |
What we built today (AI-assisted, human-verified)
The workflow was very “Gnomad Studio operator” — map lookup, local Nemotron review, implement, document:
- Nemotron NIM code review on the upstream tree with a Linux-native focus prompt (not the generic FastAPI slice reviewer — wrong tool for a Tauri app).
- Fork scaffold at
gnotes-linuxwith tray menu (New Note / Quit), shared window factory, and restore of pin/collapse geometry. - HiDPI fixes — logical coordinates, monitor clamp on restore, transactional DB/window updates so UI state doesn’t diverge from native windows.
- Security + data — CSP enabled, SQLite WAL, indexes, FTS5 triggers.
- CI — GitHub Actions builds AppImage on push.
Nemotron’s review was blunt: no Linux platform layer for custom shapes yet, CSP was off, window manager missing. We closed the quick wins; layer-shell masks stay v2.
Where to get it
- Project home (GitHub Pages): davidthegnomad.github.io/gnotes-linux
- Source + releases: github.com/davidthegnomad/gnotes-linux
- Apps hub: davidcole.cloud/apps
- Upstream (macOS-first): github.com/davidthegnomad/gnotes
On Nobara, install WebKitGTK 4.1 dev headers, clone, npm install, cargo tauri dev, then use the tray — the small controller window stays hidden on Linux by design.
How this fits the studio stack
gnotes-linux is a leaf app, not the ORGANIZATION hub. The hub stays in git + Workspace RAG; gnotes holds visual scratch on the desktop — client color codes, one-liner briefs, “don’t forget to cherry-pick this” reminders.
Same pattern as Gnomad Slate: ship Linux installers when you are the primary user on that OS, don’t wait for perfect cross-platform parity.
What I’d do differently
I should have run the Nemotron review with a Tauri-specific prompt file on day one instead of the split-review slices meant for Next.js + FastAPI repos. Wrong slice config → empty reports → wasted API time.
Next steps: compositor test matrix on my daily Nobara session, first tagged AppImage release, and cherry-picking shared editor fixes from upstream without merging macOS-only window chrome.
If you’re on Linux and want floating notes that respect tray-first workflow, start at the GitHub Pages landing and open an issue if pin-on-top fails on your compositor — GNOME Wayland is the usual suspect.