Skip to content

feat(host): upgrade embedded Ghostty - #145

Open
bvolpato wants to merge 3 commits into
am-will:mainfrom
bvolpato:bvolpato/upgrade-ghostty-2026-08
Open

feat(host): upgrade embedded Ghostty#145
bvolpato wants to merge 3 commits into
am-will:mainfrom
bvolpato:bvolpato/upgrade-ghostty-2026-08

Conversation

@bvolpato

@bvolpato bvolpato commented Aug 10, 2026

Copy link
Copy Markdown
Collaborator

Summary

  • upgrade Ghostty from 81ab8ffa9 to 1a89efa4d, based on current manaflow-ai/ghostty
  • preserve GTK GLArea main-thread rendering and display lifecycle support
  • sync Rust FFI layouts, callbacks, action tags, and clipboard contract with current header
  • migrate builds and packages to Zig 0.16.0 and libghostty-internal.so
  • package resources and terminfo from the exact pinned Ghostty build

Limux no longer depends on am-will/ghostty. The temporary pin lives in bvolpato/ghostty, forked directly from manaflow-ai/ghostty; compatibility changes are submitted upstream in manaflow-ai/ghostty#196. Once merged, this pin can move back to the maintained repository without code changes. GTK integration work retains FreeMeWat’s credit in the Ghostty commit.

Why a compatibility branch remains

Current generic OpenGL callbacks may run on Ghostty’s renderer thread. GTK GLArea owns a main-thread offscreen framebuffer, so using generic callbacks directly risks wrong-context rendering. Compatibility patch keeps only required main-thread and realize/unrealize hooks, rebased onto maintained Ghostty head.

Validation

  • zig build -Dapp-runtime=none -Doptimize=ReleaseFast -Dcpu=baseline
  • focused Ghostty OpenGL presentation and FreeType face tests
  • C/Rust ABI layout probe
  • ./scripts/check.sh
  • LIMUX_SMOKE_PROFILE=debug ./scripts/xvfb-smoke-test.sh
  • ldd -r target/debug/limux
  • AUR source template validation

Full unfiltered Ghostty test process was killed with exit 137 under workstation memory pressure. Changed-path Ghostty tests, complete Limux suite, and live GTK smoke all pass.

Move to current manaflow-based Ghostty with preserved GTK GLArea integration. Sync FFI ABI, clipboard handling, Zig toolchain, shared-library naming, and package resources.
Preserve renderer-thread behavior for callback OpenGL surfaces and retain FreeType file provenance.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant