Skip to content

ToolBoxV2 Tauri App - Architektur

Übersicht

Die ToolBoxV2 Tauri App ist eine Desktop-Anwendung, die als Frontend für das ToolBoxV2 Backend dient. Sie bietet zwei Hauptmodi: App-Modus (vollständige Anwendung) und HUD-Modus (kompaktes Overlay).

Verzeichnisstruktur

toolboxv2/simple-core/
├── src-tauri/
│   ├── src/
│   │   ├── lib.rs           # Haupteinstiegspunkt, Tauri Commands
│   │   ├── main.rs          # Rust main() Funktion
│   │   ├── hud_settings.rs  # HUD Konfiguration & Persistenz
│   │   ├── mode_manager.rs  # App/HUD Modus-Wechsel mit Animation
│   │   └── worker_manager.rs # Python Worker Prozess-Management
│   ├── capabilities/        # Tauri 2.0 Permissions
│   │   └── default.json     # Erlaubte Commands
│   ├── gen/                 # Auto-generierte Permission-Dateien
│   ├── Cargo.toml           # Rust Dependencies
│   └── tauri.conf.json      # Tauri Konfiguration
├── src/
│   ├── index.html           # App-Modus Hauptseite
│   ├── hud.html             # HUD-Modus Overlay
│   └── mobile.html          # Mobile Version
└── package.json

Rust Module

lib.rs - Hauptmodul

Definiert alle Tauri Commands und den Application State:

struct AppState {
    worker_manager: Mutex<WorkerManager>,  // Python Worker
    mode_manager: Mutex<ModeManager>,      // App/HUD Modus
    hud_settings: Mutex<HudSettings>,      // HUD Konfiguration
}

Wichtige Commands:

Command Beschreibung
start_worker Startet den Python Worker Prozess
stop_worker Stoppt den Python Worker
get_worker_status Status des Workers (running, endpoint, etc.)
switch_mode Wechselt zwischen App und HUD Modus
save_hud_position Speichert HUD Position/Größe
set_hud_opacity Setzt HUD Transparenz
get_hud_functions Lädt verfügbare HUD Widgets vom Backend
call_hud_function Ruft eine HUD Widget-Funktion auf

hud_settings.rs - HUD Konfiguration

Verwaltet persistente HUD-Einstellungen:

pub struct HudSettings {
    pub x: i32,                    // X Position
    pub y: i32,                    // Y Position
    pub width: u32,                // Breite
    pub height: u32,               // Höhe
    pub opacity: f32,              // Transparenz (0.1-1.0)
    pub animation_steps: u32,      // Animationsschritte (5-50)
    pub animation_delay_ms: u32,   // Animationsverzögerung (5-50ms)
    pub selected_miniui_app: Option<String>,  // Ausgewählte MiniUI App
    pub saved_app_state: Option<SavedAppState>, // Gespeicherter App-Zustand
}

Speicherort: ~/.config/toolboxv2/hud_settings.json (Linux/Mac) oder %APPDATA%\toolboxv2\hud_settings.json (Windows)

mode_manager.rs - Modus-Wechsel

Verwaltet den animierten Übergang zwischen App und HUD Modus:

pub enum AppMode {
    App,  // Vollständige Anwendung
    Hud,  // Kompaktes Overlay
}

Animation: - Sanfter Übergang mit konfigurierbaren Schritten - Position und Größe werden interpoliert - Fenster-Dekorationen werden ein-/ausgeblendet

worker_manager.rs - Python Worker

Verwaltet den Python Backend-Prozess:

  • Startet/Stoppt den Worker als Sidecar
  • Health-Check via HTTP
  • Unterstützt lokale und Remote-Endpoints

Frontend (HTML/JS)

index.html - App Modus

Vollständige Web-Anwendung mit: - Navigation - Einstellungen - Volle Funktionalität

hud.html - HUD Modus

Kompaktes Overlay mit: - Dynamischen Widgets - Live-Suche - Transparenz-Einstellungen - WebSocket-Verbindung für Echtzeit-Updates

HUD JavaScript API:

// Widget-Action senden
HUD.action('widget_id', 'action_name', {payload: 'data'});

// Widget aktualisieren
HUD.refresh('widget_id');

// Notification anzeigen
HUD.notify('Nachricht', 'success', 3000);

// In Clipboard kopieren
HUD.copy('text', 'Kopiert!');

Tauri 2.0 Permissions

Alle Commands müssen in capabilities/default.json erlaubt werden:

{
  "permissions": [
    "core:default",
    "commands:default",
    "shell:allow-open"
  ]
}

Custom Commands werden in gen/commands.toml definiert:

[commands]
allow = [
    "start_worker",
    "stop_worker",
    "switch_mode",
    ...
]

Build & Development

Development

cd toolboxv2/simple-core
npm run tauri dev

Production Build

cd toolboxv2/simple-core
npm run tauri build

Rust Tests

cd toolboxv2/simple-core/src-tauri
cargo test

Kommunikation

┌─────────────────┐     IPC      ┌─────────────────┐
│   Frontend      │◄────────────►│   Rust Backend  │
│   (WebView)     │              │   (Tauri)       │
└─────────────────┘              └────────┬────────┘
                                          │
                                          │ HTTP/WS
                                          ▼
                                 ┌─────────────────┐
                                 │  Python Worker  │
                                 │  (ToolBoxV2)    │
                                 └─────────────────┘

Konfigurationsdateien

Datei Beschreibung
tauri.conf.json Tauri Hauptkonfiguration
Cargo.toml Rust Dependencies
capabilities/default.json Erlaubte Permissions
gen/commands.toml Custom Command Permissions