Automatic bar transparency on empty workspaces #10059
royalhanzo
started this conversation in
Suggestions
Replies: 0 comments
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Uh oh!
There was an error while loading. Please reload this page.
Motivation
The Quattro bar currently supports two persistent transparency states:
trueandfalse. A useful third behavior is to keep the wallpaper-facing empty workspace clean, while restoring the opaque bar as soon as a window is present.I have been testing this locally with a small Hyprland event watcher:
It feels natural in daily use, but the external watcher is only a workaround. It writes
shell.jsonthroughomarchy bar transparenton every state transition, needs its own autostart lifecycle, and duplicates workspace state that Quickshell already exposes.Proposal
Extend the existing setting with a backward-compatible automatic value:
{ "bar": { "transparent": "auto" } }And expose it through the existing command and menu:
Suggested behavior:
false: always opaque, unchangedtrue: always transparent, unchanged"auto": transparent when the focused workspace has no toplevels; opaque otherwiseThe existing workspaces widget already observes
workspace.toplevels.values.lengthto determine whether a workspace is occupied, so the bar can reuse the same in-process Hyprland state without polling or a background script.Compatibility
Existing boolean configurations keep exactly their current meaning. On an older Omarchy version,
"auto"is safely treated as non-transparent by the currentconfig.transparent === truecheck. No schema-version change or migration appears necessary.For a first implementation I would keep transparency global and follow
Hyprland.focusedWorkspace, matching the current globalbar.transparentstate. True per-output automatic transparency would require moving foreground sampling and animation state into each bar surface; that is related to the per-screen bar work discussed in #7669 and can be handled separately if maintainers prefer that semantic from the start.Related: #9932 proposes making the double-click transparency gesture configurable. The two ideas are independent but should agree on manual-override behavior.
I am preparing a focused PR with the QML behavior, CLI support, tests, and manual/docs updates.
All reactions