Skip to content

camelot 0.3.0

Choose a tag to compare

@trans trans released this 22 Sep 03:07
· 15 commits to main since this release

The control panel.

camelot-gtk (new package) — a GTK4/libadwaita switchboard over the daemon: what is being recorded, one switch per capability.

  • Background service: start/stop the daemon
  • Recording: activity on/off, typed text, how long to keep history, durable log
  • Access: browser accessibility, ignored applications (with a running-app picker)
  • Activity log: the recent digest as a live list, on its own page — there when you want it

Every change writes the config file and the daemon reloads in place. Installs a desktop entry; single-instance.

Daemon

  • subscribe: a push stream of recorded events and state changes (backfill first). The panel is built on it and never polls.
  • recent folds edits per widget across interleaving activity, caps snippets to one line, and reports terminal repaints as "output".
  • Events are resolved off libatspi's dispatch path via a bounded queue, with per-widget location caching: ~0% CPU under a terminal flood (was ~5%).
  • Hardening found by wedging the daemon from the panel: the event callback is fenced against exceptions, and child/parent/application lookups are null-safe.

Packages: camelot (CLI, daemon, unit, completions) and camelot-gtk (panel, desktop entry) for Arch, Debian/Ubuntu and Fedora.