zara-desktop: desktop control and event integration plugin #3

Closed
opened 2026-08-31 18:41:54 +00:00 by lost-rob0t · 0 comments
lost-rob0t commented 2026-08-31 18:41:54 +00:00 (Migrated from github.com)

Plugin

zara-desktop

Goal

Give Zara a structured desktop-control surface so it can act as an actual desktop assistant without coupling compositor/window-system logic into Zara core.

Initial capabilities

  • launch/open/close/focus applications and windows;
  • list windows/workspaces and active focus;
  • clipboard get/set;
  • screenshot capture through a bounded interface;
  • notification send/history adapters where supported;
  • media-key and audio-device control;
  • brightness and display helpers where supported;
  • workspace switching;
  • open file/URI with the desktop handler;
  • expose desktop events to Zara/plugin consumers.

Event surface

Target structured events such as:

  • window.created
  • window.closed
  • window.focused
  • workspace.changed
  • clipboard.changed
  • notification.received
  • audio.device.changed

Avoid polling when the platform exposes event subscriptions.

Platform approach

Start with Linux support and clean adapters for Wayland/X11/TWM environments. Do not hard-code one compositor into the public plugin API.

Safety

  • bounded screenshot/image sizes;
  • no synthetic input or arbitrary command execution unless explicitly exposed by a narrower capability;
  • do not leak clipboard/screenshot contents into logs by default;
  • event queues must be bounded;
  • platform feature detection must fail cleanly.

Plugin shape

Service plugin under plugins/zara-desktop/, plus optional CLI/tools for diagnostics. Keep desktop-specific dependencies explicit and Nix-installable.

Acceptance criteria

  • structured app/window/workspace operations exist
  • active window/workspace can be queried
  • clipboard and screenshot operations are bounded
  • desktop events are emitted through a documented interface
  • unsupported platform features degrade cleanly
  • deterministic tests use fakes/mocks and require no GUI
  • README documents permissions and backend support
  • registry entry validates
  • plugin tests pass
  • nix flake check passes
## Plugin `zara-desktop` ## Goal Give Zara a structured desktop-control surface so it can act as an actual desktop assistant without coupling compositor/window-system logic into Zara core. ## Initial capabilities - launch/open/close/focus applications and windows; - list windows/workspaces and active focus; - clipboard get/set; - screenshot capture through a bounded interface; - notification send/history adapters where supported; - media-key and audio-device control; - brightness and display helpers where supported; - workspace switching; - open file/URI with the desktop handler; - expose desktop events to Zara/plugin consumers. ## Event surface Target structured events such as: - `window.created` - `window.closed` - `window.focused` - `workspace.changed` - `clipboard.changed` - `notification.received` - `audio.device.changed` Avoid polling when the platform exposes event subscriptions. ## Platform approach Start with Linux support and clean adapters for Wayland/X11/TWM environments. Do not hard-code one compositor into the public plugin API. ## Safety - bounded screenshot/image sizes; - no synthetic input or arbitrary command execution unless explicitly exposed by a narrower capability; - do not leak clipboard/screenshot contents into logs by default; - event queues must be bounded; - platform feature detection must fail cleanly. ## Plugin shape Service plugin under `plugins/zara-desktop/`, plus optional CLI/tools for diagnostics. Keep desktop-specific dependencies explicit and Nix-installable. ## Acceptance criteria - [ ] structured app/window/workspace operations exist - [ ] active window/workspace can be queried - [ ] clipboard and screenshot operations are bounded - [ ] desktop events are emitted through a documented interface - [ ] unsupported platform features degrade cleanly - [ ] deterministic tests use fakes/mocks and require no GUI - [ ] README documents permissions and backend support - [ ] registry entry validates - [ ] plugin tests pass - [ ] `nix flake check` passes
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
nsaspy/zara-plugins#3
No description provided.