Skip to content

Add menu bar backdrop and screen corner settings#960

Draft
Sebeb wants to merge 1 commit into
jordanbaird:mainfrom
Sebeb:codex/menu-bar-backdrop-screen-corners
Draft

Add menu bar backdrop and screen corner settings#960
Sebeb wants to merge 1 commit into
jordanbaird:mainfrom
Sebeb:codex/menu-bar-backdrop-screen-corners

Conversation

@Sebeb

@Sebeb Sebeb commented Jul 7, 2026

Copy link
Copy Markdown

This is a rough draft PR for the menu bar backdrop and screen corner work. The code is still rough in places and there are known visual limitations called out below, but this gets the current feature work into a reviewable branch.

Screenshot 2026-07-07 at 11 36 24 Screenshot 2026-07-07 at 11-44-20 —

What changed

  • Adds a new menu bar Appearance mode picker with None, Tint, and Backdrop options.
  • Keeps the existing tint behavior as an overlay-style mode, while adding backdrop rendering underneath menu bar/status items with user-controllable color or gradient opacity.
  • Adds screen shape controls for rounded top and bottom screen corners, including radius, fullscreen visibility, defaults, and per-monitor overrides.
  • Adds settings warnings for backdrop blockers such as unsupported macOS versions, Reduce Transparency, and the system “Show menu bar background” setting.

Backend / technical notes

  • Introduces MenuBarAppearanceKind so color treatment is separate from solid-vs-gradient tint selection.
  • Extends MenuBarAppearanceConfigurationV2 with screen shape defaults and per-display overrides keyed by stable display UUIDs.
  • Adds migration paths for legacy tint state and alpha handling so existing saved appearance settings map onto the new appearanceKind model.
  • Reworks menu bar overlay panel visibility, ordering, frame calculation, and redraw behavior around Space changes, fullscreen spaces, hidden menu bars, and notched/non-notched displays.
  • Adds separate bottom-corner overlay panels for rounded bottom screen corners.
  • Adds private WindowServer/SkyLight bridging used for sticky overlay windows, per-display fullscreen-space detection, and backdrop setting probes.

Known limitations

  • The bar backdrop often takes a moment to appear after switching Spaces.
  • Top corner radii do not display on fullscreen apps.
  • The top bar backdrop sometimes has the incorrect height on notch-less displays.

Validation

  • git diff --check
  • xcodebuild -project Ice.xcodeproj -scheme Ice -configuration Debug CODE_SIGNING_ALLOWED=NO build

SwiftLint was not run locally because swiftlint is not installed in this environment; the Xcode build completed with the project’s standard SwiftLint warning.

Downloadable build

A fork build is available here: https://github.com/Sebeb/Ice/releases/tag/menu-bar-backdrop-screen-corners-draft

Direct zip: https://github.com/Sebeb/Ice/releases/download/menu-bar-backdrop-screen-corners-draft/Ice-menu-bar-backdrop-screen-corners-draft.zip

This build is ad-hoc signed and not notarized, so macOS may require manual approval in Privacy & Security before opening it.

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