Add portable Linux desktop with separate windows and shared Omarchy backend - #3573
Conversation
|
🦞👀 Pull request received. I will update this pull request when review starts. ClawSweeper review completeClawSweeper finished reviewing this revision. The review result is being finalized. |
|
Codex review: blocked before merge. Reviewed September 11, 2026, 11:16 PM ET / September 12, 2026, 03:16 UTC (Revision 2). ClawSweeper reviewWhat this changesAdds a Qt Linux desktop for usage, spending, and settings, and converts the Omarchy widget into an adapter sharing its background process. Merge readiness⛔ Blocked before merge - 5 items remain This owner-sponsored feature remains useful and is not implemented on the fetched main branch. All three previously reported defects remain unresolved at the reviewed head. Priority: P2 Review scores
Verification
How this fits togetherThe Linux desktop runs the existing Swift CLI to obtain provider usage and local spending, then renders windows and desktop notifications. Omarchy reads a private local snapshot instead of running separate provider polls. flowchart LR
A[Saved preferences] --> B[Linux desktop backend]
B --> C[Swift CLI]
C --> D[Usage and spending models]
D --> E[Desktop windows and notifications]
D --> F[Private local snapshot]
F --> G[Omarchy widget]
Before merge
Findings
Agent review detailsSecurityNone. Review metrics
Merge-risk optionsMaintainer options:
Copy recommended automerge instructionTechnical reviewBest possible solution: Keep the shared desktop backend while preserving saved preferences, retaining or restoring spending after settings changes, and distinguishing accounts without exposing identity. Do we have a high-confidence way to reproduce the issue? Yes, source establishes the three patch defects: reinstall after enabling the tray, save settings with Spending already loaded, and display multiple accounts with identity hidden. These scenarios were not executed during this read-only review. Is this the best way to solve the issue? Yes, sharing the existing CLI-backed models through one desktop process fits the owner-approved direction; the remaining defects have narrow repairs that preserve that architecture. Full review comments:
Overall correctness: patch is incorrect AGENTS.md: found and applied where relevant. Codex review notes: model internal, reasoning medium; reviewed against 069c36af7bde. LabelsLabel justifications:
EvidenceAcceptance criteria:
What I checked:
Likely related people:
Rank-up movesOptional improvements that raise the rating; they are not merge blockers.
Rating scale
Overall follows the weaker of proof and patch quality. Workflow
HistoryReview history (1 earlier review cycle)
|
Omarchy's popup currently owns fetching, settings, spending and notifications. This moves those responsibilities into one portable Qt 6 desktop process, with separate Usage & Spend and Settings windows. The compact Omarchy adapter reads its private IPC snapshot and opens the existing windows; multiple monitors no longer run separate provider polls.
Settings are grouped into General, Providers and Advanced. Compact cards wrap long labels, provider names use readable capitalization, and the app menu keeps secondary actions out of the header. Optional refresh-on-open follows the Mac preference; Refresh and Ctrl+R operate on the selected Usage or Spending tab. Integrations/Linux/MAC_COMPARISON.md records remaining Mac feature gaps.
The desktop provides an optional standard Linux tray, launcher actions, login autostart, clipboard support and D-Bus notifications. It reuses the existing JavaScript usage/notification models and Swift CLI, preserves stale data on failures, rejects old in-flight responses after selection changes, and persists settings atomically. The installer migrates existing widget preferences and backs up the old integration. No provider authentication implementation changes.
Stacked on #3571 (following #3569 and #3570). This is the portable desktop foundation; it does not claim complete macOS feature parity or verified KDE/GNOME behavior. Linux dependencies and install/uninstall instructions are in Integrations/Linux/README.md.
Validation: