4.0 KiB
title, linkTitle, weight, toc
| title | linkTitle | weight | toc |
|---|---|---|---|
| Dossier-Launcher | Launcher | 3 | true |
Der Dossier-Launcher ist eine separate Tauri 2 Standalone-App. Sie verwaltet Projekte, hält Settings, liefert Auto-Updates und lebt im System-Tray. Aktuell produktiv im Einsatz für Projekt-Switching, Window-Layout-Push und Plugin-Settings.
Was er macht
{{< cards >}} {{< card title="Projekt-Verwaltung" icon="collection" subtitle="Liste aller DOSSIER-Projekte mit Pfad, letztem Zugriff und Phase." >}} {{< card title="Settings-Sync" icon="cog" subtitle="Schreibt Plugin-Settings in dossier_settings.json — Rhino liest live." >}} {{< card title="Auto-Updates" icon="cloud-download" subtitle="Über tauri-plugin-updater, signiert mit Code-Signing-Key." >}} {{< card title="System-Tray" icon="desktop-computer" subtitle="Quick-Open der letzten 5 Projekte, ohne Hauptfenster zu öffnen." >}} {{< card title="Window-Layouts" icon="template" subtitle="Live-Push von Window-Layouts an laufende Rhino-Session." >}} {{< card title="Recent-Cache" icon="clock" subtitle="recent.json — letzte 50 geöffnete Projekte für Quick-Access." >}} {{< /cards >}}
Technologie
| Komponente | Stack |
|---|---|
| Frontend | React + Vite (launcher/src/) |
| Backend | Rust + Tauri 2 (launcher/src-tauri/) |
| Update-Plugin | tauri-plugin-updater |
| Tray-Plugin | tauri-plugin-tray |
| IPC zu Rhino | Dateibasiert (kein Socket) |
Settings-Files
Pfad-Hierarchie:
- Primär (Launcher schreibt):
~/Library/Application Support/ch.gabrielevarano.Dossier/dossier_settings.json - Legacy-Fallback (read-only):
~/Library/Application Support/RhinoPanel/dossier_settings.json
Recent-Cache:
~/Library/Application Support/ch.gabrielevarano.Dossier/recent.json
Bekannte Settings-Keys
| Key | Beschreibung |
|---|---|
windowLayout |
Aktives Window-Layout (XML-Display-Name) |
autoApplyLayout |
Bool — Layout beim Projekt-Wechsel anwenden? |
pendingApplyLayout |
Pending Layout-Name — wird von oberleiste.tick_idle() gepollt und gelöscht |
rhinoApp |
Pfad zum Rhino-App-Bundle |
templatePath |
Default-Template für neue Projekte |
Window-Layouts auf Mac
Mac Rhino 8 speichert Window-Layouts als XML unter:
~/Library/Application Support/McNeel/Rhinoceros/8.0/settings/Scheme__Default/workspaces/<GUID>.xml
Display-Name aus dem <RhinoUI name="…"> Attribut. Der Launcher liest diese Datei direkt — kein .rwl wie auf Windows.
Apply via Reflection über Rhino.UI.WindowLayout.*, Fallback _-SetActiveLayout "Name" _Enter.
Live-Push Workflow
Launcher ─writes─▶ pendingApplyLayout key ──▶ dossier_settings.json
│
▼
Rhino-Plugin: oberleiste.tick_idle() ─polls─▶ liest + clearet
│
▼
Window-Layout aktiv
Polling-Intervall: 500 ms im Rhino-Idle-Handler. Latenz spürbar < 1 s.
Setup
cd launcher
npm install
npm run tauri dev # Development-Mode
Release-Build mit Code-Signing:
cd launcher
./scripts/release.sh # → schreibt latest.json für Updater
Voraussetzungen siehe Tauri Prerequisites.
Standalone
Rhino läuft ohne Launcher — Settings haben sinnvolle Defaults, Plugin funktioniert direkt aus dem PackageManager-Install.
Launcher läuft ohne Rhino — Projekt-Verwaltung, Settings-Editor und Updates funktionieren auch ohne installiertes Rhino. IPC ist bewusst dateibasiert.