2.2 KiB
2.2 KiB
name, description, metadata
| name | description | metadata | ||||||
|---|---|---|---|---|---|---|---|---|
| ghostty-miniterm-einbindung | Prüfung, ob Ghostty/libghostty statt SwiftTerm in den Mac-App-Builder eingebunden werden kann |
|
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.