From e96ddbef65ed5c804108ec2ff943163fef38c4fe Mon Sep 17 00:00:00 2001 From: lucy Date: Mon, 23 Mar 2026 11:22:43 +0100 Subject: [PATCH] change font --- Colors.qml | 32 ++-- modules/wallpaper/DesktopClock.qml | 27 +-- modules/wallpaper/PlayerWidget.qml | 269 +++++++++++++++-------------- settings/settings.json | 4 +- 4 files changed, 172 insertions(+), 160 deletions(-) diff --git a/Colors.qml b/Colors.qml index 418d6f6..a1f6f8d 100644 --- a/Colors.qml +++ b/Colors.qml @@ -3,24 +3,24 @@ import QtQuick QtObject { // --- The Backgrounds (Darkest to Lightest) --- - readonly property string base00: "#1d1f21" // Default Background - readonly property string base01: "#282a2e" // Lighter Background (Status bars, panels) - readonly property string base02: "#373b41" // Selection Background - readonly property string base03: "#969896" // Comments, Invisibles, line highlighting + readonly property string base00: "#1d2021" // Default Background + readonly property string base01: "#3c3836" // Lighter Background (Status bars, panels) + readonly property string base02: "#504945" // Selection Background + readonly property string base03: "#665c54" // Comments, Invisibles, line highlighting // --- The Foregrounds (Darkest to Lightest) --- - readonly property string base04: "#b4b7b4" // Dark Foreground (Used for status bars) - readonly property string base05: "#c5c8c6" // Default Foreground, Caret - readonly property string base06: "#e0e0e0" // Light Foreground (Rarely used) - readonly property string base07: "#ffffff" // Lightest Foreground + readonly property string base04: "#bdae93" // Dark Foreground (Used for status bars) + readonly property string base05: "#d5c4a1" // Default Foreground, Caret + readonly property string base06: "#ebdbb2" // Light Foreground (Rarely used) + readonly property string base07: "#fbf1c7" // Lightest Foreground // --- The Accent Colors --- - readonly property string base08: "#cc6666" // Red (Variables, errors) - readonly property string base09: "#de935f" // Orange (Integers, booleans, constants) - readonly property string base0A: "#f0c674" // Yellow (Classes, search text bg, warnings) - readonly property string base0B: "#b5bd68" // Green (Strings, success states) - readonly property string base0C: "#8abeb7" // Cyan (Support, regex, escape chars) - readonly property string base0D: "#81a2be" // Blue (Functions, methods, headings) - readonly property string base0E: "#b294bb" // Purple/Mauve (Keywords, storage, selectors) - readonly property string base0F: "#a3685a" // Brown/Flamingo (Deprecated, embedded tags) + readonly property string base08: "#fb4934" // Red (Variables, errors) + readonly property string base09: "#fe8019" // Orange (Integers, booleans, constants) + readonly property string base0A: "#fabd2f" // Yellow (Classes, search text bg, warnings) + readonly property string base0B: "#b8bb26" // Green (Strings, success states) + readonly property string base0C: "#8ec07c" // Cyan (Support, regex, escape chars) + readonly property string base0D: "#83a598" // Blue (Functions, methods, headings) + readonly property string base0E: "#d3869b" // Purple/Mauve (Keywords, storage, selectors) + readonly property string base0F: "#d65d0e" // Brown/Flamingo (Deprecated, embedded tags) } diff --git a/modules/wallpaper/DesktopClock.qml b/modules/wallpaper/DesktopClock.qml index 527ea39..c6fd1d5 100644 --- a/modules/wallpaper/DesktopClock.qml +++ b/modules/wallpaper/DesktopClock.qml @@ -2,26 +2,28 @@ import Quickshell import Quickshell.Widgets import QtQuick import Qt5Compat.GraphicalEffects +import Quickshell.Io import qs import qs.settings import qs.widgets Item { id: root - implicitWidth: wrapper.width - implicitHeight: wrapper.height + property int gaps: 30 + implicitWidth: wrapper.width + gaps + implicitHeight: wrapper.height + gaps ClippingWrapperRectangle { - layer { - enabled: true - effect: DropShadow { - color: Colors.base00 - horizontalOffset: 2 - verticalOffset: 2 - radius: 8 - samples: 16 - } - } id: wrapper + layer { + enabled: true + effect: DropShadow { + color: "#111111" + horizontalOffset: 8 + verticalOffset: 8 + radius: 8 + samples: 16 + } + } SystemClock { id: clock precision: SystemClock.Minutes @@ -30,6 +32,7 @@ Item { radius: Settings.config.rounding anchors.centerIn: parent margin: 10 + rightMargin: 15 child: Column { id: dataLayout spacing: 0 diff --git a/modules/wallpaper/PlayerWidget.qml b/modules/wallpaper/PlayerWidget.qml index 50e486b..4fc2ba3 100644 --- a/modules/wallpaper/PlayerWidget.qml +++ b/modules/wallpaper/PlayerWidget.qml @@ -11,21 +11,21 @@ import qs.widgets Rectangle { id: root - color: Colors.base01 - radius: Settings.config.rounding + color: Colors.base00 + radius: Settings.config.rounding * 1.5 implicitWidth: 600 implicitHeight: 200 visible: getSpotify() != null - layer { - enabled: true - effect: DropShadow { - color: Colors.base00 - horizontalOffset: 2 - verticalOffset: 2 - radius: 8 - samples: 16 - } - } + layer { + enabled: true + effect: DropShadow { + color: "#111111" + horizontalOffset: 8 + verticalOffset: 8 + radius: 8 + samples: 16 + } + } MouseArea { id: hoverDetect hoverEnabled: true @@ -53,149 +53,158 @@ Rectangle { anchors.margins: 10 margin: 0 anchors.fill: parent - color: "transparent" + color: Colors.base00 RowLayout { id: songLayout - spacing: 0 + spacing: 10 ClippingWrapperRectangle { id: coverRounder - Layout.leftMargin: 10 - radius: 16 + Layout.fillWidth: true + Layout.fillHeight: true + Layout.maximumWidth: songCover.sourceSize.width + radius: Settings.config.rounding Image { id: songCover source: root.art sourceSize { - width: 160 - height: 160 + width: 180 + height: 180 } } } - ColumnLayout { - id: songInfo - Layout.alignment: Qt.AlignVCenter + WrapperRectangle { + color: Colors.base01 Layout.fillWidth: true Layout.fillHeight: true - Layout.leftMargin: 20 - Layout.topMargin: 2 - Item { - id: titleContainer + radius: Settings.config.rounding + margin: 20 + child: ColumnLayout { + id: songInfo + Layout.alignment: Qt.AlignVCenter Layout.fillWidth: true - x: 0 - implicitHeight: title.implicitHeight - clip: true // Keeps the text inside this "window" + Layout.fillHeight: true + Layout.leftMargin: 20 + Layout.topMargin: 2 + Item { + id: titleContainer + Layout.fillWidth: true + x: 0 + implicitHeight: title.implicitHeight + clip: true // Keeps the text inside this "window" + CText { + id: title + Layout.maximumWidth: 300 + text: root.title + font.pixelSize: 30 + SequentialAnimation on x { + id: scrollAnimation + running: hoverDetect.containsMouse && title.width > titleContainer.width + loops: Animation.Infinite + + // Scroll to the end + NumberAnimation { + to: titleContainer.width - title.width + duration: Math.max(2000, (title.width - titleContainer.width) * 30) + easing.type: Easing.InOutQuad + } + + // Scroll back to the start + NumberAnimation { + to: 0 + duration: Math.max(2000, (title.width - titleContainer.width) * 30) + easing.type: Easing.InOutQuad + } + } + } + } CText { - id: title - Layout.maximumWidth: 300 - text: root.title - font.pixelSize: 30 - SequentialAnimation on x { - id: scrollAnimation - running: hoverDetect.containsMouse && title.width > titleContainer.width - loops: Animation.Infinite - - // Scroll to the end - NumberAnimation { - to: titleContainer.width - title.width - duration: Math.max(2000, (title.width - titleContainer.width) * 30) - easing.type: Easing.InOutQuad - } - - // Scroll back to the start - NumberAnimation { - to: 0 - duration: Math.max(2000, (title.width - titleContainer.width) * 30) - easing.type: Easing.InOutQuad - } + id: album + text: root.album + " - " + root.artist + opacity: 0.6 + Layout.maximumWidth: 250 + elide: Text.ElideRight + } + ProgressBar { + id: songProgress + FrameAnimation { + // only emit the signal when the position is actually changing. + running: root.spotify ? root.spotify.playbackState == MprisPlaybackState.Playing || root.visible : false + // emit the positionChanged signal every frame. + onTriggered: root.spotify.positionChanged() } - } - } - CText { - id: album - text: root.album + " - " + root.artist - opacity: 0.6 - Layout.maximumWidth: 250 - elide: Text.ElideRight - } - ProgressBar { - id: songProgress - FrameAnimation { - // only emit the signal when the position is actually changing. - running: root.spotify ? root.spotify.playbackState == MprisPlaybackState.Playing || root.visible : false - // emit the positionChanged signal every frame. - onTriggered: root.spotify.positionChanged() - } - implicitWidth: 200 - implicitHeight: 10 - from: 0 - to: root.spotify != null ? root.spotify.length : 0 - value: root.spotify != null ? root.spotify.position : 0 - background: Rectangle { implicitWidth: 200 - implicitHeight: 6 - color: Colors.base02 - radius: 32 - } - contentItem: Item { - implicitWidth: 200 - implicitHeight: 4 + implicitHeight: 10 + from: 0 + to: root.spotify != null ? root.spotify.length : 0 + value: root.spotify != null ? root.spotify.position : 0 + background: Rectangle { + implicitWidth: 200 + implicitHeight: 6 + color: Colors.base02 + radius: Settings.config.rounding + } + contentItem: Item { + implicitWidth: 200 + implicitHeight: 4 - // Progress indicator for determinate state. - Rectangle { - width: songProgress.visualPosition * parent.width - height: parent.height - radius: 32 - color: Colors.base07 - visible: !songProgress.indeterminate - } - } - } - RowLayout { - id: playerControls - Layout.maximumWidth: 200 - CIcon { - id: previous - text: "\ue045" - Layout.alignment: Qt.AlignLeft - MouseArea { - id: prevHandler - anchors.fill: parent - acceptedButtons: Qt.LeftButton - cursorShape: Qt.PointingHandCursor - onClicked: { - root.spotify.previous(); - title.x = 0; + // Progress indicator for determinate state. + Rectangle { + width: songProgress.visualPosition * parent.width + height: parent.height + radius: Settings.config.rounding + color: Colors.base07 + visible: !songProgress.indeterminate } } } - CIcon { - id: pause - text: root.spotify ? root.spotify.isPlaying ? "\ue034" : "\ue037" : "" - Layout.alignment: Qt.AlignHCenter - MouseArea { - id: pauseHandler - anchors.fill: parent - acceptedButtons: Qt.LeftButton - cursorShape: Qt.PointingHandCursor - onClicked: { - root.spotify.togglePlaying(); - title.x = 0; + RowLayout { + id: playerControls + Layout.maximumWidth: 200 + CIcon { + id: previous + text: "\ue045" + Layout.alignment: Qt.AlignLeft + MouseArea { + id: prevHandler + anchors.fill: parent + acceptedButtons: Qt.LeftButton + cursorShape: Qt.PointingHandCursor + onClicked: { + root.spotify.previous(); + title.x = 0; + } } } - } - CIcon { - id: next - Layout.alignment: Qt.AlignRight - text: "\ue044" - MouseArea { - id: nextHandler - anchors.fill: parent - acceptedButtons: Qt.LeftButton - cursorShape: Qt.PointingHandCursor - onClicked: { - root.spotify.next(); - title.x = 0; + CIcon { + id: pause + text: root.spotify ? root.spotify.isPlaying ? "\ue034" : "\ue037" : "" + Layout.alignment: Qt.AlignHCenter + MouseArea { + id: pauseHandler + anchors.fill: parent + acceptedButtons: Qt.LeftButton + cursorShape: Qt.PointingHandCursor + onClicked: { + root.spotify.togglePlaying(); + title.x = 0; + } + } + } + CIcon { + id: next + Layout.alignment: Qt.AlignRight + text: "\ue044" + MouseArea { + id: nextHandler + anchors.fill: parent + acceptedButtons: Qt.LeftButton + cursorShape: Qt.PointingHandCursor + onClicked: { + root.spotify.next(); + title.x = 0; + } } } } diff --git a/settings/settings.json b/settings/settings.json index 271239f..449d567 100644 --- a/settings/settings.json +++ b/settings/settings.json @@ -2,9 +2,9 @@ "barHeight": 32, "barSpacing": 10, "barmargins": 6, - "currentWall": "/home/lucy/.walls/frierensuff.png", + "currentWall": "/home/lucy/.walls/lance_of_longinus.png", "floating": true, - "font": "Lora", + "font": "Maple Mono", "fontSize": 14, "margins": 10, "rounding": 26,