plugin: rust-side modules + theme services with serde-typed config

This commit is contained in:
Damocles 2026-05-04 22:58:12 +02:00
parent a86e90e927
commit f34f3f2f4e
95 changed files with 2477 additions and 1011 deletions

View file

@ -6,13 +6,14 @@ import Quickshell.Services.SystemTray
import "." as M
import "../services" as S
import NovaStats as NS
M.BarModule {
id: root
spacing: S.Theme.moduleSpacing + 2
spacing: NS.ThemeService.moduleSpacing + 2
cursorShape: Qt.ArrowCursor
active: S.Modules.tray.enable && _trayRepeater.count > 0
active: NS.ModulesService.trayEnable && _trayRepeater.count > 0
property var _activeMenu: null
@ -28,8 +29,8 @@ M.BarModule {
property bool _hovered: false
property real _pulseOpacity: 1
implicitWidth: S.Theme.fontSize + 4
implicitHeight: S.Theme.fontSize + 4
implicitWidth: NS.ThemeService.fontSize + 4
implicitHeight: NS.ThemeService.fontSize + 4
M.PulseAnimation on _pulseOpacity {
running: iconItem._needsAttention
@ -43,7 +44,7 @@ M.BarModule {
layer.enabled: iconItem._needsAttention || iconItem._hovered
layer.effect: MultiEffect {
shadowEnabled: true
shadowColor: iconItem._needsAttention ? S.Theme.base08 : S.Theme.base05
shadowColor: iconItem._needsAttention ? NS.ThemeService.base08 : NS.ThemeService.base05
shadowBlur: iconItem._needsAttention ? 0.8 : 0.5
shadowVerticalOffset: 0
shadowHorizontalOffset: 0
@ -52,7 +53,7 @@ M.BarModule {
M.ThemedIcon {
anchors.fill: parent
source: iconItem.modelData.icon
tint: iconItem._needsAttention ? S.Theme.base08 : root.accentColor
tint: iconItem._needsAttention ? NS.ThemeService.base08 : root.accentColor
}
}