diff options
| author | Thanh Minh <112760114+tmih06@users.noreply.github.com> | 2026-02-19 18:53:22 +0700 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2026-02-19 22:53:22 +1100 |
| commit | 46174d1934370b2f4a7da43a3dbc0289c14a5a2d (patch) | |
| tree | 2f401649de42e204f9904ed7797a3600e4654b57 /modules/dashboard/Media.qml | |
| parent | feat: add wallpaperEnabled option (#1187) (diff) | |
| download | caelestia-shell-46174d1934370b2f4a7da43a3dbc0289c14a5a2d.tar.gz caelestia-shell-46174d1934370b2f4a7da43a3dbc0289c14a5a2d.tar.bz2 caelestia-shell-46174d1934370b2f4a7da43a3dbc0289c14a5a2d.zip | |
dashboard/performance: new design, configurable, controlcenter support (#975)
* feat(dashboard): add configurable performance resources
- Add config options to show/hide Battery, GPU, CPU, Memory, Storage
- Make dashboard responsive based on number of visible resources
- Scale resource sizes and spacing dynamically for 3, 4, or 5 items
- Battery shows charge status and time remaining/to full
- Each resource can be individually toggled via config
* fix(dashboard): add dynamic right margin for last visible resource
Ensures the rightmost resource always has proper margin to prevent
content from being cut off at the edge
* fix(performance): comment out duplicated value2 properties for memory and storage resources
* controlcenter: add settings for dashboard
* feat: handle readonly properties and re-usable codes
* Feature/performance tab rework (#5)
* dashboard/performance: rework tab with card-based grid layout
- Replace circular arc meters with card-based grid layout
- CPU/GPU cards show hardware name, usage and temperature with horizontal bars
- Memory card with 3/4 arc indicator and used/total at bottom
- Storage card shows physical disks from lsblk with aggregated partition usage
- Add cpuName, gpuName, cpuFreq, cpuMaxFreq, disks properties to SystemUsage
- Clean hardware names (remove Intel/AMD/NVIDIA prefixes, TM/R symbols)
* dashboard/performance: new hero card design
* dashboard/performance: update storage indicators to be reponsive to the physical disks count
* dashboard/performance: fix the overlay bounding issue
* dashboard/perfromance: refactor code
* dashboard/performance: add battery gauge
* dashboard/performance: correct battery icon
* dashboard/performance: configurable battery
* dashboard/performance: update layout
* dashboard/performance: move the "Usage" text on top and smaller the font size
* dashboard/performance: add a lot of configurations
* dashboard/performance: add network metrics
* fix: issue with hot reload
* chore: update default vaule for mainValueSpacing to 0
* chore: group settings into collapasible sections
* chore: making GPU & Battery toggle not showing if not found
* chore: fix network widget spacing & text
* chore: remove old disk bars configs, add update interval
* chore: remove old & unused value, functions
* chore: network graph update smoothly when data points change
* chore: refactor settings
- de-flood settings, most of the font & size setting now follow the
global Appearance config
- Most of sliders are not needed anymore, only keep the update interval
slider
- clean up
* chore: remove readonly properties from the controlcenter/dashboard.
* chore: minor fix
* fix: fix warning about onPercChange()
* fix: network metrics negative number
* fix: add minimal height & width, placeholder for none toggled
* fix: network graph move smoothly (#6)
* fix: network graph move smoothly
* clean up
* fix: graph animation even more smooth
* fix: padding issue
* chore: network icons short description
* fix
---------
Co-authored-by: 2 * r + 2 * t <61896496+soramanew@users.noreply.github.com>
Diffstat (limited to 'modules/dashboard/Media.qml')
| -rw-r--r-- | modules/dashboard/Media.qml | 24 |
1 files changed, 12 insertions, 12 deletions
diff --git a/modules/dashboard/Media.qml b/modules/dashboard/Media.qml index ce5db35..722bc93 100644 --- a/modules/dashboard/Media.qml +++ b/modules/dashboard/Media.qml @@ -1,14 +1,12 @@ pragma ComponentBehavior: Bound import qs.components -import qs.components.effects import qs.components.controls import qs.services import qs.utils import qs.config import Caelestia.Services import Quickshell -import Quickshell.Widgets import Quickshell.Services.Mpris import QtQuick import QtQuick.Layouts @@ -142,7 +140,7 @@ Item { anchors.fill: parent - source: Players.active?.trackArtUrl ?? "" + source: Players.active?.trackArtUrl ?? "" // qmllint disable incompatible-type asynchronous: true fillMode: Image.PreserveAspectCrop sourceSize.width: width @@ -324,7 +322,7 @@ Item { disabled: !Players.list.length active: menuItems.find(m => m.modelData === Players.active) ?? menuItems[0] ?? null - menu.onItemSelected: item => Players.manualActive = item.modelData + menu.onItemSelected: item => Players.manualActive = (item as PlayerItem).modelData menuItems: playerList.instances fallbackIcon: "music_off" @@ -341,13 +339,7 @@ Item { model: Players.list - MenuItem { - required property MprisPlayer modelData - - icon: modelData === Players.active ? "check" : "" - text: Players.getIdentity(modelData) - activeIcon: "animated_images" - } + PlayerItem {} } } @@ -380,13 +372,21 @@ Item { height: visualiser.height * 0.75 playing: Players.active?.isPlaying ?? false - speed: Audio.beatTracker.bpm / Appearance.anim.mediaGifSpeedAdjustment + speed: Audio.beatTracker.bpm / Appearance.anim.mediaGifSpeedAdjustment // qmllint disable unresolved-type source: Paths.absolutePath(Config.paths.mediaGif) asynchronous: true fillMode: AnimatedImage.PreserveAspectFit } } + component PlayerItem: MenuItem { + required property MprisPlayer modelData + + icon: modelData === Players.active ? "check" : "" + text: Players.getIdentity(modelData) + activeIcon: "animated_images" + } + component PlayerControl: IconButton { Layout.preferredWidth: implicitWidth + (stateLayer.pressed ? Appearance.padding.large : internalChecked ? Appearance.padding.smaller : 0) radius: stateLayer.pressed ? Appearance.rounding.small / 2 : internalChecked ? Appearance.rounding.small : implicitHeight / 2 |