Commit graph

195 commits

Author SHA1 Message Date
83d5de1ba3 feat(nosignal): Nerd Font icons in IconButton (controls-wide)
Convert the shared IconButton control to render via NsIcon, so every icon-button
across the shell (nexus, lock, utilities, launcher chrome, ...) uses Nerd Font.
Alias icon -> label.icon; internal MaterialIcon -> NsIcon (sizes from root.font
via fontStyle); dropped the Material-Symbols vertical-center fudge.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-14 11:19:16 +01:00
cf3c0d823d feat(nosignal): Nerd Font icon remap — nexus (Settings)
Convert caelestia's nexus Settings to Nerd Font icons (drop-in NsIcon).

- NsIcon hardened into a MaterialIcon drop-in: accepts fontStyle (sizes from
  it, keeps the NF Mono family), plus no-op fill/grade/animate for API parity.
- Glyphs map extended with caelestia core names: nexus static icons, nav/page
  icons (palette, wallpaper, dashboard, devices_other, extension, globe, info,
  monitor, shuffle, workspaces, ...), weather + app/device icons.
- Converted all MaterialIcon in modules/nexus/ to NsIcon; fixed icon aliases
  (NavRow/SliderRow .text -> .icon); reverted IconButton font: (it has font,
  not fontStyle, and renders its own icon).

Remaining core surfaces still Material Symbols (no breakage): launcher, osd,
lock, sidebar, utilities — to convert next with any further Glyphs entries.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-14 11:16:01 +01:00
6a933aa260 feat(nosignal): Nerd Font icon remap — bar + popouts
Route the redesign's icons through JetBrains Mono Nerd Font instead of Material
Symbols, for visual consistency with the JetBrains Mono text.

- services/Glyphs.qml: Material-Symbol-name -> Nerd Font (Font Awesome range)
  codepoint map (via String.fromCharCode), covering bar/panel icons + the
  dynamic Icons.getX() returns; get() falls back to a "?" glyph.
- components/NsIcon.qml: reactive icon component (input `icon` = name -> mapped
  glyph), so dynamic icons (volume/battery/play-pause) stay live. Uses the
  "Mono" NF variant so glyphs center in a fixed cell.
- Converted all MaterialIcon usages in NsBar + the 9 panels to NsIcon.

caelestia core (nexus/launcher/osd/lock) still uses Material Symbols — no
breakage (mixed), to be converted next with an expanded Glyphs map.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-14 11:01:44 +01:00
36f6f5a157 feat(nosignal): interface redesign — slim glass bar + floating popouts
Convert the caelestia shell to the NoSignal "design_handoff_quickshell_shell"
spec: a slim translucent top bar with floating glass popouts, fixed dark-glass
chrome + Material You dynamic accent, square corners, JetBrains Mono.

- Theme singleton (services/Theme.qml): design tokens; accent = m3primary
  (dynamic), fixed glass/text, square radii.
- New slim bar as its own PanelWindow (modules/nsbar/NsBar.qml), additive in
  shell.qml; reuses caelestia services + components. Helpers: BarPill,
  NsWorkspaces (numbered, active=accent pill), NsOverlay (popout host, one-at-a-
  time via services/NsShell.qml, outside-click + Esc), components/NsPanel +
  components/NsSwitch.
- Old caelestia frame removed: BarWrapper collapsed; ContentWindow border 0 +
  borderTop 0; Exclusions zones 0. Drawer engine kept for launcher/OSD/lock.
- 9 popouts (modules/nsbar/panels/): Calendar, QuickSettings, Network,
  Bluetooth, Notifications, Audio, SystemTray, Overview, PowerMenu.
- Clock restyled (date muted + time DemiBold).
- nexus (Settings) reskinned: dark-glass window + cards, square corners
  (Nexus.qml, common/ConnectedRect.qml) — keeps all pages/functionality.

Launcher kept as-is. Font (JetBrainsMono) + rounding.scale=0 + Super+Alt+Space
nexus bind are caelestia/hypr CONFIG and ship in the OS, not this fork.
Next: full Material Symbols -> Nerd Font icon remap.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-14 10:36:33 +01:00
2 * r + 2 * t
24816fb0d9 fix: only update media position on slider release 2026-06-08 16:05:41 +10:00
2 * r + 2 * t
6f51a1a561 fix: more weird async null warnings 2026-06-07 19:16:37 +10:00
2 * r + 2 * t
72dc5a8b93 feat: add nexus audio page 2026-06-07 17:01:27 +10:00
2 * r + 2 * t
76b64ca214 feat: add nexus bluetooth device page 2026-06-07 02:57:07 +10:00
2 * r + 2 * t
c36a2ade54 fix: use height over implicitHeight for ButtonBase
Also non internal and non required colours so other modules can use it
2026-06-07 02:34:43 +10:00
2 * r + 2 * t
b874dfc983 refactor: move anim loader -> new component 2026-06-07 00:02:10 +10:00
2 * r + 2 * t
1bfc451a68 feat: make StateLayer pick up per corner from parent 2026-06-06 01:06:43 +10:00
2 * r + 2 * t
cae57dae4f fix: file dialog sizing 2026-06-05 22:39:07 +10:00
2 * r + 2 * t
06f8b44582 fix: reduce flickable fade amount 2026-06-05 19:54:46 +10:00
2 * r + 2 * t
45c97074b7 refactor: fade flickable -> own component 2026-06-05 16:54:40 +10:00
2 * r + 2 * t
68317ecf67 fix: animate nexus wallpaper preview 2026-06-05 01:01:43 +10:00
2 * r + 2 * t
c31cb2a7f6 feat: add wallpaper & style nexus page 2026-06-05 00:26:25 +10:00
2 * r + 2 * t
69fe7c1251 fix: IconTextButton not impl'd properly 2026-06-05 00:26:00 +10:00
2 * r + 2 * t
4586c2eac9 fix: flickable positions not updating on rebound
Also disable nexus nav fade on rebound start if content smaller than
height
And force vertical flick only on nexus nav
2026-06-04 16:28:26 +10:00
2 * r + 2 * t
d6d53ed7bc feat: gradient ripple 2026-06-04 01:11:04 +10:00
2 * r + 2 * t
e8809c5f7b fix: remove unused import 2026-06-02 22:38:34 +10:00
2 * r + 2 * t
57123a5c8c fix: animate lock cover art 2026-06-02 18:35:54 +10:00
2 * r + 2 * t
9665613ef1 feat: improve lock resource widget 2026-06-01 21:10:33 +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
3a10ff1f67 fix: no end indicator on circular indicator 2026-05-05 23:16:53 +10:00
2 * r + 2 * t
0fad2da786 fix: switch tokens + fast spatial anim 2026-05-05 22:41:05 +10:00
2 * r + 2 * t
53a0a7d977 fix: notif action size + more spacing
Also shape morph for notif actions + icon close/copy
2026-05-05 22:24:26 +10:00
2 * r + 2 * t
4ebd0fcb92 fix: filled sliders 2026-05-05 21:05:42 +10:00
2 * r + 2 * t
d86e0aa0ff chore: remove unused imports 2026-05-05 18:38:51 +10:00
2 * r + 2 * t
0ab1b1e545 fix: force even icon button size + fix vert off 2026-05-05 02:32:41 +10:00
2 * r + 2 * t
6931b41d96 fix: audio popout slider + trigger on movement
Emit interaction signal on every movement instead of just release
2026-05-04 19:49:25 +10:00
2 * r + 2 * t
5f2e772250 fix: proper non-wavy slider
Also not wavy by default
2026-05-04 19:44:24 +10:00
2 * r + 2 * t
f54aca05da fix: double anim on cover art 2026-05-04 17:38:36 +10:00
2 * r + 2 * t
2ceb2a416f feat: improve media slider + actually impl 2026-05-04 04:13:57 +10:00
2 * r + 2 * t
a28316ad5a feat: improve dashboard media tab 2026-05-04 03:47:03 +10:00
2 * r + 2 * t
5e59b5e2a4 feat: improve slider 2026-05-04 00:53:57 +10:00
2 * r + 2 * t
000c9a459b feat: improve loading indicator 2026-05-04 00:53:57 +10:00
2 * r + 2 * t
42446dbb0f fix: shape morph expands by static 24dp
We don't have dp and I'm not adding dp everywhere, so assume 1dp == 1px
Also enable radius morph by default
2026-05-02 22:34:58 +10:00
2 * r + 2 * t
362863dd74 fix: buttons not respecting shapeMorph prop 2026-05-02 21:26:56 +10:00
2 * r + 2 * t
0210f98686 feat: use ButtonRow for dash media controls
Also increase default IconButton font to medium size
2026-05-02 21:23:56 +10:00
2 * r + 2 * t
deb28b44ab feat: add ButtonRow component
SHAPE MORPHHHHHHHHHHHHH
2026-05-02 21:22:06 +10:00
2 * r + 2 * t
17281a66a5 feat: use button base component 2026-05-02 18:56:56 +10:00
2 * r + 2 * t
5c1158018b feat: add button base component 2026-05-02 18:56:56 +10:00
2 * r + 2 * t
a54fe6f487 refactor: move media cover art to separate component 2026-05-02 00:48:33 +10:00
2 * r + 2 * t
91b09253d8 Merge branch 'main' into feat/m3-revamp 2026-04-30 02:13:19 +10:00
2 * r + 2 * t
dea8efcc97 fix: handle hidpi properly 2026-04-30 02:05:28 +10:00
2 * r + 2 * t
f3bdb3b17a fix: file dialog Tokens access on non-item 2026-04-29 20:34:30 +10:00
2 * r + 2 * t
1f7aeec8c4 fix: specify sourceSize as a single prop
So we don't get 2 updates when width/height change
2026-04-27 22:07:57 +10:00
2 * r + 2 * t
411e013ea0 feat: use image provider for caching 2026-04-27 22:07:57 +10:00
2 * r + 2 * t
9cd9d7facd feat: add anim for dash media cover 2026-04-27 18:03:56 +10:00
2 * r + 2 * t
3ae676c040 feat: improve dash perf storage card 2026-04-25 23:04:49 +10:00