Skip to content

Latest commit

 

History

History
197 lines (159 loc) · 5.19 KB

File metadata and controls

197 lines (159 loc) · 5.19 KB

Architektur – WindowsBridge

Überblick

WindowsBridge folgt einer modularen Architektur, die es Benutzern ermöglicht, nur die benötigten Komponenten zu installieren. Das System ist zweistufig aufgebaut:

  1. Shell-Skripte (Bash): Systemoperationen, Installation, Konfiguration
  2. GUI-Layer (Python/Yad): Benutzerfreundliche grafische Oberfläche

Komponenten

1. Hauptinstaller (installer.sh)

  • Zweck: Orchestriert die Installation basierend auf Profilen
  • Funktionen:
    • Systemvorraussetzungs-Prüfung
    • Profilauswahl (Minimal, Standard, Gaming, Full, Custom)
    • Modul-Orchestrierung
    • Fehlerbehandlung
    • Logging

2. Systemvorbereitung (system_setup.sh)

  • Zweck: Basis-Systemkonfiguration
  • Funktionen:
    • Aktivierung von 32-bit-Unterstützung
    • Vulkan-Installation
    • GPU-Treiber-Erkennung und Installation
      • NVIDIA-Treiber
      • AMD-Treiber
      • Intel-Treiber
    • Kernel-Parameter-Optimierung

3. Wine-Setup (wine_setup.sh)

  • Zweck: Wine-Umgebung einrichten
  • Funktionen:
    • Wine-Repository-Verwaltung
    • Wine Installation (32/64-bit)
    • Winetricks Installation
    • Wineprefix-Erstellung
    • Runtime-Installation:
      • Visual C++ Runtimes (vcrun2019, vcrun2022)
      • .NET Framework
      • TrueType-Schriftarten
    • Registry-Tweaks für:
      • DPI-Skalierung
      • Performance-Optimierung
      • Input-Handling

4. Gaming-Setup (gaming_setup.sh)

  • Zweck: Gaming-Komponenten installieren
  • Funktionen:
    • DXVK (DirectX 9-11 → Vulkan)
    • VKD3D-Proton (DirectX 12 → Vulkan)
    • Steam Installation
    • Proton-GE Konfiguration
    • Lutris Installation
    • Heroic Launcher Installation
    • GameMode Installation
    • MangoHUD Installation
    • Launcher-Integration:
      • EA Launcher (via Lutris)
      • Ubisoft Connect (via Lutris)

5. GUI-Launcher (gui_launcher.py)

  • Zweck: Benutzerfreundliche grafische Oberfläche
  • Technologie: Python 3 + Yad
  • Features:
    • Willkommens-Dialog
    • Profil-Auswahl
    • Komponenten-Customization
    • Bestätigungs-Dialog
    • Fortschrittsanzeige
    • Abschluss-Feedback

6. Updater (updater.sh)

  • Zweck: Komponenten aktualisieren
  • Funktionen:
    • Systemupdates
    • Wine-Updates
    • Winetricks-Updates
    • Gaming-Komponenten-Updates
    • Installer-Updates

Profile

Minimal

  • System-Setup
  • Wine + Winetricks
  • Basis Runtimes

Standard

  • Minimal + Office-Tools
  • Zusätzliche Business-Software

Gaming

  • Standard + Gaming-Komponenten
  • DXVK, VKD3D, Steam, Lutris, Heroic

Full

  • Gaming + Alle optionalen Tools

Custom

  • Benutzer-definierte Komponentenauswahl

Ausführungsablauf

┌─────────────────────────┐
│  installer.sh (Bash)    │ ← Einstiegspunkt
└────────────┬────────────┘
             │
             ├─→ check_root()
             ├─→ check_system()
             ├─→ check_modules()
             │
             ├─→ GUI-Auswahl (optional)
             │   └─→ gui_launcher.py
             │
             ├─→ Profile-Ausführung
             │   ├─→ system_setup.sh
             │   ├─→ wine_setup.sh
             │   └─→ gaming_setup.sh
             │
             └─→ Abschluss-Dialog

Fehlerbehandlung

  • Alle Skripte nutzen set -e für automatisches Fehler-Stopping
  • Ausführliche Fehlermeldungen mit Kontext
  • Logging in Farbe (Info, Success, Warning, Error)
  • Dry-run Modus zur Simulation
  • Verbose Mode für Debugging

Dateistruktur

windowsbridge/
├── installer.sh              # Haupteinstiegspunkt
├── modules/
│   ├── system_setup.sh      # System-Vorbereitung
│   ├── wine_setup.sh        # Wine-Einrichtung
│   ├── gaming_setup.sh      # Gaming-Tools
│   ├── updater.sh           # Update-Mechanismus
│   └── gui_launcher.py      # GUI (Python)
├── assets/
│   └── logo.png            # Branding
├── docs/
│   ├── architecture.md      # Diese Datei
│   ├── troubleshooting.md   # Fehlerbehebung
│   ├── compatibility.md     # Kompatibilitätsliste
│   └── FAQ.md              # Häufige Fragen
└── README.md               # Projekt-Übersicht

Design-Prinzipien

  1. Modularität: Jedes Modul ist unabhängig und wiederverwendbar
  2. Idempotenz: Mehrfaches Ausführen ist sicher
  3. Transparenz: Alle Aktionen werden erklärt
  4. Fehlertoleranz: Fehler werden abgefangen, nicht verschwiegen
  5. Benutzerpflege: Ausführliche Logging und Feedback
  6. Wartbarkeit: Klare Struktur und Kommentierung

Abhängigkeiten

System

  • Bash 4.0+
  • apt-get (Debian-Paketmanager)
  • sudo-Rechte
  • Internet-Verbindung

Optional

  • Python 3.6+
  • Yad (GUI)
  • Flatpak (für moderne Anwendungen)

Erweiterbarkeit

Das System ist leicht erweiterbar:

  1. Neue Module: Erstelle modules/new_module.sh
  2. Neue Profile: Bearbeite Profil-Definitionen in installer.sh
  3. Neue Komponenten: Erweitere GUI-Auswahl und Module

Zukunftsvisionen

  • Kompatibilitätsdatenbank
  • Automatische Spiel-Optimierung
  • Prefix-Snapshots
  • DXVK-Version-Manager
  • Community-Plugins