|
Download README.md from smlflg/shared-gui: direct link, hf CLI and curl.
- Browser
- Download file 1.47 kB
-
https://huggingface.co/smlflg/shared-gui/resolve/main/README.md
- Command line
-
hf download hf://smlflg/shared-gui/README.md
-
curl -L -o README.md https://huggingface.co/smlflg/shared-gui/resolve/main/README.md
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. | |