background: add cookie clock style

This commit is contained in:
end-4
2025-09-22 20:25:46 +02:00
parent b90cf14228
commit 2237ec135c
6 changed files with 524 additions and 278 deletions
@@ -122,10 +122,13 @@ Singleton {
}
property JsonObject background: JsonObject {
property bool fixedClockPosition: false
property real clockX: -500
property real clockY: -500
property bool showClock: true
property JsonObject clock: JsonObject {
property bool fixedPosition: false
property real x: -500
property real y: -500
property bool show: true
property string style: "cookie" // Options: "cookie", "digital"
}
property string wallpaperPath: ""
property string thumbnailPath: ""
property string quote: ""
@@ -0,0 +1,50 @@
import QtQuick
import QtQuick.Shapes
import Quickshell
Item {
id: root
property int sides: 12
property int implicitSize: 100
property real amplitude: implicitSize / 50
property int renderPoints: 360
property color color: "#605790"
property alias strokeWidth: shapePath.strokeWidth
implicitWidth: implicitSize
implicitHeight: implicitSize
Shape {
id: shape
anchors.fill: parent
preferredRendererType: Shape.CurveRenderer
ShapePath {
id: shapePath
strokeWidth: 0
fillColor: root.color
pathHints: ShapePath.PathSolid & ShapePath.PathNonIntersecting
PathPolyline {
property var pointsList: {
var points = []
var cx = shape.width / 2 // center x
var cy = shape.height / 2 // center y
var steps = root.renderPoints
var radius = root.implicitSize / 2 - root.amplitude
for (var i = 0; i <= steps; i++) {
var angle = (i / steps) * 2 * Math.PI
var wave = Math.sin(angle * root.sides + Math.PI/2) * root.amplitude
var x = Math.cos(angle) * (radius + wave) + cx
var y = Math.sin(angle) * (radius + wave) + cy
points.push(Qt.point(x, y))
}
return points
}
path: pointsList
}
}
}
}
@@ -5,7 +5,7 @@ import qs.modules.common
RectangularShadow {
required property var target
anchors.fill: target
radius: target.radius
radius: 20
blur: 0.9 * Appearance.sizes.elevationMargin
offset: Qt.vector2d(0.0, 1.0)
spread: 1