42 Commits
Author SHA1 Message Date
Huỳnh Thiện Lộc b6fee3a98f fix(island): avoid bottom clipping in media expanded sheet (#3593)
(cherry picked from commit 0717908d53)
2026-10-07 12:58:37 -04:00
purian23 12f7675950 refactor(island): add island satellite hover option
fixes #3296
port 1.6

(cherry picked from commit 60675ecb39)
2026-09-10 03:36:41 +00:00
bbedward 6261e580aa bar: refresh blur region after widget layout settles
ref #3348
port 1.6

(cherry picked from commit 62ad4c2cb7)
2026-09-06 17:54:19 +00:00
bbedward a1b51b191f bar: focus workspace icons on any workspace and wire island overview loader
fixes #3309
fixes #3310

port 1.6

(cherry picked from commit 3d6e45f430)
2026-09-05 15:40:15 +00:00
purian23 faf25e98a5 feat(island): vertical orientation layout management support
Port 1.6

(cherry picked from commit e18931353b)
2026-09-04 21:57:39 +00:00
purian23 700f43a194 feat(island): allow hiding clock or date options in compact pill
Port 1.6

(cherry picked from commit c1f1da1d26)
2026-09-04 04:47:35 +00:00
Mario Moharandbbedward 5142d576f5 fix(bar): centre widget content on whole pixels (#3263)
* fix(bar): keep widget content on whole pixels

Bar widgets centre their content inside a box of
widgetThickness - horizontalPadding * 2, and Qt rounds the offset of a
centred anchor to whole pixels. When the content and that box have
different parity the exact offset falls on a half pixel, Qt rounds it
away from zero and the content renders half a pixel above the centre.
Widgets drawn from rectangles, such as the workspace switcher, compute
their own snapped height and stay exactly centred, which is why they
look right next to everything else in #3074.

With the stock configuration this is the normal case: the bar is 40 px,
the box is 14 px and barIconSize returns round((40 / 48) * 18) = 15.

Two sizes now round to whole pairs of pixels. The icon size, so that it
matches the parity of the box, and widgetThickness, because the box
inherits its parity from there (the padding is doubled, so it never
changes it). Going through every innerPadding from 0 to 16, nine of the
seventeen configurations currently put the icon on a half pixel and none
of them do afterwards. The 48 px default bar is untouched, the sizes
that change do so by one pixel.

Measured in a nested Hyprland at scale 1, ink centroid of the widget
content relative to the centre of its pill, before and after:

  launcher      -0.50   +0.00
  weather       -0.81   -0.52
  clipboard     -1.49   -0.93
  notifications +0.03   +0.46
  battery       -0.63   -0.49
  bluetooth     -0.53   -0.03

Every icon moves down by half a pixel. What remains matches the ink
asymmetry of the individual glyphs, measured separately at an exact
position, and is not a placement error.

Two things this does not cover. On a fractional or HiDPI scale
horizontalPadding can land on a half pixel, which puts the box back
between the grid lines, and a text only widget such as the clock has a
line box of 15 px at the default font size, which cannot sit exactly on
the centre of a 28 px pill no matter how it is rounded.

Closes #3074

* fix(bar): give bar text a line box that can be centred

A widget without an icon is centred as one line box, and the same parity
rule applies to it as to the icon in the commit before this one. At
fontSizeSmall the line box of the bar font is 15 px tall, so on a 28 px
pill it cannot sit on the centre no matter which way the offset is
rounded, and the clock reads about half a pixel high next to everything
else. One step up the box is 16 px and it lands on the grid.

Only the branch the standard bar uses changes. The 0.9 branch below a
scale of 0.75 already comes out at 14 px, and the fontSizeMedium branch
above 1.25 is left alone because there the next even box is two steps
away, which would be a bigger change than this is worth.

Same session and same measurement as the previous commit, ink centroid
of the widget content relative to the centre of its pill:

  clock and date  -0.58   +0.05
  battery         -0.63   -0.05
  weather         -0.82   -0.28

The bar font goes from 12 px to 13 px, which is the visible part of this
and the reason it is a separate commit. It can be dropped without
touching the icon fix.

* bar: snap widget thickness to even device pixels and pick text sizes by line box parity

* bar: snap bar thickness to even so the pill centres on whole pixels

* bar: share the bar thickness formula so dock, osd and popouts stay in step

* dock: read the bar clearance at the compositor screen scale

---------

Co-authored-by: bbedward <[email protected]>
2026-09-03 12:13:09 -04:00
bbedward 592ca3ee8f island: follow island opacity in every state and drop covered widget blur 2026-09-03 10:40:34 -04:00
purian23 ab1e57dda5 refactor(media): re-add wallpaper blur to island media & misc tweaks
- New Wallpaper on/off toggle in the Media Player tab for Dashboard and Island Media
2026-09-03 01:28:05 -04:00
purian23 78e3308f40 feat(battery): circle battery option per/bar instance & theme/step colors
- New settings located in Bar > Widgets and Island > Appearance
- Theme & Step Colors located in Bar > Appearance
2026-09-02 23:14:02 -04:00
bbedward e8082ad75d island: drag and drop home face layout 2026-09-02 15:25:29 -04:00
bbedward 13fafa1dff island: simplify volume and brightness home slots 2026-09-02 14:59:43 -04:00
bbedward 6df71083ec island: redesign the separate media player variant 2026-09-02 14:47:01 -04:00
bbedward 863152a441 island: re-add different player style 2026-09-02 14:47:01 -04:00
purian23 65ee46e330 feat(island): dedicated volume/brightness activities & placement options 2026-09-02 13:44:29 -04:00
bbedward de24b1515a island: re-use media controls from dankdash 2026-09-02 13:36:09 -04:00
bbedward 0b87df2608 island: keep hover intent when a destination expands after its face loads 2026-09-01 19:09:42 -04:00
bbedward ba04356d64 island: decouple blank-click policy from destinations, centralize escape 2026-09-01 18:57:20 -04:00
bbedward 8fb83d251c island: collapse weather face on blank click
fixes #3254
2026-09-01 18:46:12 -04:00
bbedward fa445388e4 island/bar: square blur region corners where goth paths paint square
ref #3191
2026-09-01 10:50:33 -04:00
bbedward 9628628d38 fix(island): click through empty strip space when floating
fixes #3227
2026-08-30 11:30:07 -04:00
purian23 3306772f97 fix(island): fix ghost widgets & extended clicks on near island/screen edges 2026-08-28 21:17:36 -04:00
Huỳnh Thiện Lộc d8ceb12164 feat(spotlight): align tab navigation with full launcher (#3205)
* feat(spotlight): align tab navigation

* fix(launcher): wrap reverse action navigation

* fix(launcher): reset spotlight actions on selection
2026-08-28 01:18:27 -04:00
bbedward 530c58b928 island: scale satellite background to content in near mode
fixes #3191
2026-08-27 09:49:31 -04:00
purian23 25e95d597c feat(dankisland): render notification severity as a border accent 2026-08-27 01:26:10 -04:00
bbedward ea0b158eb8 bar/island: fix click targets on satellites 2026-08-25 20:54:39 -04:00
bbedward 6feac1f79e bar/island: tweak spacing of satellite widgets 2026-08-25 17:48:32 -04:00
bbedward c8ec045a3c bar/island: add background options for satellites, transparency, blur.
Bigger click targets
2026-08-25 15:54:57 -04:00
purian23 195ec3bf6e feat(motion): spring-based physics & shell hybrid material animations
- New Spring Motion settings (bounce character, reduce motion)
- Reorganize Typography & Motion tab
2026-08-24 22:41:02 -04:00
purian23 d951dbddbd refactor(island): updated hover/click targets - fitt's law
- New option to dismiss the notfication badge
- Updated dynamic notification widths
2026-08-23 23:51:52 -04:00
bbedward 4cf375f2fd island: add notification counter 2026-08-23 20:25:58 -04:00
bbedward d4069a778b island: pace the face crossfade from the spring, not DMS animations 2026-08-23 19:48:22 -04:00
bbedward ca7b165eb8 battery: use theme font weight in horizontal mode 2026-08-23 18:39:30 -04:00
bbedward 4f9b17503e island: stage expanded faces at target size, reserve numeric widths 2026-08-23 18:17:33 -04:00
bbedward 20b86057d4 island: fix hover-expand getting stuck after slot hover 2026-08-23 18:02:30 -04:00
bbedward eadb8cf9c7 island: fix transition regression 2026-08-23 16:10:02 -04:00
bbedward 744fa54ae0 island: resize to notifications based on title size 2026-08-23 14:34:38 -04:00
bbedward 44e82c6e42 island: break out more stuff into commonality helpers, redesign
horizontal battery, tweak spacing
2026-08-23 13:20:40 -04:00
bbedward 2c44b794f1 island: general optimizations and cleanups 2026-08-23 11:46:02 -04:00
purian23 5c9dd50c2e add(dankisland): lower min thresholds for compact & reserved heights 2026-08-23 02:57:35 -04:00
purian23 c57fd7aad1 refactor(Dank Island): update hover delay property defaults
- fix volume pills while notifications are live
2026-08-22 23:58:43 -04:00
purian23 4447d77ba6 feat(Dank Island): add new island bar instance 2026-08-22 22:06:13 -04:00