shared-gui / README.md
smlflg's picture
Initial public upload from Projekte/shared-gui
74f57c5 verified
|
Raw History Blame Contribute Delete
1.47 kB
# shared-gui — GTK3 Base Class
Shared GTK3 base for all desktop apps in this setup.
Provides `BaseApp`: a themed GTK3 window with Catppuccin + COSMIC dark/light auto-detection.
## What BaseApp provides
- GTK3 window with HeaderBar, content area, StatusBar
- Catppuccin theme (auto-detects COSMIC dark/light mode, live-updates on theme switch)
- Helper methods: `set_subtitle()`, `add_header_widget()`, `set_status()`, `start_refresh()`, `add_css()`
- CSS classes: `.base-card`, `.base-toolbar`, `.base-badge`, `.base-badge-ok/warn/error`, `.base-accent-btn`
**Dependency:** `~/Projekte/ClaudeCodePanel/theme.py` must exist (provides `build_css`, `get_palette`, `setup_theme_watcher`).
## How to import
```python
import sys
from pathlib import Path
sys.path.insert(0, str(Path.home() / "Projekte" / "shared-gui"))
from gui_base import BaseApp
import gi
gi.require_version("Gtk", "3.0")
from gi.repository import Gtk
class MyApp(BaseApp):
def __init__(self):
super().__init__("My App", 800, 600)
label = Gtk.Label(label="Hello")
self.content_box.pack_start(label, True, True, 0)
MyApp().run()
```
## Projects using it
- `~/Projekte/ClaudeCodePanel/` — Claude session monitor
- `~/Projekte/Sidecar/` — Sidecar GTK3 GUI (v2+)
## Requirements
```bash
# PyGObject (GTK3 Python bindings)
sudo apt install python3-gi python3-gi-cairo gir1.2-gtk-3.0
```
No pip dependencies — GTK3 bindings come from the system package manager.