-
Notifications
You must be signed in to change notification settings - Fork 1
[Linux] Home dashboard, command palette, settings, and secondary views #136
Copy link
Copy link
Open
Labels
enhancementNew feature or requestNew feature or request
Description
Overview
Implement remaining views to reach full feature parity with the macOS app.
Home Dashboard
Match PPG CLI/PPG CLI/HomeDashboardView.swift:
- Per-project cards showing: name, branch tag, worktree count
- Agent status dots (colored circles, up to 5 per status with +N overflow)
- 91-day commit heatmap (13×7 grid, 5 color levels, cairo drawing on
gtk::DrawingArea) - 10 most recent commits (hash, message, author, relative time)
- Data fetched via
git logsubprocess on background thread
Command Palette
Match PPG CLI/PPG CLI/CommandPalettePanel.swift:
- Overlay dialog (centered, dismissible with Escape)
- Phase 1: Searchable list of agent variants (Claude/Codex/OpenCode/Terminal/Worktree)
- Phase 2: Prompt text entry (multi-line
gtk::TextView) - Enter submits, Escape goes back/dismisses
- Triggered by Ctrl+N or sidebar "+" button
- Use
adw::Dialogor custom floatinggtk::Window
Settings
Match PPG CLI/PPG CLI/SettingsViewController.swift:
- Use
adw::PreferencesWindowwith groups:- Connection: Server URL, token (masked input), test connection button
- Terminal: Font family (monospace filter), font size (8-24), shell path, history limit
- Appearance: System/Light/Dark toggle
- Shortcuts: Rebindable keyboard shortcuts table (Ctrl+D, Ctrl+Shift+D, Ctrl+W, etc.)
- Persist to
~/.config/ppg-desktop/settings.json
Prompts View
Match PPG CLI/PPG CLI/PromptsView.swift:
- Split pane: file list (left) + editor (right)
- Lists
.ppg/prompts/*.mdand.ppg/templates/*.md - Segmented filter: All / Prompts / Templates
- Editor: monospace
gtk::TextViewwith markdown highlighting {{VAR}}placeholders highlighted in orange- Create / rename / delete prompts
- Also scan global
~/.ppg/prompts/and~/.ppg/templates/
Swarms View
Match PPG CLI/PPG CLI/SwarmsView.swift:
- Split pane: swarm list + form editor
- Lists
.ppg/swarms/*.yamlfiles - Form fields: name, description, strategy (shared/isolated), per-agent prompt + type
- YAML parsing (use
serde_yamlcrate) - Create / edit / delete
- Also scan
~/.ppg/swarms/
Schedules View
Match PPG CLI/PPG CLI/SchedulesView.swift:
- Calendar view with Day/Week/Month modes
- Parse cron expressions from
schedules.yamlfiles - Show scheduled runs as colored blocks
- Implement cron parser in Rust (5-field: min/hour/DOM/month/DOW, supports *, /N, ranges, lists, name aliases)
Agent Config View
Match PPG CLI/PPG CLI/AgentConfigView.swift:
- 3 tabs: CLAUDE.md editor, Skills viewer, config.yaml editor
- CLAUDE.md: file picker per project, full text editor, save button
- Skills: list
~/.claude/skills/*/SKILL.md, show YAML frontmatter as form - config.yaml: YAML editor with syntax highlighting
Acceptance Criteria
- Home dashboard shows project cards with stats, heatmap, commits
- Command palette spawns agents via REST API
- Settings persist and apply live (font, theme, shortcuts)
- Prompts view with create/edit/delete and markdown highlighting
- Swarms view with YAML form editor
- Schedules view with calendar and cron parsing
- Agent config view with CLAUDE.md + Skills + config editors
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
enhancementNew feature or requestNew feature or request