From 533b9c01f53b0e1ec7112057d746013ca4147801 Mon Sep 17 00:00:00 2001 From: vaguesyntax Date: Fri, 28 Nov 2025 23:10:33 +0300 Subject: [PATCH 01/16] digital clock: several improvements --- .../quickshell/ii/modules/common/Config.qml | 5 + .../modules/common/widgets/ConfigSlider.qml | 42 +++++ .../modules/common/widgets/StyledSlider.qml | 3 +- .../ii/modules/common/widgets/StyledText.qml | 2 +- .../ii/background/widgets/clock/ClockText.qml | 18 +++ .../background/widgets/clock/ClockWidget.qml | 43 +----- .../background/widgets/clock/DigitalClock.qml | 74 +++++++++ .../ii/modules/settings/BackgroundConfig.qml | 146 ++++++++++++------ 8 files changed, 246 insertions(+), 87 deletions(-) create mode 100644 dots/.config/quickshell/ii/modules/common/widgets/ConfigSlider.qml create mode 100644 dots/.config/quickshell/ii/modules/ii/background/widgets/clock/ClockText.qml create mode 100644 dots/.config/quickshell/ii/modules/ii/background/widgets/clock/DigitalClock.qml diff --git a/dots/.config/quickshell/ii/modules/common/Config.qml b/dots/.config/quickshell/ii/modules/common/Config.qml index 1716aa2ef..eb62d0955 100644 --- a/dots/.config/quickshell/ii/modules/common/Config.qml +++ b/dots/.config/quickshell/ii/modules/common/Config.qml @@ -186,7 +186,12 @@ Singleton { property bool useSineCookie: false } property JsonObject digital: JsonObject { + property bool adaptiveAlignment: true + property bool showDate: true property bool animateChange: true + property bool vertical: false + property real weight: 350 + property real size: 90 } property JsonObject quote: JsonObject { property bool enable: false diff --git a/dots/.config/quickshell/ii/modules/common/widgets/ConfigSlider.qml b/dots/.config/quickshell/ii/modules/common/widgets/ConfigSlider.qml new file mode 100644 index 000000000..b53a5f7c0 --- /dev/null +++ b/dots/.config/quickshell/ii/modules/common/widgets/ConfigSlider.qml @@ -0,0 +1,42 @@ +import qs.modules.common.widgets +import qs.modules.common +import QtQuick +import QtQuick.Layouts + +RowLayout { + id: root + spacing: 10 + Layout.leftMargin: 8 + Layout.rightMargin: 8 + + property string text: "" + property string buttonIcon: "" + property alias value: slider.value + property bool usePercentTooltip: true + property real from: slider.from + property real to: slider.to + + RowLayout { + spacing: 10 + OptionalMaterialSymbol { + id: iconWidget + icon: root.buttonIcon + iconSize: Appearance.font.pixelSize.larger + } + StyledText { + id: labelWidget + text: root.text + color: Appearance.colors.colOnSecondaryContainer + } + } + + StyledSlider { + id: slider + Layout.fillWidth: true + configuration: StyledSlider.Configuration.XS + usePercentTooltip: root.usePercentTooltip + value: root.value + from: root.from + to: root.to + } +} \ No newline at end of file diff --git a/dots/.config/quickshell/ii/modules/common/widgets/StyledSlider.qml b/dots/.config/quickshell/ii/modules/common/widgets/StyledSlider.qml index 98b8eebf3..971a1eb10 100644 --- a/dots/.config/quickshell/ii/modules/common/widgets/StyledSlider.qml +++ b/dots/.config/quickshell/ii/modules/common/widgets/StyledSlider.qml @@ -46,7 +46,8 @@ Slider { property real handleWidth: root.pressed ? handlePressedWidth : handleDefaultWidth property real handleMargins: 4 property real trackDotSize: 3 - property string tooltipContent: `${Math.round(value * 100)}%` + property bool usePercentTooltip: true + property string tooltipContent: usePercentTooltip ? `${Math.round(((value - from) / (to - from)) * 100)}%` : `${Math.round(value)}` property bool wavy: configuration === StyledSlider.Configuration.Wavy // If true, the progress bar will have a wavy fill effect property bool animateWave: true property real waveAmplitudeMultiplier: wavy ? 0.5 : 0 diff --git a/dots/.config/quickshell/ii/modules/common/widgets/StyledText.qml b/dots/.config/quickshell/ii/modules/common/widgets/StyledText.qml index 14f6a9c23..f705fc2a4 100644 --- a/dots/.config/quickshell/ii/modules/common/widgets/StyledText.qml +++ b/dots/.config/quickshell/ii/modules/common/widgets/StyledText.qml @@ -16,7 +16,7 @@ Text { hintingPreference: Font.PreferDefaultHinting family: defaultFont pixelSize: Appearance?.font.pixelSize.small ?? 15 - variableAxes: shouldUseNumberFont ? ({}) : Appearance.font.variableAxes.main + //variableAxes: shouldUseNumberFont ? ({}) : Appearance.font.variableAxes.main } color: Appearance?.m3colors.m3onBackground ?? "black" linkColor: Appearance?.m3colors.m3primary diff --git a/dots/.config/quickshell/ii/modules/ii/background/widgets/clock/ClockText.qml b/dots/.config/quickshell/ii/modules/ii/background/widgets/clock/ClockText.qml new file mode 100644 index 000000000..b3f44fbd8 --- /dev/null +++ b/dots/.config/quickshell/ii/modules/ii/background/widgets/clock/ClockText.qml @@ -0,0 +1,18 @@ +import qs.modules.common +import qs.modules.common.widgets +import QtQuick +import QtQuick.Layouts + +StyledText { + Layout.fillWidth: true + horizontalAlignment: root.textHorizontalAlignment + font { + family: Appearance.font.family.expressive + pixelSize: 20 + weight: 350 + } + color: root.colText + style: Text.Raised + styleColor: Appearance.colors.colShadow + animateChange: Config.options.background.widgets.clock.digital.animateChange +} \ No newline at end of file diff --git a/dots/.config/quickshell/ii/modules/ii/background/widgets/clock/ClockWidget.qml b/dots/.config/quickshell/ii/modules/ii/background/widgets/clock/ClockWidget.qml index 97e1e468a..82556a3ed 100644 --- a/dots/.config/quickshell/ii/modules/ii/background/widgets/clock/ClockWidget.qml +++ b/dots/.config/quickshell/ii/modules/ii/background/widgets/clock/ClockWidget.qml @@ -26,7 +26,7 @@ AbstractBackgroundWidget { visibleWhenLocked: true property var textHorizontalAlignment: { - if (root.forceCenter) + if (!Config.options.background.widgets.clock.digital.adaptiveAlignment || root.forceCenter) return Text.AlignHCenter; if (root.x < root.scaledScreenWidth / 3) return Text.AlignLeft; @@ -63,33 +63,7 @@ AbstractBackgroundWidget { anchors.horizontalCenter: parent.horizontalCenter shown: root.clockStyle === "digital" && (root.shouldShow) fade: false - sourceComponent: ColumnLayout { - id: clockColumn - spacing: 6 - - ClockText { - font.pixelSize: 90 - text: DateTime.time - } - ClockText { - Layout.topMargin: -5 - text: DateTime.longDate - } - StyledText { - // Somehow gets fucked up if made a ClockText??? - visible: Config.options.background.widgets.clock.quote.enable && Config.options.background.widgets.clock.quote.text.length > 0 - Layout.fillWidth: true - horizontalAlignment: root.textHorizontalAlignment - font { - pixelSize: Appearance.font.pixelSize.normal - weight: 350 - } - color: root.colText - style: Text.Raised - styleColor: Appearance.colors.colShadow - text: Config.options.background.widgets.clock.quote.text - } - } + sourceComponent: DigitalClock {} } StatusRow { anchors.horizontalCenter: parent.horizontalCenter @@ -154,19 +128,6 @@ AbstractBackgroundWidget { } } - component ClockText: StyledText { - Layout.fillWidth: true - horizontalAlignment: root.textHorizontalAlignment - font { - family: Appearance.font.family.expressive - pixelSize: 20 - weight: Font.DemiBold - } - color: root.colText - style: Text.Raised - styleColor: Appearance.colors.colShadow - animateChange: Config.options.background.widgets.clock.digital.animateChange - } component ClockStatusText: Row { id: statusTextRow property alias statusIcon: statusIconWidget.text diff --git a/dots/.config/quickshell/ii/modules/ii/background/widgets/clock/DigitalClock.qml b/dots/.config/quickshell/ii/modules/ii/background/widgets/clock/DigitalClock.qml new file mode 100644 index 000000000..1d4e92f21 --- /dev/null +++ b/dots/.config/quickshell/ii/modules/ii/background/widgets/clock/DigitalClock.qml @@ -0,0 +1,74 @@ +pragma ComponentBehavior: Bound + +//TODO: fix imports to only what is necessary +import qs.services +import qs.modules.common +import qs.modules.common.widgets +import qs.modules.common.functions +import QtQuick +import QtQuick.Layouts +import Qt5Compat.GraphicalEffects +import Quickshell.Io + +ColumnLayout { + id: clockColumn + spacing: 6 + + property bool isVertical: Config.options.background.widgets.clock.digital.vertical + + Item { + Layout.fillWidth: true + implicitHeight: timeTextTop.font.pixelSize + (clockColumn.isVertical ? timeTextBottom.font.pixelSize + 10 : 0) + implicitWidth: Math.max(timeTextTop.paintedWidth, timeTextBottom.paintedWidth) + + ClockText { + id: timeTextTop + text: clockColumn.isVertical ? DateTime.time.substring(0, 2) : DateTime.time + anchors { + top: parent.top + horizontalCenter: parent.horizontalCenter + } + font { + pixelSize: Config.options.background.widgets.clock.digital.size + weight: Config.options.background.widgets.clock.digital.weight + } + } + ClockText { + id: timeTextBottom + text: clockColumn.isVertical ? DateTime.time.substring(3, 5) : "" + visible: clockColumn.isVertical + + anchors { + bottom: parent.bottom + horizontalCenter: parent.horizontalCenter + } + font { + pixelSize: Config.options.background.widgets.clock.digital.size + weight: Config.options.background.widgets.clock.digital.weight + } + } + } + + ClockText { + visible: Config.options.background.widgets.clock.digital.showDate + Layout.topMargin: clockColumn.isVertical ? -10 : 0 + text: DateTime.longDate + } + StyledText { + // Somehow gets fucked up if made a ClockText??? + visible: Config.options.background.widgets.clock.quote.enable && Config.options.background.widgets.clock.quote.text.length > 0 + Layout.fillWidth: true + horizontalAlignment: root.textHorizontalAlignment + font { + pixelSize: Appearance.font.pixelSize.normal + weight: 350 + } + color: root.colText + style: Text.Raised + styleColor: Appearance.colors.colShadow + text: Config.options.background.widgets.clock.quote.text + } +} + + + \ No newline at end of file diff --git a/dots/.config/quickshell/ii/modules/settings/BackgroundConfig.qml b/dots/.config/quickshell/ii/modules/settings/BackgroundConfig.qml index 66630cc24..18c30853e 100644 --- a/dots/.config/quickshell/ii/modules/settings/BackgroundConfig.qml +++ b/dots/.config/quickshell/ii/modules/settings/BackgroundConfig.qml @@ -120,48 +120,52 @@ ContentPage { } } - ContentSubsection { - visible: !Config.options.background.widgets.clock.showOnlyWhenLocked - title: Translation.tr("Clock style") - ConfigSelectionArray { - currentValue: Config.options.background.widgets.clock.style - onSelected: newValue => { - Config.options.background.widgets.clock.style = newValue; - } - options: [ - { - displayName: Translation.tr("Digital"), - icon: "timer_10", - value: "digital" - }, - { - displayName: Translation.tr("Cookie"), - icon: "cookie", - value: "cookie" + ConfigRow { + ContentSubsection { + visible: !Config.options.background.widgets.clock.showOnlyWhenLocked + title: Translation.tr("Clock style") + Layout.fillWidth: true + ConfigSelectionArray { + currentValue: Config.options.background.widgets.clock.style + onSelected: newValue => { + Config.options.background.widgets.clock.style = newValue; } - ] + options: [ + { + displayName: Translation.tr("Digital"), + icon: "timer_10", + value: "digital" + }, + { + displayName: Translation.tr("Cookie"), + icon: "cookie", + value: "cookie" + } + ] + } } - } - ContentSubsection { - title: Translation.tr("Clock style (locked)") - ConfigSelectionArray { - currentValue: Config.options.background.widgets.clock.styleLocked - onSelected: newValue => { - Config.options.background.widgets.clock.styleLocked = newValue; - } - options: [ - { - displayName: Translation.tr("Digital"), - icon: "timer_10", - value: "digital" - }, - { - displayName: Translation.tr("Cookie"), - icon: "cookie", - value: "cookie" + ContentSubsection { + title: Translation.tr("Clock style (locked)") + Layout.fillWidth: false + ConfigSelectionArray { + currentValue: Config.options.background.widgets.clock.styleLocked + onSelected: newValue => { + Config.options.background.widgets.clock.styleLocked = newValue; } - ] + options: [ + { + displayName: Translation.tr("Digital"), + icon: "timer_10", + value: "digital" + }, + { + displayName: Translation.tr("Cookie"), + icon: "cookie", + value: "cookie" + } + ] + } } } @@ -169,12 +173,66 @@ ContentPage { visible: settingsClock.digitalPresent title: Translation.tr("Digital clock settings") - ConfigSwitch { - buttonIcon: "animation" - text: Translation.tr("Animate time change") - checked: Config.options.background.widgets.clock.digital.animateChange - onCheckedChanged: { - Config.options.background.widgets.clock.digital.animateChange = checked; + ConfigRow { + ConfigSwitch { + buttonIcon: "vertical_distribute" + text: Translation.tr("Vertical") + checked: Config.options.background.widgets.clock.digital.vertical + onCheckedChanged: { + Config.options.background.widgets.clock.digital.vertical = checked; + } + } + ConfigSwitch { + buttonIcon: "animation" + text: Translation.tr("Animate time change") + checked: Config.options.background.widgets.clock.digital.animateChange + onCheckedChanged: { + Config.options.background.widgets.clock.digital.animateChange = checked; + } + } + } + + ConfigRow { + ConfigSwitch { + buttonIcon: "date_range" + text: Translation.tr("Show date") + checked: Config.options.background.widgets.clock.digital.showDate + onCheckedChanged: { + Config.options.background.widgets.clock.digital.showDate = checked; + } + } + ConfigSwitch { + buttonIcon: "activity_zone" + text: Translation.tr("Use adaptive alignment") + checked: Config.options.background.widgets.clock.digital.adaptiveAlignment + onCheckedChanged: { + Config.options.background.widgets.clock.digital.adaptiveAlignment = checked; + } + StyledToolTip { + text: Translation.tr("Aligns the date and quote to left, center or right depending on its position on the screen.") + } + } + } + ConfigSlider { + text: Translation.tr("Font weight") + value: Config.options.background.widgets.clock.digital.weight + usePercentTooltip: false + buttonIcon: "format_bold" + from: 1 + to: 1000 + onValueChanged: { + Config.options.background.widgets.clock.digital.weight = value; + } + } + ConfigSlider { + text: Translation.tr("Font Size") + value: Config.options.background.widgets.clock.digital.size + usePercentTooltip: false + buttonIcon: "format_size" + from: 70 + to: 150 + onValueChanged: { + Config.options.background.widgets.clock.digital.size = value; } } } From fd209851d94378205c65e11d54db8a86d8169195 Mon Sep 17 00:00:00 2001 From: vaguesyntax Date: Fri, 28 Nov 2025 23:21:58 +0300 Subject: [PATCH 02/16] digital clock: use clocktext instead of styledtext --- .../ii/modules/common/widgets/StyledText.qml | 2 +- .../ii/background/widgets/clock/DigitalClock.qml | 14 +++----------- 2 files changed, 4 insertions(+), 12 deletions(-) diff --git a/dots/.config/quickshell/ii/modules/common/widgets/StyledText.qml b/dots/.config/quickshell/ii/modules/common/widgets/StyledText.qml index f705fc2a4..db6df827c 100644 --- a/dots/.config/quickshell/ii/modules/common/widgets/StyledText.qml +++ b/dots/.config/quickshell/ii/modules/common/widgets/StyledText.qml @@ -16,7 +16,7 @@ Text { hintingPreference: Font.PreferDefaultHinting family: defaultFont pixelSize: Appearance?.font.pixelSize.small ?? 15 - //variableAxes: shouldUseNumberFont ? ({}) : Appearance.font.variableAxes.main + //variableAxes: shouldUseNumberFont ? ({}) : Appearance.font.variableAxes.main // Disabled for now because it causes some fonts to not display their weight properly } color: Appearance?.m3colors.m3onBackground ?? "black" linkColor: Appearance?.m3colors.m3primary diff --git a/dots/.config/quickshell/ii/modules/ii/background/widgets/clock/DigitalClock.qml b/dots/.config/quickshell/ii/modules/ii/background/widgets/clock/DigitalClock.qml index 1d4e92f21..ac94d254f 100644 --- a/dots/.config/quickshell/ii/modules/ii/background/widgets/clock/DigitalClock.qml +++ b/dots/.config/quickshell/ii/modules/ii/background/widgets/clock/DigitalClock.qml @@ -54,19 +54,11 @@ ColumnLayout { Layout.topMargin: clockColumn.isVertical ? -10 : 0 text: DateTime.longDate } - StyledText { - // Somehow gets fucked up if made a ClockText??? + ClockText { visible: Config.options.background.widgets.clock.quote.enable && Config.options.background.widgets.clock.quote.text.length > 0 - Layout.fillWidth: true - horizontalAlignment: root.textHorizontalAlignment - font { - pixelSize: Appearance.font.pixelSize.normal - weight: 350 - } - color: root.colText - style: Text.Raised - styleColor: Appearance.colors.colShadow + font.pixelSize: Appearance.font.pixelSize.normal text: Config.options.background.widgets.clock.quote.text + animateChange: false } } From 21f2a9c65d228a457d3038ce526040f24c7de279 Mon Sep 17 00:00:00 2001 From: vaguesyntax Date: Fri, 28 Nov 2025 23:48:06 +0300 Subject: [PATCH 03/16] fix: find a better solution on variableAxes --- .../.config/quickshell/ii/modules/common/widgets/StyledText.qml | 2 +- .../ii/modules/ii/background/widgets/clock/ClockText.qml | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/dots/.config/quickshell/ii/modules/common/widgets/StyledText.qml b/dots/.config/quickshell/ii/modules/common/widgets/StyledText.qml index db6df827c..14f6a9c23 100644 --- a/dots/.config/quickshell/ii/modules/common/widgets/StyledText.qml +++ b/dots/.config/quickshell/ii/modules/common/widgets/StyledText.qml @@ -16,7 +16,7 @@ Text { hintingPreference: Font.PreferDefaultHinting family: defaultFont pixelSize: Appearance?.font.pixelSize.small ?? 15 - //variableAxes: shouldUseNumberFont ? ({}) : Appearance.font.variableAxes.main // Disabled for now because it causes some fonts to not display their weight properly + variableAxes: shouldUseNumberFont ? ({}) : Appearance.font.variableAxes.main } color: Appearance?.m3colors.m3onBackground ?? "black" linkColor: Appearance?.m3colors.m3primary diff --git a/dots/.config/quickshell/ii/modules/ii/background/widgets/clock/ClockText.qml b/dots/.config/quickshell/ii/modules/ii/background/widgets/clock/ClockText.qml index b3f44fbd8..d16103ed7 100644 --- a/dots/.config/quickshell/ii/modules/ii/background/widgets/clock/ClockText.qml +++ b/dots/.config/quickshell/ii/modules/ii/background/widgets/clock/ClockText.qml @@ -10,6 +10,7 @@ StyledText { family: Appearance.font.family.expressive pixelSize: 20 weight: 350 + variableAxes: ({}) } color: root.colText style: Text.Raised From c11814b1f8a9a5bd54fdfdd360628386c6c6c1f7 Mon Sep 17 00:00:00 2001 From: vaguesyntax Date: Sat, 29 Nov 2025 14:35:52 +0300 Subject: [PATCH 04/16] fix: weight property not properly applied (styleName conflict) --- .../ii/modules/ii/background/widgets/clock/ClockText.qml | 1 + 1 file changed, 1 insertion(+) diff --git a/dots/.config/quickshell/ii/modules/ii/background/widgets/clock/ClockText.qml b/dots/.config/quickshell/ii/modules/ii/background/widgets/clock/ClockText.qml index d16103ed7..39267b83d 100644 --- a/dots/.config/quickshell/ii/modules/ii/background/widgets/clock/ClockText.qml +++ b/dots/.config/quickshell/ii/modules/ii/background/widgets/clock/ClockText.qml @@ -11,6 +11,7 @@ StyledText { pixelSize: 20 weight: 350 variableAxes: ({}) + styleName: "" } color: root.colText style: Text.Raised From 889298287423dc3469d967142c02b3968b2694c7 Mon Sep 17 00:00:00 2001 From: vaguesyntax Date: Sat, 29 Nov 2025 14:57:38 +0300 Subject: [PATCH 05/16] feat: refactor font settings and add width config option --- .../quickshell/ii/modules/common/Config.qml | 7 +++++-- .../background/widgets/clock/DigitalClock.qml | 14 ++++++++++---- .../ii/modules/settings/BackgroundConfig.qml | 19 +++++++++++++++---- 3 files changed, 30 insertions(+), 10 deletions(-) diff --git a/dots/.config/quickshell/ii/modules/common/Config.qml b/dots/.config/quickshell/ii/modules/common/Config.qml index eb62d0955..89169fbdf 100644 --- a/dots/.config/quickshell/ii/modules/common/Config.qml +++ b/dots/.config/quickshell/ii/modules/common/Config.qml @@ -190,8 +190,11 @@ Singleton { property bool showDate: true property bool animateChange: true property bool vertical: false - property real weight: 350 - property real size: 90 + property JsonObject font: JsonObject { + property real weight: 350 + property real width: 100 + property real size: 90 + } } property JsonObject quote: JsonObject { property bool enable: false diff --git a/dots/.config/quickshell/ii/modules/ii/background/widgets/clock/DigitalClock.qml b/dots/.config/quickshell/ii/modules/ii/background/widgets/clock/DigitalClock.qml index ac94d254f..90a65a0dd 100644 --- a/dots/.config/quickshell/ii/modules/ii/background/widgets/clock/DigitalClock.qml +++ b/dots/.config/quickshell/ii/modules/ii/background/widgets/clock/DigitalClock.qml @@ -29,8 +29,11 @@ ColumnLayout { horizontalCenter: parent.horizontalCenter } font { - pixelSize: Config.options.background.widgets.clock.digital.size - weight: Config.options.background.widgets.clock.digital.weight + pixelSize: Config.options.background.widgets.clock.digital.font.size + weight: Config.options.background.widgets.clock.digital.font.weight + variableAxes: ({ + "wdth": Config.options.background.widgets.clock.digital.font.width, + }) } } ClockText { @@ -43,8 +46,11 @@ ColumnLayout { horizontalCenter: parent.horizontalCenter } font { - pixelSize: Config.options.background.widgets.clock.digital.size - weight: Config.options.background.widgets.clock.digital.weight + pixelSize: Config.options.background.widgets.clock.digital.font.size + weight: Config.options.background.widgets.clock.digital.font.weight + variableAxes: ({ + "wdth": Config.options.background.widgets.clock.digital.font.width, + }) } } } diff --git a/dots/.config/quickshell/ii/modules/settings/BackgroundConfig.qml b/dots/.config/quickshell/ii/modules/settings/BackgroundConfig.qml index 18c30853e..bb08ccb0c 100644 --- a/dots/.config/quickshell/ii/modules/settings/BackgroundConfig.qml +++ b/dots/.config/quickshell/ii/modules/settings/BackgroundConfig.qml @@ -215,24 +215,35 @@ ContentPage { } ConfigSlider { text: Translation.tr("Font weight") - value: Config.options.background.widgets.clock.digital.weight + value: Config.options.background.widgets.clock.digital.font.weight usePercentTooltip: false buttonIcon: "format_bold" from: 1 to: 1000 onValueChanged: { - Config.options.background.widgets.clock.digital.weight = value; + Config.options.background.widgets.clock.digital.font.weight = value; + } + } + ConfigSlider { + text: Translation.tr("Font Width") + value: Config.options.background.widgets.clock.digital.font.width + usePercentTooltip: false + buttonIcon: "fit_width" + from: 25 + to: 125 + onValueChanged: { + Config.options.background.widgets.clock.digital.font.width = value; } } ConfigSlider { text: Translation.tr("Font Size") - value: Config.options.background.widgets.clock.digital.size + value: Config.options.background.widgets.clock.digital.font.size usePercentTooltip: false buttonIcon: "format_size" from: 70 to: 150 onValueChanged: { - Config.options.background.widgets.clock.digital.size = value; + Config.options.background.widgets.clock.digital.font.size = value; } } } From f5fea85334b738186d75bd680b94e44f9ec6439e Mon Sep 17 00:00:00 2001 From: vaguesyntax Date: Sat, 29 Nov 2025 15:05:07 +0300 Subject: [PATCH 06/16] fix: capital letters --- .../quickshell/ii/modules/settings/BackgroundConfig.qml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/dots/.config/quickshell/ii/modules/settings/BackgroundConfig.qml b/dots/.config/quickshell/ii/modules/settings/BackgroundConfig.qml index bb08ccb0c..eddc06fa9 100644 --- a/dots/.config/quickshell/ii/modules/settings/BackgroundConfig.qml +++ b/dots/.config/quickshell/ii/modules/settings/BackgroundConfig.qml @@ -225,7 +225,7 @@ ContentPage { } } ConfigSlider { - text: Translation.tr("Font Width") + text: Translation.tr("Font width") value: Config.options.background.widgets.clock.digital.font.width usePercentTooltip: false buttonIcon: "fit_width" @@ -236,7 +236,7 @@ ContentPage { } } ConfigSlider { - text: Translation.tr("Font Size") + text: Translation.tr("Font size") value: Config.options.background.widgets.clock.digital.font.size usePercentTooltip: false buttonIcon: "format_size" From 15481c646a98ba3d9b634d429a9a90d826ecb25f Mon Sep 17 00:00:00 2001 From: vaguesyntax Date: Thu, 4 Dec 2025 23:07:03 +0300 Subject: [PATCH 07/16] digital clock: add roundness slider and fix settings layout --- .../quickshell/ii/modules/common/Config.qml | 1 + .../modules/common/widgets/ConfigSlider.qml | 9 +++- .../background/widgets/clock/DigitalClock.qml | 2 + .../ii/modules/settings/BackgroundConfig.qml | 45 ++++++++++++++----- 4 files changed, 44 insertions(+), 13 deletions(-) diff --git a/dots/.config/quickshell/ii/modules/common/Config.qml b/dots/.config/quickshell/ii/modules/common/Config.qml index 89169fbdf..3518b3dbd 100644 --- a/dots/.config/quickshell/ii/modules/common/Config.qml +++ b/dots/.config/quickshell/ii/modules/common/Config.qml @@ -194,6 +194,7 @@ Singleton { property real weight: 350 property real width: 100 property real size: 90 + property real roundness: 0 } } property JsonObject quote: JsonObject { diff --git a/dots/.config/quickshell/ii/modules/common/widgets/ConfigSlider.qml b/dots/.config/quickshell/ii/modules/common/widgets/ConfigSlider.qml index b53a5f7c0..edc63191a 100644 --- a/dots/.config/quickshell/ii/modules/common/widgets/ConfigSlider.qml +++ b/dots/.config/quickshell/ii/modules/common/widgets/ConfigSlider.qml @@ -2,6 +2,7 @@ import qs.modules.common.widgets import qs.modules.common import QtQuick import QtQuick.Layouts +import qs.services RowLayout { id: root @@ -12,12 +13,16 @@ RowLayout { property string text: "" property string buttonIcon: "" property alias value: slider.value + property alias stopIndicatorValues: slider.stopIndicatorValues property bool usePercentTooltip: true property real from: slider.from property real to: slider.to - + property real textWidth: 120 + RowLayout { + id: row spacing: 10 + OptionalMaterialSymbol { id: iconWidget icon: root.buttonIcon @@ -25,6 +30,7 @@ RowLayout { } StyledText { id: labelWidget + Layout.preferredWidth: root.textWidth text: root.text color: Appearance.colors.colOnSecondaryContainer } @@ -32,7 +38,6 @@ RowLayout { StyledSlider { id: slider - Layout.fillWidth: true configuration: StyledSlider.Configuration.XS usePercentTooltip: root.usePercentTooltip value: root.value diff --git a/dots/.config/quickshell/ii/modules/ii/background/widgets/clock/DigitalClock.qml b/dots/.config/quickshell/ii/modules/ii/background/widgets/clock/DigitalClock.qml index 90a65a0dd..233cad7b1 100644 --- a/dots/.config/quickshell/ii/modules/ii/background/widgets/clock/DigitalClock.qml +++ b/dots/.config/quickshell/ii/modules/ii/background/widgets/clock/DigitalClock.qml @@ -33,6 +33,7 @@ ColumnLayout { weight: Config.options.background.widgets.clock.digital.font.weight variableAxes: ({ "wdth": Config.options.background.widgets.clock.digital.font.width, + "ROND": Config.options.background.widgets.clock.digital.font.roundness }) } } @@ -50,6 +51,7 @@ ColumnLayout { weight: Config.options.background.widgets.clock.digital.font.weight variableAxes: ({ "wdth": Config.options.background.widgets.clock.digital.font.width, + "ROND": Config.options.background.widgets.clock.digital.font.roundness }) } } diff --git a/dots/.config/quickshell/ii/modules/settings/BackgroundConfig.qml b/dots/.config/quickshell/ii/modules/settings/BackgroundConfig.qml index eddc06fa9..697c40274 100644 --- a/dots/.config/quickshell/ii/modules/settings/BackgroundConfig.qml +++ b/dots/.config/quickshell/ii/modules/settings/BackgroundConfig.qml @@ -172,8 +172,10 @@ ContentPage { ContentSubsection { visible: settingsClock.digitalPresent title: Translation.tr("Digital clock settings") + tooltip: Translation.tr("Font width and roundness settings are only available for some fonts like 'Google Sans Flex'") ConfigRow { + uniform: true ConfigSwitch { buttonIcon: "vertical_distribute" text: Translation.tr("Vertical") @@ -193,6 +195,9 @@ ContentPage { } ConfigRow { + uniform: true + + ConfigSwitch { buttonIcon: "date_range" text: Translation.tr("Show date") @@ -213,6 +218,8 @@ ContentPage { } } } + + ConfigSlider { text: Translation.tr("Font weight") value: Config.options.background.widgets.clock.digital.font.weight @@ -220,21 +227,12 @@ ContentPage { buttonIcon: "format_bold" from: 1 to: 1000 + stopIndicatorValues: [350] onValueChanged: { Config.options.background.widgets.clock.digital.font.weight = value; } } - ConfigSlider { - text: Translation.tr("Font width") - value: Config.options.background.widgets.clock.digital.font.width - usePercentTooltip: false - buttonIcon: "fit_width" - from: 25 - to: 125 - onValueChanged: { - Config.options.background.widgets.clock.digital.font.width = value; - } - } + ConfigSlider { text: Translation.tr("Font size") value: Config.options.background.widgets.clock.digital.font.size @@ -242,10 +240,35 @@ ContentPage { buttonIcon: "format_size" from: 70 to: 150 + stopIndicatorValues: [90] onValueChanged: { Config.options.background.widgets.clock.digital.font.size = value; } } + + ConfigSlider { + text: Translation.tr("Font width") + value: Config.options.background.widgets.clock.digital.font.width + usePercentTooltip: false + buttonIcon: "fit_width" + from: 25 + to: 125 + stopIndicatorValues: [100] + onValueChanged: { + Config.options.background.widgets.clock.digital.font.width = value; + } + } + ConfigSlider { + text: Translation.tr("Font roundness") + value: Config.options.background.widgets.clock.digital.font.roundness + usePercentTooltip: false + buttonIcon: "line_curve" + from: 0 + to: 100 + onValueChanged: { + Config.options.background.widgets.clock.digital.font.roundness = value; + } + } } ContentSubsection { From 0e3b3eceb664f183e9cae63f838c37a60ed11e87 Mon Sep 17 00:00:00 2001 From: vaguesyntax Date: Sun, 14 Dec 2025 13:48:37 +0300 Subject: [PATCH 08/16] digital clock: add font.family option --- dots/.config/quickshell/ii/modules/common/Config.qml | 1 + .../ii/background/widgets/clock/DigitalClock.qml | 2 ++ .../ii/modules/settings/BackgroundConfig.qml | 10 ++++++++++ 3 files changed, 13 insertions(+) diff --git a/dots/.config/quickshell/ii/modules/common/Config.qml b/dots/.config/quickshell/ii/modules/common/Config.qml index 3518b3dbd..3dfc6dd30 100644 --- a/dots/.config/quickshell/ii/modules/common/Config.qml +++ b/dots/.config/quickshell/ii/modules/common/Config.qml @@ -191,6 +191,7 @@ Singleton { property bool animateChange: true property bool vertical: false property JsonObject font: JsonObject { + property string family: "Google Sans Flex" property real weight: 350 property real width: 100 property real size: 90 diff --git a/dots/.config/quickshell/ii/modules/ii/background/widgets/clock/DigitalClock.qml b/dots/.config/quickshell/ii/modules/ii/background/widgets/clock/DigitalClock.qml index 233cad7b1..aff44ebd2 100644 --- a/dots/.config/quickshell/ii/modules/ii/background/widgets/clock/DigitalClock.qml +++ b/dots/.config/quickshell/ii/modules/ii/background/widgets/clock/DigitalClock.qml @@ -31,6 +31,7 @@ ColumnLayout { font { pixelSize: Config.options.background.widgets.clock.digital.font.size weight: Config.options.background.widgets.clock.digital.font.weight + family: Config.options.background.widgets.clock.digital.font.family variableAxes: ({ "wdth": Config.options.background.widgets.clock.digital.font.width, "ROND": Config.options.background.widgets.clock.digital.font.roundness @@ -49,6 +50,7 @@ ColumnLayout { font { pixelSize: Config.options.background.widgets.clock.digital.font.size weight: Config.options.background.widgets.clock.digital.font.weight + family: Config.options.background.widgets.clock.digital.font.family variableAxes: ({ "wdth": Config.options.background.widgets.clock.digital.font.width, "ROND": Config.options.background.widgets.clock.digital.font.roundness diff --git a/dots/.config/quickshell/ii/modules/settings/BackgroundConfig.qml b/dots/.config/quickshell/ii/modules/settings/BackgroundConfig.qml index 697c40274..e6aa0aaa7 100644 --- a/dots/.config/quickshell/ii/modules/settings/BackgroundConfig.qml +++ b/dots/.config/quickshell/ii/modules/settings/BackgroundConfig.qml @@ -219,6 +219,16 @@ ContentPage { } } + MaterialTextArea { + Layout.fillWidth: true + placeholderText: Translation.tr("Font family (e.g., Google Sans Flex)") + text: Config.options.background.widgets.clock.digital.font.family + wrapMode: TextEdit.Wrap + onTextChanged: { + Config.options.background.widgets.clock.digital.font.family = text; + } + } + ConfigSlider { text: Translation.tr("Font weight") From 2ef8342187c48a59a3ef01aae59aeae768d77cb0 Mon Sep 17 00:00:00 2001 From: vaguesyntax Date: Sun, 14 Dec 2025 13:51:38 +0300 Subject: [PATCH 09/16] fix(digital clock): properly define clock color --- .../ii/modules/ii/background/widgets/clock/ClockWidget.qml | 4 +++- .../ii/modules/ii/background/widgets/clock/DigitalClock.qml | 5 +++++ 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/dots/.config/quickshell/ii/modules/ii/background/widgets/clock/ClockWidget.qml b/dots/.config/quickshell/ii/modules/ii/background/widgets/clock/ClockWidget.qml index 82556a3ed..4b41634a4 100644 --- a/dots/.config/quickshell/ii/modules/ii/background/widgets/clock/ClockWidget.qml +++ b/dots/.config/quickshell/ii/modules/ii/background/widgets/clock/ClockWidget.qml @@ -63,7 +63,9 @@ AbstractBackgroundWidget { anchors.horizontalCenter: parent.horizontalCenter shown: root.clockStyle === "digital" && (root.shouldShow) fade: false - sourceComponent: DigitalClock {} + sourceComponent: DigitalClock { + colText: root.colText + } } StatusRow { anchors.horizontalCenter: parent.horizontalCenter diff --git a/dots/.config/quickshell/ii/modules/ii/background/widgets/clock/DigitalClock.qml b/dots/.config/quickshell/ii/modules/ii/background/widgets/clock/DigitalClock.qml index aff44ebd2..9e2613ee5 100644 --- a/dots/.config/quickshell/ii/modules/ii/background/widgets/clock/DigitalClock.qml +++ b/dots/.config/quickshell/ii/modules/ii/background/widgets/clock/DigitalClock.qml @@ -15,6 +15,7 @@ ColumnLayout { spacing: 6 property bool isVertical: Config.options.background.widgets.clock.digital.vertical + property color colText: Appearance.colors.colOnSecondaryContainer Item { Layout.fillWidth: true @@ -24,6 +25,7 @@ ColumnLayout { ClockText { id: timeTextTop text: clockColumn.isVertical ? DateTime.time.substring(0, 2) : DateTime.time + color: clockColumn.colText anchors { top: parent.top horizontalCenter: parent.horizontalCenter @@ -42,6 +44,7 @@ ColumnLayout { id: timeTextBottom text: clockColumn.isVertical ? DateTime.time.substring(3, 5) : "" visible: clockColumn.isVertical + color: clockColumn.colText anchors { bottom: parent.bottom @@ -63,12 +66,14 @@ ColumnLayout { visible: Config.options.background.widgets.clock.digital.showDate Layout.topMargin: clockColumn.isVertical ? -10 : 0 text: DateTime.longDate + color: clockColumn.colText } ClockText { visible: Config.options.background.widgets.clock.quote.enable && Config.options.background.widgets.clock.quote.text.length > 0 font.pixelSize: Appearance.font.pixelSize.normal text: Config.options.background.widgets.clock.quote.text animateChange: false + color: clockColumn.colText } } From 607d6056c1f55f3e9e2e24d39d00569330c90b82 Mon Sep 17 00:00:00 2001 From: vaguesyntax Date: Sun, 14 Dec 2025 14:07:01 +0300 Subject: [PATCH 10/16] fix(digital clock): layout and handle properties better --- .../ii/background/widgets/clock/ClockText.qml | 2 - .../background/widgets/clock/ClockWidget.qml | 2 + .../background/widgets/clock/DigitalClock.qml | 80 +++++++++---------- 3 files changed, 38 insertions(+), 46 deletions(-) diff --git a/dots/.config/quickshell/ii/modules/ii/background/widgets/clock/ClockText.qml b/dots/.config/quickshell/ii/modules/ii/background/widgets/clock/ClockText.qml index 39267b83d..6175c98a5 100644 --- a/dots/.config/quickshell/ii/modules/ii/background/widgets/clock/ClockText.qml +++ b/dots/.config/quickshell/ii/modules/ii/background/widgets/clock/ClockText.qml @@ -5,7 +5,6 @@ import QtQuick.Layouts StyledText { Layout.fillWidth: true - horizontalAlignment: root.textHorizontalAlignment font { family: Appearance.font.family.expressive pixelSize: 20 @@ -13,7 +12,6 @@ StyledText { variableAxes: ({}) styleName: "" } - color: root.colText style: Text.Raised styleColor: Appearance.colors.colShadow animateChange: Config.options.background.widgets.clock.digital.animateChange diff --git a/dots/.config/quickshell/ii/modules/ii/background/widgets/clock/ClockWidget.qml b/dots/.config/quickshell/ii/modules/ii/background/widgets/clock/ClockWidget.qml index 4b41634a4..964755269 100644 --- a/dots/.config/quickshell/ii/modules/ii/background/widgets/clock/ClockWidget.qml +++ b/dots/.config/quickshell/ii/modules/ii/background/widgets/clock/ClockWidget.qml @@ -65,6 +65,7 @@ AbstractBackgroundWidget { fade: false sourceComponent: DigitalClock { colText: root.colText + textHorizontalAlignment: root.textHorizontalAlignment } } StatusRow { @@ -153,6 +154,7 @@ AbstractBackgroundWidget { ClockText { id: statusTextWidget color: statusTextRow.textColor + horizontalAlignment: root.textHorizontalAlignment anchors.verticalCenter: statusTextRow.verticalCenter font { pixelSize: Appearance.font.pixelSize.large diff --git a/dots/.config/quickshell/ii/modules/ii/background/widgets/clock/DigitalClock.qml b/dots/.config/quickshell/ii/modules/ii/background/widgets/clock/DigitalClock.qml index 9e2613ee5..9709789d8 100644 --- a/dots/.config/quickshell/ii/modules/ii/background/widgets/clock/DigitalClock.qml +++ b/dots/.config/quickshell/ii/modules/ii/background/widgets/clock/DigitalClock.qml @@ -12,68 +12,60 @@ import Quickshell.Io ColumnLayout { id: clockColumn - spacing: 6 + spacing: 4 property bool isVertical: Config.options.background.widgets.clock.digital.vertical property color colText: Appearance.colors.colOnSecondaryContainer + property string textHorizontalAlignment: Text.AlignHCenter - Item { - Layout.fillWidth: true - implicitHeight: timeTextTop.font.pixelSize + (clockColumn.isVertical ? timeTextBottom.font.pixelSize + 10 : 0) - implicitWidth: Math.max(timeTextTop.paintedWidth, timeTextBottom.paintedWidth) - - ClockText { - id: timeTextTop - text: clockColumn.isVertical ? DateTime.time.substring(0, 2) : DateTime.time - color: clockColumn.colText - anchors { - top: parent.top - horizontalCenter: parent.horizontalCenter - } - font { - pixelSize: Config.options.background.widgets.clock.digital.font.size - weight: Config.options.background.widgets.clock.digital.font.weight - family: Config.options.background.widgets.clock.digital.font.family - variableAxes: ({ - "wdth": Config.options.background.widgets.clock.digital.font.width, - "ROND": Config.options.background.widgets.clock.digital.font.roundness - }) - } + ClockText { + id: timeTextTop + text: clockColumn.isVertical ? DateTime.time.substring(0, 2) : DateTime.time + color: root.colText + horizontalAlignment: Text.AlignHCenter + font { + pixelSize: Config.options.background.widgets.clock.digital.font.size + weight: Config.options.background.widgets.clock.digital.font.weight + family: Config.options.background.widgets.clock.digital.font.family + variableAxes: ({ + "wdth": Config.options.background.widgets.clock.digital.font.width, + "ROND": Config.options.background.widgets.clock.digital.font.roundness + }) } - ClockText { - id: timeTextBottom - text: clockColumn.isVertical ? DateTime.time.substring(3, 5) : "" - visible: clockColumn.isVertical - color: clockColumn.colText + } - anchors { - bottom: parent.bottom - horizontalCenter: parent.horizontalCenter - } - font { - pixelSize: Config.options.background.widgets.clock.digital.font.size - weight: Config.options.background.widgets.clock.digital.font.weight - family: Config.options.background.widgets.clock.digital.font.family - variableAxes: ({ - "wdth": Config.options.background.widgets.clock.digital.font.width, - "ROND": Config.options.background.widgets.clock.digital.font.roundness - }) - } + ClockText { + id: timeTextBottom + text: DateTime.time.substring(3, 5) + visible: clockColumn.isVertical + color: root.colText + Layout.topMargin: -40 + horizontalAlignment: Text.AlignHCenter + font { + pixelSize: Config.options.background.widgets.clock.digital.font.size + weight: Config.options.background.widgets.clock.digital.font.weight + family: Config.options.background.widgets.clock.digital.font.family + variableAxes: ({ + "wdth": Config.options.background.widgets.clock.digital.font.width, + "ROND": Config.options.background.widgets.clock.digital.font.roundness + }) } } ClockText { visible: Config.options.background.widgets.clock.digital.showDate - Layout.topMargin: clockColumn.isVertical ? -10 : 0 + Layout.topMargin: -20 text: DateTime.longDate - color: clockColumn.colText + color: root.colText + horizontalAlignment: root.textHorizontalAlignment } ClockText { visible: Config.options.background.widgets.clock.quote.enable && Config.options.background.widgets.clock.quote.text.length > 0 font.pixelSize: Appearance.font.pixelSize.normal text: Config.options.background.widgets.clock.quote.text animateChange: false - color: clockColumn.colText + color: root.colText + horizontalAlignment: root.textHorizontalAlignment } } From c92832ff9513aebc809d578129cf409cc7e07cc6 Mon Sep 17 00:00:00 2001 From: vaguesyntax Date: Sun, 14 Dec 2025 14:18:03 +0300 Subject: [PATCH 11/16] digital clock: fix properties (again) --- .../ii/background/widgets/clock/DigitalClock.qml | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/dots/.config/quickshell/ii/modules/ii/background/widgets/clock/DigitalClock.qml b/dots/.config/quickshell/ii/modules/ii/background/widgets/clock/DigitalClock.qml index 9709789d8..6506b3e1c 100644 --- a/dots/.config/quickshell/ii/modules/ii/background/widgets/clock/DigitalClock.qml +++ b/dots/.config/quickshell/ii/modules/ii/background/widgets/clock/DigitalClock.qml @@ -16,12 +16,12 @@ ColumnLayout { property bool isVertical: Config.options.background.widgets.clock.digital.vertical property color colText: Appearance.colors.colOnSecondaryContainer - property string textHorizontalAlignment: Text.AlignHCenter + property var textHorizontalAlignment: Text.AlignHCenter ClockText { id: timeTextTop text: clockColumn.isVertical ? DateTime.time.substring(0, 2) : DateTime.time - color: root.colText + color: clockColumn.colText horizontalAlignment: Text.AlignHCenter font { pixelSize: Config.options.background.widgets.clock.digital.font.size @@ -38,7 +38,7 @@ ColumnLayout { id: timeTextBottom text: DateTime.time.substring(3, 5) visible: clockColumn.isVertical - color: root.colText + color: clockColumn.colText Layout.topMargin: -40 horizontalAlignment: Text.AlignHCenter font { @@ -56,16 +56,16 @@ ColumnLayout { visible: Config.options.background.widgets.clock.digital.showDate Layout.topMargin: -20 text: DateTime.longDate - color: root.colText - horizontalAlignment: root.textHorizontalAlignment + color: clockColumn.colText + horizontalAlignment: clockColumn.textHorizontalAlignment } ClockText { visible: Config.options.background.widgets.clock.quote.enable && Config.options.background.widgets.clock.quote.text.length > 0 font.pixelSize: Appearance.font.pixelSize.normal text: Config.options.background.widgets.clock.quote.text animateChange: false - color: root.colText - horizontalAlignment: root.textHorizontalAlignment + color: clockColumn.colText + horizontalAlignment: clockColumn.textHorizontalAlignment } } From b21699b8a08480e5bd4bbee7bba80a5fb68274fd Mon Sep 17 00:00:00 2001 From: end-4 <97237370+end-4@users.noreply.github.com> Date: Mon, 29 Dec 2025 18:25:49 +0100 Subject: [PATCH 12/16] fix weird vertical clock with 12h format --- .../background/widgets/clock/DigitalClock.qml | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/dots/.config/quickshell/ii/modules/ii/background/widgets/clock/DigitalClock.qml b/dots/.config/quickshell/ii/modules/ii/background/widgets/clock/DigitalClock.qml index 6506b3e1c..518d9797c 100644 --- a/dots/.config/quickshell/ii/modules/ii/background/widgets/clock/DigitalClock.qml +++ b/dots/.config/quickshell/ii/modules/ii/background/widgets/clock/DigitalClock.qml @@ -18,9 +18,10 @@ ColumnLayout { property color colText: Appearance.colors.colOnSecondaryContainer property var textHorizontalAlignment: Text.AlignHCenter + // Time ClockText { id: timeTextTop - text: clockColumn.isVertical ? DateTime.time.substring(0, 2) : DateTime.time + text: clockColumn.isVertical ? DateTime.time.split(":")[0].padStart(2, "0") : DateTime.time color: clockColumn.colText horizontalAlignment: Text.AlignHCenter font { @@ -36,22 +37,20 @@ ColumnLayout { ClockText { id: timeTextBottom - text: DateTime.time.substring(3, 5) + text: DateTime.time.split(":")[1].split(" ")[0].padStart(2, "0") visible: clockColumn.isVertical color: clockColumn.colText Layout.topMargin: -40 horizontalAlignment: Text.AlignHCenter font { - pixelSize: Config.options.background.widgets.clock.digital.font.size - weight: Config.options.background.widgets.clock.digital.font.weight - family: Config.options.background.widgets.clock.digital.font.family - variableAxes: ({ - "wdth": Config.options.background.widgets.clock.digital.font.width, - "ROND": Config.options.background.widgets.clock.digital.font.roundness - }) + pixelSize: timeTextTop.font.pixelSize + weight: timeTextTop.font.weight + family: timeTextTop.font.family + variableAxes: timeTextTop.font.variableAxes } } + // Date ClockText { visible: Config.options.background.widgets.clock.digital.showDate Layout.topMargin: -20 @@ -59,6 +58,7 @@ ColumnLayout { color: clockColumn.colText horizontalAlignment: clockColumn.textHorizontalAlignment } + ClockText { visible: Config.options.background.widgets.clock.quote.enable && Config.options.background.widgets.clock.quote.text.length > 0 font.pixelSize: Appearance.font.pixelSize.normal From 953427692f5db7d28f4a621862e757f9e8a325c7 Mon Sep 17 00:00:00 2001 From: end-4 <97237370+end-4@users.noreply.github.com> Date: Mon, 29 Dec 2025 18:31:05 +0100 Subject: [PATCH 13/16] remove unnecessary imports --- .../ii/modules/ii/background/widgets/clock/DigitalClock.qml | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/dots/.config/quickshell/ii/modules/ii/background/widgets/clock/DigitalClock.qml b/dots/.config/quickshell/ii/modules/ii/background/widgets/clock/DigitalClock.qml index 518d9797c..104bc24cb 100644 --- a/dots/.config/quickshell/ii/modules/ii/background/widgets/clock/DigitalClock.qml +++ b/dots/.config/quickshell/ii/modules/ii/background/widgets/clock/DigitalClock.qml @@ -1,14 +1,9 @@ pragma ComponentBehavior: Bound -//TODO: fix imports to only what is necessary import qs.services import qs.modules.common -import qs.modules.common.widgets -import qs.modules.common.functions import QtQuick import QtQuick.Layouts -import Qt5Compat.GraphicalEffects -import Quickshell.Io ColumnLayout { id: clockColumn @@ -59,6 +54,7 @@ ColumnLayout { horizontalAlignment: clockColumn.textHorizontalAlignment } + // Quote ClockText { visible: Config.options.background.widgets.clock.quote.enable && Config.options.background.widgets.clock.quote.text.length > 0 font.pixelSize: Appearance.font.pixelSize.normal From 61feb958ecc11a14a3ca426b36ef8915cdcbc00b Mon Sep 17 00:00:00 2001 From: end-4 <97237370+end-4@users.noreply.github.com> Date: Mon, 29 Dec 2025 18:37:55 +0100 Subject: [PATCH 14/16] add comment for empty style name assignment --- .../ii/modules/ii/background/widgets/clock/ClockText.qml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/dots/.config/quickshell/ii/modules/ii/background/widgets/clock/ClockText.qml b/dots/.config/quickshell/ii/modules/ii/background/widgets/clock/ClockText.qml index 6175c98a5..133a2759c 100644 --- a/dots/.config/quickshell/ii/modules/ii/background/widgets/clock/ClockText.qml +++ b/dots/.config/quickshell/ii/modules/ii/background/widgets/clock/ClockText.qml @@ -9,8 +9,9 @@ StyledText { family: Appearance.font.family.expressive pixelSize: 20 weight: 350 - variableAxes: ({}) + // Set empty to prevent conflicts, not meaningless styleName: "" + variableAxes: ({}) } style: Text.Raised styleColor: Appearance.colors.colShadow From 281943306ed92cbb0d66f8d26d789f8f3c79e66d Mon Sep 17 00:00:00 2001 From: end-4 <97237370+end-4@users.noreply.github.com> Date: Mon, 29 Dec 2025 18:42:03 +0100 Subject: [PATCH 15/16] bg clock: put bottom time text in a loader --- .../background/widgets/clock/DigitalClock.qml | 36 +++++++++---------- 1 file changed, 18 insertions(+), 18 deletions(-) diff --git a/dots/.config/quickshell/ii/modules/ii/background/widgets/clock/DigitalClock.qml b/dots/.config/quickshell/ii/modules/ii/background/widgets/clock/DigitalClock.qml index 104bc24cb..d2a6f95d0 100644 --- a/dots/.config/quickshell/ii/modules/ii/background/widgets/clock/DigitalClock.qml +++ b/dots/.config/quickshell/ii/modules/ii/background/widgets/clock/DigitalClock.qml @@ -24,27 +24,30 @@ ColumnLayout { weight: Config.options.background.widgets.clock.digital.font.weight family: Config.options.background.widgets.clock.digital.font.family variableAxes: ({ - "wdth": Config.options.background.widgets.clock.digital.font.width, - "ROND": Config.options.background.widgets.clock.digital.font.roundness - }) + "wdth": Config.options.background.widgets.clock.digital.font.width, + "ROND": Config.options.background.widgets.clock.digital.font.roundness + }) } } - ClockText { - id: timeTextBottom - text: DateTime.time.split(":")[1].split(" ")[0].padStart(2, "0") - visible: clockColumn.isVertical - color: clockColumn.colText + Loader { Layout.topMargin: -40 - horizontalAlignment: Text.AlignHCenter - font { - pixelSize: timeTextTop.font.pixelSize - weight: timeTextTop.font.weight - family: timeTextTop.font.family - variableAxes: timeTextTop.font.variableAxes + active: clockColumn.isVertical + visible: active + sourceComponent: ClockText { + id: timeTextBottom + text: DateTime.time.split(":")[1].split(" ")[0].padStart(2, "0") + color: clockColumn.colText + horizontalAlignment: Text.AlignHCenter + font { + pixelSize: timeTextTop.font.pixelSize + weight: timeTextTop.font.weight + family: timeTextTop.font.family + variableAxes: timeTextTop.font.variableAxes + } } } - + // Date ClockText { visible: Config.options.background.widgets.clock.digital.showDate @@ -64,6 +67,3 @@ ColumnLayout { horizontalAlignment: clockColumn.textHorizontalAlignment } } - - - \ No newline at end of file From 7763a26e03365840ac9433b33fdaaf2ae56936ba Mon Sep 17 00:00:00 2001 From: end-4 <97237370+end-4@users.noreply.github.com> Date: Mon, 29 Dec 2025 18:47:15 +0100 Subject: [PATCH 16/16] backgroundconfig: format, adjust texts --- .../quickshell/ii/modules/settings/BackgroundConfig.qml | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/dots/.config/quickshell/ii/modules/settings/BackgroundConfig.qml b/dots/.config/quickshell/ii/modules/settings/BackgroundConfig.qml index e6aa0aaa7..b67e10409 100644 --- a/dots/.config/quickshell/ii/modules/settings/BackgroundConfig.qml +++ b/dots/.config/quickshell/ii/modules/settings/BackgroundConfig.qml @@ -53,9 +53,9 @@ ContentPage { } ContentSection { + id: settingsClock icon: "clock_loader_40" title: Translation.tr("Widget: Clock") - id: settingsClock function stylePresent(styleName) { if (!Config.options.background.widgets.clock.showOnlyWhenLocked && Config.options.background.widgets.clock.style === styleName) { @@ -172,7 +172,7 @@ ContentPage { ContentSubsection { visible: settingsClock.digitalPresent title: Translation.tr("Digital clock settings") - tooltip: Translation.tr("Font width and roundness settings are only available for some fonts like 'Google Sans Flex'") + tooltip: Translation.tr("Font width and roundness settings are only available for some fonts like Google Sans Flex") ConfigRow { uniform: true @@ -196,7 +196,6 @@ ContentPage { ConfigRow { uniform: true - ConfigSwitch { buttonIcon: "date_range" @@ -221,7 +220,7 @@ ContentPage { MaterialTextArea { Layout.fillWidth: true - placeholderText: Translation.tr("Font family (e.g., Google Sans Flex)") + placeholderText: Translation.tr("Font family") text: Config.options.background.widgets.clock.digital.font.family wrapMode: TextEdit.Wrap onTextChanged: { @@ -229,7 +228,6 @@ ContentPage { } } - ConfigSlider { text: Translation.tr("Font weight") value: Config.options.background.widgets.clock.digital.font.weight