feat: full-window liquid glass and fluidmorphism support for Lniri - #11
Merged
Merged
Conversation
- Introduce layered container color architecture in Theme.qml (chromeBackground, contentBackground, overlayBackground, popupBackground). - Make window chrome (sidebar, toolbar, tab strip, status bar, and corner cutouts) translucent to allow compositor effects to shine across the entire window. - Apply frosted glass styling to modals, dialogs, quick preview, toasts, and context menus. - Support BUBBLE_APP_ID environment variable for custom Wayland app-id matching. - Add Lniri/Niri window-rule documentation in README.md.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Overview
This PR adds full-window fluidmorphism and liquid-glass compositor effect support (specifically tailored for Lniri, Niri, Hyprland, and other Wayland compositors). Previously, only the file view content area was semi-transparent, leaving the sidebar, toolbar, status bar, and inverse rounded corners as solid opaque blocks that occluded compositor background shaders.
Key Changes
src/qml/theme/Theme.qml):chromeBackground:containerColor(mantle, 0.75)for window chrome (sidebar, toolbar, status bar, and corner cutouts).contentBackground:containerColor(base, 0.65)for the file list/grid content area.overlayBackground:containerColor(mantle, 0.88)for dialogs, modals, and toasts.popupBackground:containerColor(crust, 0.88)for context menus and dropdown panels.Sidebar.qml,Toolbar.qml,StatusBar.qml,FilterPanel.qml, andFileDetailedView.qmlto useTheme.chromeBackground.Sidebar.qml,StatusBar.qml, andMain.qmlto matchTheme.chromeBackground, preventing dark opaque artifact boxes over glass/compositor backgrounds.Toolbar.qmltab strip and updated edge gradient fade masks.ContextMenu.qml) useTheme.popupBackground.Theme.overlayBackground.Q.Theme.backgroundAltinMain.qmlso all Quill dialogs adoptTheme.overlayBackground.Ctrl+,). Disabling transparency smoothly reverts all surfaces to 100% solid opacity.BUBBLE_APP_IDenvironment variable inmain.cppfor custom app-id matching if needed, while defaulting toio.github.soyeb_jim285.Bubble.README.mdwith a copy-pasteable Lniriliquid-glasswindow-rule recipe.Testing
cmake --build build.ctest --test-dir build --output-on-failure. All GUI and main window tests (tst_mainwindow,tst_toolbar,tst_detailedview,tst_millerview,tst_viewcontextmenu) passed.