diff --git a/limbach/memory/MEMORY.md b/limbach/memory/MEMORY.md index 14d4ecb..3c157a2 100644 --- a/limbach/memory/MEMORY.md +++ b/limbach/memory/MEMORY.md @@ -2,3 +2,4 @@ - [adesso Styling](adesso-styling.md) — Corporate-Template-Quelle & Design-Tokens für Folien 2–4 (adesso_style.py) - [Integrationsserver Aufwand](integrationsserver-aufwand.md) — grobe Aufwandsschätzung Event-Sourcing-Integrationsserver (~300–530 PT) - [Git-Permission-Scope offen](git-permission-scope-offen.md) — Plan: git/cd/Datei prompt-frei je Projekt via update_scripts-Command (Wrapper + Pfad-Globs aus additionalDirectories), globales cd/git raus +- [Ghostty in Mac-App-Builder](ghostty-miniterm-einbindung.md) — SwiftTerm durch libghostty ersetzen: Weg, Aufwand (Zig), ghostling als Vorlage diff --git a/limbach/memory/ghostty-miniterm-einbindung.md b/limbach/memory/ghostty-miniterm-einbindung.md new file mode 100644 index 0000000..baea0b0 --- /dev/null +++ b/limbach/memory/ghostty-miniterm-einbindung.md @@ -0,0 +1,23 @@ +--- +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.