Commit graph

15 commits

Author SHA1 Message Date
github-actions[bot]
1092e503be release: v0.1.6 [skip ci] 2026-03-26 03:25:14 +00:00
Hari
714e34ba19
nix (#7)
npm
cargo
2026-03-25 23:18:28 -04:00
github-actions[bot]
425a71095a release: v0.1.5 [skip ci] 2026-03-26 02:04:56 +00:00
github-actions[bot]
61f4738311 release: v0.1.4 [skip ci] 2026-03-26 01:16:24 +00:00
github-actions[bot]
cc8f8e548a release: v0.1.3 [skip ci] 2026-03-25 23:47:58 +00:00
github-actions[bot]
bcf5f43fad release: v0.1.1 [skip ci] 2026-03-25 22:34:39 +00:00
b108be8afe rename 2026-03-25 12:28:38 -04:00
e392ba1055 Rewrite X11 backend to drop xcap
Use x11rb directly for screenshot capture and window metadata so the Linux build no longer drags in Wayland build dependencies.

Co-authored-by: Codex <noreply@openai.com>
2026-03-25 12:28:23 -04:00
cc7490993a edition 2026-03-24 23:07:50 -04:00
62a1aab859 rename 2026-03-24 22:59:21 -04:00
567115a6c2 Phase 5: window management via x11rb
- Add x11rb 0.13 dependency with randr feature
- RustConnection and root window in X11Backend
- Focus window via _NET_ACTIVE_WINDOW client message
- Close window via _NET_CLOSE_WINDOW client message
- Move/resize via configure_window
- Handler dispatchers for focus, close, move-window, resize-window
- list-windows command re-runs snapshot for fresh window tree
2026-03-24 21:36:56 -04:00
314a11bcba Phase 4: mouse + keyboard input via enigo
- Add enigo 0.6 dependency (x11rb/XTest backend)
- Enigo field in X11Backend for input simulation
- Click, double-click at absolute coords or @wN ref centers
- Type text into focused window, press individual keys
- Hotkey combinations (modifier press, key click, modifier release)
- Mouse move, scroll (vertical/horizontal), drag operations
- parse_key() mapping human-readable names to enigo Key values
- Handler dispatchers with ref resolution and coord parsing
2026-03-24 21:33:30 -04:00
0072a260b8 Phase 3: screenshot annotation with bounding boxes and @wN labels
- Add imageproc and ab_glyph dependencies
- Annotation module drawing colored bounding boxes per window
- White @wN labels on dark background at each window's top-left
- 8-color palette cycling for distinct window identification
- Back-to-front iteration so topmost labels are not occluded
- Embedded DejaVu Sans Mono font via include_bytes
- Wire --annotate flag into snapshot pipeline
2026-03-24 21:28:10 -04:00
79e6e0e25c Phase 2: snapshot - window tree + screenshot via xcap
- Add xcap and image dependencies
- DesktopBackend trait with all 16 methods for future extensibility
- X11Backend with real snapshot() using xcap Window::all() and
  Monitor::all() for z-ordered window enumeration and screenshot
- Stub implementations for input/window management (phases 4-6)
- Wire X11Backend into DaemonState (now returns Result)
- Real snapshot handler replacing placeholder, updates ref map
2026-03-24 21:24:34 -04:00
dfaa339594 Phase 1: project scaffold, clap CLI, self-re-exec daemon, NDJSON IPC
- Cargo.toml with clap, tokio, serde, anyhow dependencies
- Entry point with env-var routing to daemon or CLI mode
- Core protocol types (Request/Response NDJSON wire format)
- Session detection (X11 check with DISPLAY/XDG_SESSION_TYPE)
- RefMap with @wN selector resolution (direct, prefix, substring)
- Snapshot/WindowInfo shared types with Display impl
- clap derive CLI with all subcommands (snapshot, click, type, etc.)
- Client connection: socket path resolution, daemon auto-start via
  self-re-exec, NDJSON send/receive with retry backoff
- Tokio async daemon: Unix socket listener, accept loop, graceful
  shutdown via notify
- DaemonState holding session info and ref map
- Placeholder handler returning hardcoded snapshot response
2026-03-24 21:19:18 -04:00