-
Notifications
You must be signed in to change notification settings - Fork 1
Open
Labels
enhancementNew feature or requestNew feature or request
Description
Overview
Create the Linux desktop app project scaffold at linux/ using Rust with GTK4 and libadwaita.
Project Structure
linux/
├── Cargo.toml
├── src/
│ ├── main.rs # GtkApplication setup, CLI arg parsing
│ ├── app.rs # Application subclass, window management
│ ├── state.rs # AppState, ConnectionState
│ ├── models/
│ │ ├── mod.rs
│ │ ├── manifest.rs # Manifest, WorktreeEntry, AgentEntry (serde)
│ │ ├── agent_variant.rs # Claude/Codex/OpenCode/Terminal/Worktree
│ │ └── settings.rs # AppSettings
│ ├── api/
│ │ ├── mod.rs
│ │ ├── client.rs # PpgClient (reqwest, 13 REST endpoints)
│ │ └── websocket.rs # WsManager (tokio-tungstenite)
│ ├── ui/
│ │ ├── mod.rs
│ │ ├── window.rs # MainWindow
│ │ ├── sidebar.rs
│ │ ├── terminal_pane.rs
│ │ ├── pane_grid.rs
│ │ ├── home_dashboard.rs
│ │ ├── command_palette.rs
│ │ ├── worktree_detail.rs
│ │ ├── settings_dialog.rs
│ │ ├── prompts_view.rs
│ │ ├── swarms_view.rs
│ │ ├── schedules_view.rs
│ │ ├── agent_config_view.rs
│ │ └── setup_view.rs
│ └── util/
│ ├── mod.rs
│ └── shell.rs
Cargo.toml Dependencies
[package]
name = "ppg-desktop"
version = "0.1.0"
edition = "2021"
[dependencies]
gtk4 = { version = "0.9", features = ["v4_12"] }
libadwaita = { version = "0.7", features = ["v1_4"] }
vte4 = "0.8"
tokio = { version = "1", features = ["full"] }
tokio-tungstenite = { version = "0.24", features = ["native-tls"] }
reqwest = { version = "0.12", features = ["json"] }
serde = { version = "1", features = ["derive"] }
serde_json = "1"
glib = "0.20"
gio = "0.20"Acceptance Criteria
-
cargo buildcompiles cleanly - App launches and shows an empty window with libadwaita styling
- Main window uses
adw::NavigationSplitView(sidebar + content) - Basic CLI arg parsing:
--server-url,--token,--project-root
Labels
platform: linux
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
enhancementNew feature or requestNew feature or request