Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

The UX Philosophy

Xenocept lives in your way by definition — it overlays your screen, holds a freeze-frame for you to mark up, and demands your attention while you’re using it. The whole product is built around keeping that interruption short and the interaction obvious.

1. Snappy

The Tauri overlay window is created at app startup and kept hidden. Pressing the hotkey:

  1. Takes a fresh screenshot of the monitor under the cursor
  2. Shows the pre-existing overlay window with that screenshot as its background

There is no app-launch step. The window is already alive — pressing the hotkey just makes it visible and gives it a fresh frame. A “Capturing Screen…” loading state shows briefly during the actual capture, but the overlay window itself doesn’t need to start up.

Capture happens on-demand at hotkey press — the overlay does not stream the screen continuously to a warm window.

The window is pre-warmed as a window; the image inside it is fresh on every capture, not continuously streamed.

2. Esc Drains a Stack of Behaviors

Esc cascades through a priority list:

  1. If the radial menu is open → close the menu
  2. Else if a text editor is open → commit the text
  3. Else if a tool operation is in progress → cancel it
  4. Else if objects are selected → deselect
  5. Else → hide the overlay

Each step consumes the event. The user never has to think about which Esc does what; the right thing happens.

3. State Lives Until the Next Capture

A precise statement of what persists when:

  • Live canvas state (drawn objects, undo stack, redo stack, selections) lives in the overlay window’s memory.
  • Hiding the overlay (Esc with no other state to drain, or pressing the hotkey while visible) just hides the Tauri window. The state stays put in memory.
  • A fresh hotkey press while the overlay is hidden captures a new screenshot, shows the window, and resets the canvas state. The previous live work is gone.

So Esc is safe in the sense that you don’t lose anything immediately. But the next hotkey-driven capture wipes the canvas. If you want your work persisted, press Submit. Submit is the only path that writes the session to disk.

4. Submit Is the Persistence Boundary

POST /api/v1/sessions is what writes a session to the AeorDB store. It’s the only thing that does. Everything else is non-persistent.

After Submit:

  • The session is in /sessions/{session-id}/ and is content-addressed/deduplicated by AeorDB.
  • A created event is broadcast on /api/v1/sessions/events so the Sessions list updates without polling.
  • If auto-send is on, the frontend then calls /api/v1/sessions/{id}/dispatch to fan out to configured destinations.

5. Quiet When Not Called On

Closing the main Xenocept window does not exit the app — it stays in the system tray with the hotkey registered. Double-clicking the tray icon brings the main window back. A single click is currently not bound to “open main window”.

The hotkey is the primary input. Tray and main-window UI are for browsing past sessions, editing destinations, and changing settings.

6. Forgiving by Default

Undo handles drawing. Esc cascades through tool/menu/selection state safely. The undo stack is unbounded in memory (no caps), so any number of operations within a single overlay session can be walked backward. Quitting the app entirely drops the in-memory undo history — there is no persisted undo log.