Skip to content

feat: dim unfocused split panes with semi-transparent overlay#92

Open
jpnurmi wants to merge 1 commit into
am-will:mainfrom
jpnurmi:feat/unfocused-split-dim
Open

feat: dim unfocused split panes with semi-transparent overlay#92
jpnurmi wants to merge 1 commit into
am-will:mainfrom
jpnurmi:feat/unfocused-split-dim

Conversation

@jpnurmi

@jpnurmi jpnurmi commented May 31, 2026

Copy link
Copy Markdown

Match Ghostty's unfocused-split behavior: overlay a Revealer with a styled Box using the terminal background color at (1 - split-opacity) opacity over unfocused surfaces in split layouts.

Before

linux-before.mp4

After

limux-after.mp4

Based on Ghostty's GTK app runtime:

  • Config.zig:1063-1081: Config defaults: unfocused-split-opacity = 0.7, unfocused-split-fill defaults to background
  • application.zig:878-891: CSS formula: opacity: 1.0 - unfocused-split-opacity; background-color: rgb(background.r, background.g, background.b)
  • surface.blp:204-222: Overlay pattern: Revealer { transition-duration: 0; can-focus: false; can-target: false } + styled DrawingArea
  • surface.zig:853-860: Show logic: shown when search_active == 0 && focused == 0 && is_split != 0
  • split_tree.zig:564-574: is-split determination: true when tree root is .split
  • split_tree.zig:240-246: Propagating is-split to surfaces after tree changes
ghostty.mp4

Match Ghostty's unfocused-split behavior: overlay a Revealer with a
styled Box using the terminal background color at (1 - split-opacity)
opacity over unfocused surfaces in split layouts.

Based on Ghostty's GTK apprt — see:
  Config.zig:1063-1081     defaults for opacity & fill
  application.zig:878-891  CSS formula
  surface.blp:204-222      Revealer + DrawingArea pattern
  surface.zig:853-860      show when !focused && is_split
  split_tree.zig:240-246   propagate is-split to surfaces
  split_tree.zig:564-574   is-split = tree root is .Split
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