Description
Ghostty's unfocused-split-opacity and unfocused-split-fill config settings have no effect in Supacode.
Upstream Ghostty reads these values via Ghostty.Config and applies a semi-transparent overlay on unfocused split panes in SurfaceWrapper. Supacode uses its own TerminalSplitTreeView which doesn't implement this overlay.
Steps to reproduce
- Add
unfocused-split-opacity = 0.5 to ~/.config/ghostty/config
- Open a worktree in Supacode
- Create a split (right-click → Split Right)
- Click between splits
Expected
The unfocused split pane should be visually dimmed per the config value.
Actual
Both panes look identical regardless of focus state.
Suggested fix
- Read
unfocused-split-opacity and unfocused-split-fill via ghostty_config_get from GhosttyRuntime
- Track surface focus state on
GhosttySurfaceState (already @Observable)
- Apply a
Rectangle overlay in TerminalSplitTreeView.LeafView when the surface is in a split and not focused
Description
Ghostty's
unfocused-split-opacityandunfocused-split-fillconfig settings have no effect in Supacode.Upstream Ghostty reads these values via
Ghostty.Configand applies a semi-transparent overlay on unfocused split panes inSurfaceWrapper. Supacode uses its ownTerminalSplitTreeViewwhich doesn't implement this overlay.Steps to reproduce
unfocused-split-opacity = 0.5to~/.config/ghostty/configExpected
The unfocused split pane should be visually dimmed per the config value.
Actual
Both panes look identical regardless of focus state.
Suggested fix
unfocused-split-opacityandunfocused-split-fillviaghostty_config_getfromGhosttyRuntimeGhosttySurfaceState(already@Observable)Rectangleoverlay inTerminalSplitTreeView.LeafViewwhen the surface is in a split and not focused