Repository navigation
Fit Ghostty windows to terminal rows and remove the tmux bottom gap - #43
Merged
Merged
Conversation
akan72
marked this pull request as ready for review
October 4, 2026 20:50
akan72
marked this pull request as draft
October 4, 2026 21:08
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
A pixel-sized Ghostty window can leave unused space below its last complete terminal row. Extending the tmux Powerline backgrounds into that space produces rectangular tails; coloring the space with the terminal background leaves a dark strip instead.
Use regular windows sized in terminal cells, zero vertical padding, and native cell-step resizing. Hide the native titlebar/tab bar so it cannot consume a fractional number of rows after initial sizing. Start fresh windows at 120 × 32 cells, make the verified 18-point font explicit, and disable restoring old pixel-sized frames so they cannot bring the gap back on launch. Keep padding background neutral so any remaining horizontal space does not distort the separators.
This deliberately uses regular row-fitted windows rather than forced full-screen/maximized pixel rectangles, which can recreate a remainder. The native window buttons and tab bar are hidden; tmux provides the tabs. Apply through a fresh window because Ghostty 1.2.3 retains old padding-extension flags after reload. The exact config is installed locally, and a working fresh window is left open.
Test Plan
/Applications/Ghostty.app/Contents/MacOS/ghostty +validate-config --config-file=/private/tmp/ghostty-powerline-fix/ghostty/configand validation of the installed symlinked config; passedgit diff --checkand the commit's secret check.open -na /Applications/Ghostty.app --args -e /opt/homebrew/bin/tmux attach-session -t 0. The final fresh-launch test uses no font, padding, titlebar, grid-size, or save-state CLI overrides; all layout settings come from the saved config.screencapture -x -o -l3437andscreencapture -x -o -l3406, excluding macOS shadows and cropping only their bottom 100 pixels. The matched crops are both 2656 × 100, use the same tmux session/window and 18-point font, and show the intended window-layout change.python3 /private/tmp/ghostty-padding-evidence.lXWGTH/verify-gap-images.py: the center 48-pixel Powerline segment is pixel-identical after its vertical move. Before, a 24-pixel dark strip follows the status row; after, the row reaches the bottom edge with no dark strip or colored tails. The regular-window regression case reproduces the gap caused by native tab chrome; it is not merely a color comparison.--window-height=31 --window-width=118; its 1488-pixel height equals 31 × 48 and its bar also reaches the bottom edge.ghostty/configappears in the branch's changed files and commit history; generated screenshots are not committed.2c2ceb4: static checks, pre-commit, Actions security, secret history, macOS installation, Ubuntu installation, and both VPS installation targets.fff912f, row-fitted windowFresh launch from the final saved config (
2c2ceb4), with no layout overrides. The window is 2656 × 1536 pixels, the grid is 120 × 32 cells at 22 × 48 pixels per cell, and status colors reach the final scanline with no terminal-background strip: