--- name: ghostty-miniterm-einbindung description: "Prüfung, ob Ghostty/libghostty statt SwiftTerm in den Mac-App-Builder eingebunden werden kann" metadata: node_type: memory type: project originSessionId: c054beab-7d0a-44f2-992f-ee3f9304358e --- Projekt `__mac-cluade-app-builder` (in /home/marcuh/claude-projects/) baut pro Aufruf eine eigenständige macOS-`.app` mit eigener Bundle-ID → eigenes Dock-Icon + eigener ⌘-Tab-Eintrag. Ein gemeinsames Binary (Sources/MiniTerm/main.swift) liest pro Bundle Info.plist-Keys (MTCommand, MTWorkingDirectory, MTFontSize, MTFontName, MTWindowTitle); make-app.sh assembliert das Bundle. Nutzt heute **SwiftTerm** (SPM-Dependency). Funktioniert. Frage: SwiftTerm durch **Ghostty** ersetzen, weil Terminal besser (GPU-Rendering, Ligaturen, vollere Kompatibilität). Befund: - Ghostty.app als Ganzes hilft nicht — eine gemeinsame App löst die Pro-Projekt-Identität (Dock/⌘-Tab) nicht (gleiche `--class`-Grenze wie im README). Lösung bleibt: pro Projekt eigenes Bundle. - Richtiger Weg: **libghostty** (Zig-Kern, C-API) statt SwiftTerm in die eigene Swift-Hülle linken — analog zur jetzigen Konstruktion. Offizielles Minimalbeispiel als Vorlage: `ghostling` (github.com/ghostty-org/ghostling). - Genutzte Funktionsfläche ist winzig (Prozess in Login-Shell starten, rendern, Font, Shift+Enter-Key-Monitor, Copy/Paste) → laufendes API-Risiko gering, obwohl libghostty-Embedding-API offiziell noch nicht stabil ist. - Einmaliger Aufwand = Integration: **Zig-Toolchain** auf den Mac, libghostty aus Quellbaum bauen, C-Header + lib manuell in die Swift-Hülle linken. Kein fertiges SPM-Paket wie SwiftTerm. - Zig = einzelnes self-contained Binary (Tarball, kein Installer), aber **bestimmte von Ghostty gepinnte Version** nötig. Gehört auf den Mac, nicht auf Linux (Build geht nur unter macOS, Xcode CLT/AppKit). - Bestehende Mac-Tools reichen sonst: swift (Xcode CLT), sips/iconutil/codesign (macOS built-in). Nur Zig ist neu. - Bundle-Hülle, make-app.sh und Shift+Enter-Key-Monitor bleiben unverändert; SwiftTerm-Variante bleibt als Rückfallpunkt funktionsfähig. Stand 2026-06-21: Marcus tendiert dazu, es zu probieren; Umsetzung auf dem Mac noch nicht begonnen.