Add Zara Copilot Qtile dropdown/action using zara --toggle-desktop #192

Open
opened 2026-09-05 06:05:51 +00:00 by nsaspy · 0 comments
Owner

Depends on Zara: lost-rob0t/zara#326
Related Zara UX epic: lost-rob0t/zara#323

Goal

Add a first-class Zara Copilot activation entry to the user's Qtile/dotfiles UI once Zara exposes the stable local command:

zara --toggle-desktop

The dotfiles side must remain a thin launcher. It must not know about Zara's PySide classes, window titles, daemon internals, sockets, or conversation state.

Source-of-truth requirement

This repository is literate for Qtile. .config/qtile/qtile-ai.org tangles .config/qtile/config.py and is the canonical source.

Make the persistent change in the Org source and regenerate/tangle the generated Python as required. Do not patch only config.py and lose the change on the next tangle.

The repository also has shared click-driven dropdown UI helpers documented under docs/qtile-emacs-ui.org; reuse the existing UI conventions rather than inventing an unrelated popup framework.

Desired UX

Expose Zara Copilot from the system bar/dropdown/menu in a way consistent with the existing Qtile UI.

At minimum:

  • visible entry/icon labelled clearly as Zara/Copilot;
  • primary action invokes zara --toggle-desktop;
  • repeated activation naturally alternates show/hide because Zara owns toggle semantics;
  • command failure does not block/reload Qtile;
  • no shell pipeline dependent on window-class scraping;
  • no pkill/process guessing;
  • optional keyboard binding may invoke the same command, but it must not become a second behavior path.

If a click-driven dropdown is used, Zara should be one item within the existing menu/dropdown style rather than a special standalone widget unless current design makes a dedicated bar icon clearly better.

Dependency behavior

Do not land a configuration that calls a command absent from the installed Zara package unless the branch/testing strategy makes that failure harmless and explicit. Prefer completing after Zara #326 exposes the stable CLI contract.

Tests / validation

  • tangle canonical Org source and prove generated Qtile config is synchronized;
  • import/compile Qtile config using the repository's existing validation path;
  • verify activation command is exactly the stable Zara command;
  • no duplicated bar entries after reload;
  • failure to find Zara exits cleanly without Qtile crash;
  • preserve existing dropdown/bar interactions.

Acceptance

From the user's Qtile bar/dropdown, one action toggles the one canonical Zara Copilot on/off via zara --toggle-desktop, and the change survives normal literate dotfiles tangling/re-stow.

Depends on Zara: lost-rob0t/zara#326 Related Zara UX epic: lost-rob0t/zara#323 ## Goal Add a first-class Zara Copilot activation entry to the user's Qtile/dotfiles UI once Zara exposes the stable local command: ```text zara --toggle-desktop ``` The dotfiles side must remain a thin launcher. It must not know about Zara's PySide classes, window titles, daemon internals, sockets, or conversation state. ## Source-of-truth requirement This repository is literate for Qtile. `.config/qtile/qtile-ai.org` tangles `.config/qtile/config.py` and is the canonical source. Make the persistent change in the Org source and regenerate/tangle the generated Python as required. Do not patch only `config.py` and lose the change on the next tangle. The repository also has shared click-driven dropdown UI helpers documented under `docs/qtile-emacs-ui.org`; reuse the existing UI conventions rather than inventing an unrelated popup framework. ## Desired UX Expose Zara Copilot from the system bar/dropdown/menu in a way consistent with the existing Qtile UI. At minimum: - visible entry/icon labelled clearly as Zara/Copilot; - primary action invokes `zara --toggle-desktop`; - repeated activation naturally alternates show/hide because Zara owns toggle semantics; - command failure does not block/reload Qtile; - no shell pipeline dependent on window-class scraping; - no `pkill`/process guessing; - optional keyboard binding may invoke the same command, but it must not become a second behavior path. If a click-driven dropdown is used, Zara should be one item within the existing menu/dropdown style rather than a special standalone widget unless current design makes a dedicated bar icon clearly better. ## Dependency behavior Do not land a configuration that calls a command absent from the installed Zara package unless the branch/testing strategy makes that failure harmless and explicit. Prefer completing after Zara #326 exposes the stable CLI contract. ## Tests / validation - tangle canonical Org source and prove generated Qtile config is synchronized; - import/compile Qtile config using the repository's existing validation path; - verify activation command is exactly the stable Zara command; - no duplicated bar entries after reload; - failure to find Zara exits cleanly without Qtile crash; - preserve existing dropdown/bar interactions. ## Acceptance From the user's Qtile bar/dropdown, one action toggles the one canonical Zara Copilot on/off via `zara --toggle-desktop`, and the change survives normal literate dotfiles tangling/re-stow.
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/dotfiles#192
No description provided.