Skip to content

feat(bar): reserve layout only while visible during auto-hide - #4146

Open
mdj2812 wants to merge 6 commits into
noctalia-dev:mainfrom
mdj2812:feat/bar-dynamic-reserve-space
Open

feat(bar): reserve layout only while visible during auto-hide#4146
mdj2812 wants to merge 6 commits into
noctalia-dev:mainfrom
mdj2812:feat/bar-dynamic-reserve-space

Conversation

@mdj2812

@mdj2812 mdj2812 commented Aug 28, 2026

Copy link
Copy Markdown
Contributor

Summary

  • Add opt-in auto_hide_reserve_space bar setting (disabled by default) that releases the compositor exclusive zone while the bar is hidden and restores it when shown
  • Applies with auto_hide or smart_auto_hide when reserve_space = true, giving full-screen layout when the bar is away and normal reserved layout when it appears
  • Expose Reserve Space While Visible in bar settings below Reserve Space, shown only when layout reservation is enabled (including per-monitor overrides)
  • Add unit tests for static vs dynamic exclusive-zone decisions

Credit: Idea from this Discord message in the Noctalia community server:

So when the bar is hidden the whole screen is occupied, but when the bar drops down, either via autohide-off, smart, or on, the bar gets the reserve space again, and when the bar collapses, it removes the reserve space it should take — this would provide good immersion.

Test plan

  • bar_exclusive_zone_test and config_schema_roundtrip_test pass
  • Manual test on KineticWE: reserve_space = true, smart_auto_hide = true, auto_hide_reserve_space = true — windows use full screen when bar hidden, layout shifts when bar appears
  • Verified default off: without auto_hide_reserve_space, behavior unchanged (static reserve)
Screencast_20260828_211211.webm

Made with Cursor

mdj2812 and others added 6 commits August 30, 2026 15:56
Introduce an opt-in setting that defers layout reservation until the bar is
visible during auto-hide, disabled by default and wired through schema,
overrides, and export.

Co-authored-by: Cursor <cursoragent@cursor.com>
Apply dynamic exclusive-zone reservation when auto_hide_reserve_space is
enabled, releasing layout space while the bar is hidden.

Co-authored-by: Cursor <cursoragent@cursor.com>
Show the reserve-while-visible toggle below reserve space and only when
layout reservation is enabled, including per-monitor overrides.

Co-authored-by: Cursor <cursoragent@cursor.com>
Add unit tests for static vs dynamic reserve-space decisions across
auto-hide, smart auto-hide, and IPC layout release.

Co-authored-by: Cursor <cursoragent@cursor.com>
Note the opt-in setting for reserving layout only while the bar is visible.

Co-authored-by: Cursor <cursoragent@cursor.com>
@mdj2812
mdj2812 force-pushed the feat/bar-dynamic-reserve-space branch from 27e665f to 41efc76 Compare August 30, 2026 07:59
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