-
Notifications
You must be signed in to change notification settings - Fork 2
align symbol fallback and grid wrap #182
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
Issue: ⏺ renders misaligned vs Ghostty; UI Cmd glyph regressed to a square; grid wrap Cmd+Up loses focus when target is unspawned. Solution: Bundle Symbols Nerd Font with license and expose it as an embedded fallback to stabilize ⏺ rendering. Solution: Select symbol fallbacks explicitly, center glyphs via metrics, and keep SDL_ttf fallbacks in the UI cache for ⌘ pills. Solution: Adjust grid wrap-up behavior to land on the last spawned terminal in the bottom row, and update docs.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Pull request overview
This PR enhances symbol glyph rendering by bundling Symbols Nerd Font as an embedded fallback and improving symbol alignment. The changes stabilize rendering for technical symbols (like U+23FA) and fix grid navigation wrap-up behavior.
Changes:
- Bundle and embed Symbols Nerd Font with license/README as a primary symbol fallback
- Add secondary symbol fallback support with explicit fallback selection and TTF-based centering for symbol glyphs
- Fix grid wrap-up navigation to land on the last spawned terminal in the bottom row
Reviewed changes
Copilot reviewed 10 out of 11 changed files in this pull request and generated 2 comments.
Show a summary per file
| File | Description |
|---|---|
| src/font_paths.zig | Add secondary symbol fallback field and macOS STIX font path handling |
| src/font_cache.zig | Add embedded font loading, secondary fallback support, and conditional fallback attachment |
| src/font.zig | Implement TTF-based glyph centering with metrics-driven alignment for symbol-like codepoints |
| src/c.zig | Expose SDL font I/O and TTF metrics functions |
| src/app/runtime.zig | Create separate UI font cache with fallbacks enabled and update both caches with secondary fallback paths |
| src/app/grid_nav.zig | Fix wrap-up navigation to find rightmost spawned terminal in bottom row |
| assets/terminfo.zig | Embed Symbols Nerd Font binary |
| assets/fonts/nerd-fonts/README.md | Add Nerd Fonts documentation |
| assets/fonts/nerd-fonts/LICENSE | Add Nerd Fonts MIT license |
| README.md | Document symbol fallback order |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 180cb2f42b
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
Issue: Emoji glyphs render above the text baseline after symbol fallback alignment changes. Solution: Apply glyph-metrics alignment for single-codepoint emoji to restore line positioning. Solution: Update troubleshooting docs to match the current emoji alignment behavior.
Issue: PR review noted symbol centering ignored min_x/max_x bearings in glyph metrics. Solution: Compute glyph center from min_x/max_x to keep horizontal alignment consistent for symbol-like glyphs.
Solution: