From ec08f878f724108b780034d80e9c1a3859f97b94 Mon Sep 17 00:00:00 2001 From: rob Date: Tue, 6 Jan 2026 02:19:48 -0400 Subject: [PATCH] Update documentation with GUI application details MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - CLAUDE.md: Added GUI architecture, key classes, features, shortcuts - README.md: Added quick start for GUI, features section, shortcuts 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 --- CLAUDE.md | 72 ++++++++++++++++++++++++++++++++++++++++++++++++++++--- README.md | 58 +++++++++++++++++++++++++++++++++++++++----- 2 files changed, 121 insertions(+), 9 deletions(-) diff --git a/CLAUDE.md b/CLAUDE.md index cc0f94f..7813ae5 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -4,9 +4,73 @@ This file provides guidance to Claude Code (claude.ai/code) when working with co ## Project Overview -**Development Hub** is the central orchestration project for Rob's multi-project development ecosystem. It provides tooling to create and manage projects that follow consistent patterns for documentation, repository structure, and AI-assisted development. +**Development Hub** is the central orchestration project for Rob's multi-project development ecosystem. It provides: -## Key Scripts +1. **GUI Application** - PyQt6-based workspace with project list, splittable terminal panes, and session persistence +2. **CLI Tools** - Scripts to create and manage projects following consistent patterns + +## GUI Application + +### Running the App + +```bash +cd ~/PycharmProjects/development-hub +source .venv/bin/activate +python -m development_hub +``` + +### Architecture + +``` +src/development_hub/ +├── __init__.py +├── __main__.py # Entry point +├── app.py # QApplication subclass +├── main_window.py # Main window with menus +├── project_list.py # Left panel - project discovery & context menu +├── workspace.py # Right panel - splittable panes with tabs +├── terminal_widget.py # PTY terminal with pyte emulation +├── project_discovery.py # Parse projects from build-public-docs.sh +├── dialogs.py # New Project (with Ramble), Settings dialogs +├── settings.py # JSON persistence for settings & session +└── styles.py # Dark theme stylesheet +``` + +### Key Classes + +| Class | File | Purpose | +|-------|------|---------| +| `MainWindow` | main_window.py | QMainWindow with menus, splitter layout | +| `ProjectListWidget` | project_list.py | Project list with context menu actions | +| `WorkspaceManager` | workspace.py | Manages splittable pane layout | +| `PaneWidget` | workspace.py | Tab container within a pane | +| `TerminalWidget` | terminal_widget.py | PTY-based terminal with pyte screen emulation | + +### Features + +- **Project List**: Discovers projects from `build-public-docs.sh` config +- **Context Menu**: Open terminal, editor, Gitea, docs, deploy +- **Splittable Panes**: Horizontal/vertical splits, each pane has own tab bar +- **Terminal**: Full PTY with pyte for TUI support (vim, htop work) +- **Drag & Drop**: Drop files/folders into terminal to inject paths +- **Session Persistence**: Remembers pane layout and open terminals +- **New Project Dialog**: Integrates with Ramble for voice input + +### Keyboard Shortcuts + +| Shortcut | Action | +|----------|--------| +| `Ctrl+Shift+T` | New terminal tab | +| `Ctrl+Shift+W` | Close current tab | +| `Ctrl+Shift+D` | Split pane horizontal | +| `Ctrl+Shift+E` | Split pane vertical | +| `Ctrl+Shift+P` | Close active pane | +| `Ctrl+Alt+Left/Right` | Switch panes | +| `Ctrl+B` | Toggle project panel | +| `Ctrl+N` | New project dialog | +| `F5` | Refresh project list | + +## CLI Scripts ### `bin/new-project` @@ -38,8 +102,9 @@ new-project myproject ``` development-hub/ +├── src/development_hub/ # GUI application (see Architecture above) ├── bin/ -│ └── new-project # Main scaffolding script +│ └── new-project # CLI scaffolding script ├── templates/ │ ├── gitignore.template # Python .gitignore with docs exclusion │ ├── CLAUDE.md.template # AI context file @@ -48,6 +113,7 @@ development-hub/ │ ├── overview.md.template # Docs overview │ └── updating-documentation.md.template ├── docs/ # Symlink to project-docs +├── pyproject.toml # Python packaging with PyQt6 dep ├── CLAUDE.md # This file ├── README.md └── .gitignore diff --git a/README.md b/README.md index ff51415..1aecc13 100644 --- a/README.md +++ b/README.md @@ -4,16 +4,31 @@ Central orchestration project for managing Rob's multi-project development ecosy ## Overview -Development Hub provides tooling to create and manage projects that follow consistent patterns: +Development Hub provides: -- Centralized documentation via Docusaurus -- Gitea repository hosting with Pages support -- AI-assistant context files (CLAUDE.md) -- Python project structure +- **GUI Application** - PyQt6 workspace with project list, splittable terminal panes, and session persistence +- **CLI Tools** - Scripts to create and manage projects with consistent patterns +- **Centralized Documentation** - Docusaurus-based docs with Gitea Pages deployment ## Quick Start -### Create a New Project +### Run the GUI + +```bash +cd ~/PycharmProjects/development-hub +source .venv/bin/activate +python -m development_hub +``` + +### Install Dependencies (first time) + +```bash +python3 -m venv .venv +source .venv/bin/activate +pip install -e . +``` + +### Create a New Project (CLI) ```bash # Add to PATH (one-time) @@ -71,6 +86,37 @@ To create manually: 2. Generate token with 'repo' scope 3. Set `GITEA_TOKEN` env var or let the script save it +## GUI Features + +### Project List (Left Panel) +- Auto-discovers projects from build configuration +- Double-click to open terminal at project root +- Right-click context menu: + - Open Terminal + - Open in Editor + - View on Gitea + - View Documentation + - Deploy Docs + +### Workspace (Right Panel) +- Splittable panes (horizontal/vertical) +- Each pane has its own tab bar +- Full PTY terminals with TUI support (vim, htop, etc.) +- Drag & drop files/folders to inject paths +- Session persistence - remembers layout on restart + +### Keyboard Shortcuts + +| Shortcut | Action | +|----------|--------| +| `Ctrl+Shift+T` | New terminal tab | +| `Ctrl+Shift+W` | Close current tab | +| `Ctrl+Shift+D` | Split horizontal | +| `Ctrl+Shift+E` | Split vertical | +| `Ctrl+Alt+Left/Right` | Switch panes | +| `Ctrl+B` | Toggle project panel | +| `Ctrl+N` | New project dialog | + ## Full Documentation https://pages.brrd.tech/rob/development-hub/