Commit graph

195 commits

Author SHA1 Message Date
b1e2bb3bc6 feat(bar): horizontal top bar — Phase A geometry (NoSignal layout)
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>
2026-06-13 23:26:55 +01:00
2 * r + 2 * t
1b4f81f078 fix: use rubik for workspaces
Apparently google sans flex has some incorrect unicode symbols?
The dot symbol turns into a chinese character for some reason...
2026-06-07 22:38:06 +10:00
2 * r + 2 * t
acbc891fc0 chore: replace OpacityMask with MultiEffect Mask
MultiEffect used to do a hard cutoff and not work with soft masks, but
since Qt 6.10 (or 6.11) it works correctly, so we don't need the custom
mask anymore
2026-05-07 21:09:07 +10:00
2 * r + 2 * t
6b79abf330 fix: improve clock (again) 2026-05-06 19:08:29 +10:00
2 * r + 2 * t
2931a8c51e fix: bar mono abuse 2026-05-05 23:53:07 +10:00
2 * r + 2 * t
8f472f4a05 feat: unify battery icon logic 2026-04-26 14:06:04 +10:00
2 * r + 2 * t
158588ce89 refactor: no need to explicitly type as default spatial
Default spatial is the default type, so no need to type anims as such
2026-04-23 03:47:56 +10:00
2 * r + 2 * t
7ea5fd3c70 fix: use effects curve for effects 2026-04-23 03:45:22 +10:00
2 * r + 2 * t
c4539d6960 refactor: icons follow builders pattern
Also add icon size() shorthand
And builder scale()
2026-04-22 22:47:18 +10:00
2 * r + 2 * t
acd492b3ea refactor: migrate MaterialIcon font to fontStyle 2026-04-22 22:47:18 +10:00
2 * r + 2 * t
77dbcf5a88 refactor: migrate bar to new font API 2026-04-22 22:47:18 +10:00
2 * r + 2 * t
7cb3944af7 refactor: replace scaled spacing with new tokens 2026-04-22 22:47:18 +10:00
2 * r + 2 * t
52272c062d feat: use M3 spacing tokens 2026-04-22 22:47:18 +10:00
2 * r + 2 * t
0d0dcaf115 refactor: replace scaled padding with new tokens 2026-04-22 22:47:18 +10:00
2 * r + 2 * t
57db6e246c feat: use M3 padding tokens 2026-04-22 22:47:18 +10:00
2 * r + 2 * t
6e234d6656 refactor: use signals instead of functions 2026-04-18 01:04:04 +10:00
2 * r + 2 * t
d675478e91 refactor: use new anim type prop 2026-04-15 18:32:19 +10:00
2 * r + 2 * t
3cffc1ff94 fix: even MORE non global access 2026-04-13 16:52:41 +10:00
2 * r + 2 * t
7e4b14f6ba fix: per monitor props not having ancestor scope 2026-04-13 00:07:55 +10:00
2 * r + 2 * t
b8d17ad8ef fix: use global config for global properties 2026-04-12 22:47:30 +10:00
2 * r + 2 * t
71dd7b4db8 chore: format QML imports 2026-04-11 22:17:24 +10:00
2 * r + 2 * t
d99fefdd34 fix: use correct anim tokens in QML 2026-04-11 21:41:31 +10:00
2 * r + 2 * t
b5dcd07ab8 fix: use correct size tokens in QML 2026-04-11 21:24:16 +10:00
2 * r + 2 * t
3a37d77d1f feat: replace qml config module with c++ module 2026-04-11 21:18:56 +10:00
Robin Seger
c588794b20
feat: fullscreen notification & toasts overlay (#1276)
* 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>
2026-03-29 15:22:00 +11:00
2 * r + 2 * t
25515fd32b chore: fix rest of formatting issues 2026-03-22 16:08:57 +11:00
2 * r + 2 * t
d0f2df9bae chore: fix all import formats 2026-03-22 06:02:19 +11:00
2 * r + 2 * t
2a54c089a4 chore: fix rest of linter warnings 2026-03-22 01:31:52 +11:00
2 * r + 2 * t
20c7482b2b chore: fix bar linter warnings 2026-03-21 16:04:57 +11:00
2 * r + 2 * t
c3fd5aa905 chore: fix unqualified access 2026-03-20 23:42:36 +11:00
2 * r + 2 * t
8b64d38e26 chore: remove unused imports 2026-03-20 22:33:26 +11:00
2 * r + 2 * t
d2acd1014d chore: fix PersistentProperties missing-prop linter errors 2026-03-20 22:17:36 +11:00
2 * r + 2 * t
beddbb111e chore: run qmlformat 2026-03-20 16:06:40 +11:00
2 * r + 2 * t
796c2e4e76 chore: fix prop order 2026-03-20 16:03:18 +11:00
2 * r + 2 * t
3b08cd6594 chore: add newline after id 2026-03-20 04:42:06 +11:00
2 * r + 2 * t
473e4456b0 feat: async bar 2026-03-20 01:18:45 +11:00
Ezekiel Gonzales
7fbcf17899
bar: add date and background option for clock (#1198)
* bar: add date and background option for clock

* fix height binding loop qs WARN
2026-03-19 22:39:35 +11:00
Ezekiel Gonzales
0548365a8c
activewindow: fix compact title binding loop (#1302) 2026-03-19 20:47:52 +11:00
2 * r + 2 * t
377778596a fix: close other popouts when hover activewindow 2026-03-15 22:36:40 +11:00
2 * r + 2 * t
5d492539d1 bar/activewindow: toggle when not show on hover 2026-03-15 22:33:15 +11:00
2 * r + 2 * t
521cd4079e bar/activewindow: allow disable show on hover
Closes #1209
Closes #1019
2026-03-15 22:29:28 +11:00
2 * r + 2 * t
dc8767e28b bar/activewindow: format 2026-03-15 22:18:39 +11:00
Ezekiel Gonzales
b68f0bae14
bar/activewindow: add compact option (#1201)
Co-authored-by: 2 * r + 2 * t <61896496+soramanew@users.noreply.github.com>
2026-03-15 18:55:55 +11:00
Kalagmitan
0903a6a84b
bar/osicon: fix blurriness (#1271)
* osicon: Unblurred sidebar icon

+ The multiplier on the implicitWidth and implicitHeight caused the
distro icon on the sidebar to look blurry. I believe this is because the
screen can't render a fraction of a pixel, and so, the qtengine
compensates by using anti-aliasing which causes the icon look smudged.
+ I changed the font size of the icon to a standard integer size
(extraLarge) and removed the multipliers. A side-effect of this commit
is that the icon looks a bit bigger now, I chose extraLarge instead of
just large because the icon looked a bit too small, but I do not know of
other people's preference on this.

* feat: Adjusted root implictWidth and implicitHeight

* fix

---------

Co-authored-by: 2 * r + 2 * t <61896496+soramanew@users.noreply.github.com>
2026-03-15 18:51:07 +11:00
Robin Seger
1508abd3e1
workspaces: window icons limit (#1267)
* workspace window icons display limit

* serialization
2026-03-15 17:34:52 +11:00
2 * r + 2 * t
51579474c5 workspaces: replace reduce with for loop for occupied map 2026-03-12 22:17:11 +11:00
Robin Seger
1bb7afe7b0
feat: add Logo shape component (#1247)
* Logo Shape component

- Added Logo.qml component with scaling
- Updated OsIcon to use Logo component

* missed removing tour

* [CI] chore: update flake

* Colours.palette defaults

* fixed import, added logo to Fetch.qml

* single shape parent, prop changes

* prop changes

---------

Co-authored-by: github-actions <41898282+github-actions[bot]@users.noreply.github.com>
2026-03-10 00:27:43 +11:00
Evertiro
5bde26496e
bar: allow hiding tray icons (#1227)
* First pass at hiding systray icons

Signed-off-by: Dan Griffiths <dgriffiths@widgitlabs.com>

* Don't dump all IDs for no reason >_<

Signed-off-by: Dan Griffiths <dgriffiths@widgitlabs.com>

* Better handling for hiding tray icons

Signed-off-by: Dan Griffiths <dgriffiths@widgitlabs.com>

* Re-add EOF newline

Signed-off-by: Dan Griffiths <dgriffiths@widgitlabs.com>

* Hide popouts too

Signed-off-by: Dan Griffiths <dgriffiths@widgitlabs.com>

* Hide the expand icon if no icons are visible

Signed-off-by: Dan Griffiths <dgriffiths@widgitlabs.com>

* Update modules/bar/components/Tray.qml

Co-authored-by: 2 * r + 2 * t <61896496+soramanew@users.noreply.github.com>

* Update modules/bar/components/Tray.qml

Co-authored-by: 2 * r + 2 * t <61896496+soramanew@users.noreply.github.com>

* Update modules/bar/components/Tray.qml

Co-authored-by: 2 * r + 2 * t <61896496+soramanew@users.noreply.github.com>

* That needs to be inverted

* Clean up

Signed-off-by: Dan Griffiths <dgriffiths@widgitlabs.com>

* fix

---------

Signed-off-by: Dan Griffiths <dgriffiths@widgitlabs.com>
Co-authored-by: 2 * r + 2 * t <61896496+soramanew@users.noreply.github.com>
2026-03-08 20:33:31 +11:00
2 * r + 2 * t
9d7f0c48ce internal: format 2026-01-28 19:21:44 +11:00
Evertiro
d50f6080ec
bar/statusicons: allow disabling wifi icon when ethernet is active (#1107)
Signed-off-by: Dan Griffiths <dgriffiths@widgitlabs.com>
2026-01-20 23:37:45 +11:00