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
Gnotes hero image — Linux Tux penguin and glowing sticky notes in retro vaporwave style
Gnotes: Sticky notes that live on your Linux desktop with Gnomad Studio outrun style.

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.

LayerChoice
ShellTauri 2 + Rust
UIReact 18 + TipTap
StorageSQLite (WAL + FTS5 for search later)
Linux UXSystem tray first; main controller hidden
ReviewNVIDIA 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:

  1. 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).
  2. Fork scaffold at gnotes-linux with tray menu (New Note / Quit), shared window factory, and restore of pin/collapse geometry.
  3. HiDPI fixes — logical coordinates, monitor clamp on restore, transactional DB/window updates so UI state doesn’t diverge from native windows.
  4. Security + data — CSP enabled, SQLite WAL, indexes, FTS5 triggers.
  5. 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

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.