Add floating traffic-light window chrome

Introduces a dedicated layer-shell `WindowChromeSurface` that renders macOS-style traffic-light controls over the focused Sway window titlebar, replacing the old top-bar window controls. Adds theme tokens and a reusable `TrafficLightButton` component, updates shell QML/CMake wiring, and adjusts Sway titlebar padding/title format so window titles do not overlap the overlay. Window tracking was extended with focused-window geometry/deco/fullscreen properties plus backend refresh support so the chrome follows window movement and state changes in near real time.
This commit is contained in:
2026-08-26 22:38:33 +12:00
parent 08e67845a5
commit 4321209e92
14 changed files with 452 additions and 92 deletions
+2
View File
@@ -46,9 +46,11 @@ set(NEBULA_SHELL_QML_FILES
qml/ShellState.qml
qml/surfaces/DesktopSurface.qml
qml/surfaces/TopBarSurface.qml
qml/surfaces/WindowChromeSurface.qml
qml/surfaces/LauncherSurface.qml
qml/components/TopBar.qml
qml/components/WindowControls.qml
qml/components/TrafficLightButton.qml
qml/components/NebulaButton.qml
qml/components/Clock.qml
qml/components/SystemArea.qml