Convert the bar from a vertical left-edge strip to a horizontal top bar. The
shell had no orientation abstraction, so this flips the geometry across the bar
and the drawer/region/interaction layer:
- Bar.qml: ColumnLayout -> RowLayout; hit-testing (checkPopout/handleWheel),
scroll halves and popout-center anchoring all keyed off x instead of y;
first/last padding -> left/right margins.
- BarWrapper.qml: the bar's "thickness" is now its height (clampedHeight/
contentHeight/implicitHeight); content anchors left/right/top.
- drawers: Exclusions (exclusive zone moved left->top), Panels (content inset
topMargin = bar height), Regions + ContentWindow (panel->window coordinate
mapping and the thick border flip left->top), Interactions (bar-region check
y<barHeight, panel Y-origin uses bar height, scroll passes x, bar drag-reveal
is vertical).
- widgets: Clock (Row, HH:MM with a colon), StatusIcons (Row), Workspaces +
Workspace (Row), Tray (Row, expand chevron at the right) — each sizes to the
bar height instead of width.
Verified live in the dev VM: top bar renders with centered-clock entries, the
exclusion zone keeps windows below the bar, and the dashboard drops down
correctly. Popout fly-outs still anchor sideways (Phase B).
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
* reworked fullscreen mode as transforming shell
* controlcenter configuring of toasts & notifs
* fix animation on fs switch
* border rounding & shadow animation
* change controlcenter notifications layout
* stay on WlrLayer.Overlay, use Anim
* ci: update action versions
* qmlformat
* format take two
* third time's the charm
* fix: special workspace fullscreen
* fix: bar width border.thickness on non-persistent behaviour
* merge fix
* stop layout shift on close
* last few conventions sorted
* linting
* maximized state to fullscreen
---------
Co-authored-by: 2 * r + 2 * t <61896496+soramanew@users.noreply.github.com>
* bar: add option to disable scroll actions for volume and brightness
* options for workspaces, brightness and volume
* add options to readme + format
---------
Co-authored-by: 2 * r + 2 * t <61896496+soramanew@users.noreply.github.com>
NOTE: option is true by default, which is a breaking change
* feat(bar): add per-monitor workspace state
* fix(bar): correct active workspace indicator
* feat(bar): make per-monitor workspaces toggleable
* fixes
* more fixes
* perMonitorWorkspaces default true + add to readme
---------
Co-authored-by: 2 * r + 2 * t <61896496+soramanew@users.noreply.github.com>
* Adds ability to disable/enable status icons
Improves the hover calculations so that it's not hardcoded. This should make it easier to add/remove status icons.
Also adds an optional audio status icon.
* status: move config to barconfig
* fixes
* fix merge
* loader icons
* fix audio popout
---------
Co-authored-by: Kaj Giesbers <kajgiesbers@gmail.com>
Co-authored-by: 2 * r + 2 * t <61896496+soramanew@users.noreply.github.com>
Use loaders for all optional components
e.g. workspace windows and occupied background
Fix bar preset loader usage
Fix occupied group
Change text on active ws colour
Tray no extension for paths (use qt auto resolution)