From 29f84aeab5c2000a29f41cb40ef7797d99c6dce8 Mon Sep 17 00:00:00 2001 From: bbedward Date: Mon, 24 Nov 2025 12:26:29 -0500 Subject: [PATCH] dankbar: fix monitoring widgets with no background option fixes #806 --- .../Modules/DankBar/Widgets/CpuMonitor.qml | 119 +++++++-------- .../DankBar/Widgets/CpuTemperature.qml | 119 +++++++-------- .../DankBar/Widgets/GpuTemperature.qml | 119 +++++++-------- .../Modules/DankBar/Widgets/RamMonitor.qml | 141 +++++++++--------- 4 files changed, 235 insertions(+), 263 deletions(-) diff --git a/quickshell/Modules/DankBar/Widgets/CpuMonitor.qml b/quickshell/Modules/DankBar/Widgets/CpuMonitor.qml index 67d35b8a..be687781 100644 --- a/quickshell/Modules/DankBar/Widgets/CpuMonitor.qml +++ b/quickshell/Modules/DankBar/Widgets/CpuMonitor.qml @@ -25,8 +25,8 @@ BasePill { content: Component { Item { - implicitWidth: root.isVerticalOrientation ? (root.widgetThickness - root.horizontalPadding * 2) : cpuContentRoot.implicitWidth - implicitHeight: root.isVerticalOrientation ? cpuColumn.implicitHeight : (root.widgetThickness - root.horizontalPadding * 2) + implicitWidth: root.isVerticalOrientation ? (root.widgetThickness - root.horizontalPadding * 2) : cpuContent.implicitWidth + implicitHeight: root.isVerticalOrientation ? cpuColumn.implicitHeight : cpuContent.implicitHeight Column { id: cpuColumn @@ -65,79 +65,72 @@ BasePill { } } - Item { - id: cpuContentRoot + Row { + id: cpuContent visible: !root.isVerticalOrientation + anchors.centerIn: parent + spacing: Theme.spacingXS - implicitWidth: cpuRow.implicitWidth - implicitHeight: cpuRow.implicitHeight - - Row { - id: cpuRow - anchors.centerIn: parent - spacing: Theme.spacingXS - - DankIcon { - id: cpuIcon - name: "memory" - size: Theme.barIconSize(root.barThickness) - color: { - if (DgopService.cpuUsage > 80) { - return Theme.tempDanger; - } - - if (DgopService.cpuUsage > 60) { - return Theme.tempWarning; - } - - return Theme.widgetIconColor; + DankIcon { + id: cpuIcon + name: "memory" + size: Theme.barIconSize(root.barThickness) + color: { + if (DgopService.cpuUsage > 80) { + return Theme.tempDanger; } - implicitWidth: size - implicitHeight: size - width: size - height: size + if (DgopService.cpuUsage > 60) { + return Theme.tempWarning; + } + + return Theme.widgetIconColor; } - Item { - id: textBox + implicitWidth: size + implicitHeight: size + width: size + height: size + } - implicitWidth: root.minimumWidth ? Math.max(cpuBaseline.width, cpuText.paintedWidth) : cpuText.paintedWidth - implicitHeight: cpuText.implicitHeight + Item { + id: textBox - width: implicitWidth - height: implicitHeight + implicitWidth: root.minimumWidth ? Math.max(cpuBaseline.width, cpuText.paintedWidth) : cpuText.paintedWidth + implicitHeight: cpuText.implicitHeight - Behavior on width { - NumberAnimation { - duration: Theme.shortDuration - easing.type: Easing.OutCubic + width: implicitWidth + height: implicitHeight + + Behavior on width { + NumberAnimation { + duration: Theme.shortDuration + easing.type: Easing.OutCubic + } + } + + StyledTextMetrics { + id: cpuBaseline + font.pixelSize: Theme.barTextSize(root.barThickness, root.barConfig?.fontScale) + text: "88%" + } + + StyledText { + id: cpuText + text: { + const v = DgopService.cpuUsage; + if (v === undefined || v === null || v === 0) { + return "--%"; } + return v.toFixed(0) + "%"; } + font.pixelSize: Theme.barTextSize(root.barThickness, root.barConfig?.fontScale) + color: Theme.widgetTextColor - StyledTextMetrics { - id: cpuBaseline - font.pixelSize: Theme.barTextSize(root.barThickness, root.barConfig?.fontScale) - text: "88%" - } - - StyledText { - id: cpuText - text: { - const v = DgopService.cpuUsage; - if (v === undefined || v === null || v === 0) { - return "--%"; - } - return v.toFixed(0) + "%"; - } - font.pixelSize: Theme.barTextSize(root.barThickness, root.barConfig?.fontScale) - color: Theme.widgetTextColor - - anchors.fill: parent - horizontalAlignment: Text.AlignHCenter - verticalAlignment: Text.AlignVCenter - elide: Text.ElideNone - } + anchors.fill: parent + horizontalAlignment: Text.AlignHCenter + verticalAlignment: Text.AlignVCenter + elide: Text.ElideNone } } } diff --git a/quickshell/Modules/DankBar/Widgets/CpuTemperature.qml b/quickshell/Modules/DankBar/Widgets/CpuTemperature.qml index bcb616a3..01f52fb1 100644 --- a/quickshell/Modules/DankBar/Widgets/CpuTemperature.qml +++ b/quickshell/Modules/DankBar/Widgets/CpuTemperature.qml @@ -25,8 +25,8 @@ BasePill { content: Component { Item { - implicitWidth: root.isVerticalOrientation ? (root.widgetThickness - root.horizontalPadding * 2) : cpuTempContentRoot.implicitWidth - implicitHeight: root.isVerticalOrientation ? cpuTempColumn.implicitHeight : (root.widgetThickness - root.horizontalPadding * 2) + implicitWidth: root.isVerticalOrientation ? (root.widgetThickness - root.horizontalPadding * 2) : cpuTempRow.implicitWidth + implicitHeight: root.isVerticalOrientation ? cpuTempColumn.implicitHeight : cpuTempRow.implicitHeight Column { id: cpuTempColumn @@ -65,79 +65,72 @@ BasePill { } } - Item { - id: cpuTempContentRoot + Row { + id: cpuTempRow visible: !root.isVerticalOrientation + anchors.centerIn: parent + spacing: Theme.spacingXS - implicitWidth: cpuTempRow.implicitWidth - implicitHeight: cpuTempRow.implicitHeight - - Row { - id: cpuTempRow - anchors.centerIn: parent - spacing: Theme.spacingXS - - DankIcon { - id: cpuTempIcon - name: "device_thermostat" - size: Theme.barIconSize(root.barThickness) - color: { - if (DgopService.cpuTemperature > 85) { - return Theme.tempDanger; - } - - if (DgopService.cpuTemperature > 69) { - return Theme.tempWarning; - } - - return Theme.widgetIconColor; + DankIcon { + id: cpuTempIcon + name: "device_thermostat" + size: Theme.barIconSize(root.barThickness) + color: { + if (DgopService.cpuTemperature > 85) { + return Theme.tempDanger; } - implicitWidth: size - implicitHeight: size - width: size - height: size + if (DgopService.cpuTemperature > 69) { + return Theme.tempWarning; + } + + return Theme.widgetIconColor; } - Item { - id: textBox + implicitWidth: size + implicitHeight: size + width: size + height: size + } - implicitWidth: root.minimumWidth ? Math.max(tempBaseline.width, cpuTempText.paintedWidth) : cpuTempText.paintedWidth - implicitHeight: cpuTempText.implicitHeight + Item { + id: textBox - width: implicitWidth - height: implicitHeight + implicitWidth: root.minimumWidth ? Math.max(tempBaseline.width, cpuTempText.paintedWidth) : cpuTempText.paintedWidth + implicitHeight: cpuTempText.implicitHeight - Behavior on width { - NumberAnimation { - duration: Theme.shortDuration - easing.type: Easing.OutCubic + width: implicitWidth + height: implicitHeight + + Behavior on width { + NumberAnimation { + duration: Theme.shortDuration + easing.type: Easing.OutCubic + } + } + + StyledTextMetrics { + id: tempBaseline + font.pixelSize: Theme.barTextSize(root.barThickness, root.barConfig?.fontScale) + text: "88°" + } + + StyledText { + id: cpuTempText + text: { + if (DgopService.cpuTemperature === undefined || DgopService.cpuTemperature === null || DgopService.cpuTemperature < 0) { + return "--°"; } + + return Math.round(DgopService.cpuTemperature) + "°"; } + font.pixelSize: Theme.barTextSize(root.barThickness, root.barConfig?.fontScale) + color: Theme.widgetTextColor - StyledTextMetrics { - id: tempBaseline - font.pixelSize: Theme.barTextSize(root.barThickness, root.barConfig?.fontScale) - text: "88°" - } - - StyledText { - id: cpuTempText - text: { - if (DgopService.cpuTemperature === undefined || DgopService.cpuTemperature === null || DgopService.cpuTemperature < 0) { - return "--°"; - } - - return Math.round(DgopService.cpuTemperature) + "°"; - } - font.pixelSize: Theme.barTextSize(root.barThickness, root.barConfig?.fontScale) - color: Theme.widgetTextColor - - anchors.fill: parent - horizontalAlignment: Text.AlignHCenter - verticalAlignment: Text.AlignVCenter - elide: Text.ElideNone - } + anchors.fill: parent + horizontalAlignment: Text.AlignHCenter + verticalAlignment: Text.AlignVCenter + elide: Text.ElideNone } } } diff --git a/quickshell/Modules/DankBar/Widgets/GpuTemperature.qml b/quickshell/Modules/DankBar/Widgets/GpuTemperature.qml index ab2edf89..93a9da36 100644 --- a/quickshell/Modules/DankBar/Widgets/GpuTemperature.qml +++ b/quickshell/Modules/DankBar/Widgets/GpuTemperature.qml @@ -93,8 +93,8 @@ BasePill { content: Component { Item { - implicitWidth: root.isVerticalOrientation ? (root.widgetThickness - root.horizontalPadding * 2) : gpuTempContentRoot.implicitWidth - implicitHeight: root.isVerticalOrientation ? gpuTempColumn.implicitHeight : (root.widgetThickness - root.horizontalPadding * 2) + implicitWidth: root.isVerticalOrientation ? (root.widgetThickness - root.horizontalPadding * 2) : gpuTempRow.implicitWidth + implicitHeight: root.isVerticalOrientation ? gpuTempColumn.implicitHeight : gpuTempRow.implicitHeight Column { id: gpuTempColumn @@ -133,79 +133,72 @@ BasePill { } } - Item { - id: gpuTempContentRoot + Row { + id: gpuTempRow visible: !root.isVerticalOrientation + anchors.centerIn: parent + spacing: Theme.spacingXS - implicitWidth: gpuTempRow.implicitWidth - implicitHeight: gpuTempRow.implicitHeight - - Row { - id: gpuTempRow - anchors.centerIn: parent - spacing: Theme.spacingXS - - DankIcon { - id: gpuTempIcon - name: "auto_awesome_mosaic" - size: Theme.barIconSize(root.barThickness) - color: { - if (root.displayTemp > 80) { - return Theme.tempDanger; - } - - if (root.displayTemp > 65) { - return Theme.tempWarning; - } - - return Theme.widgetIconColor; + DankIcon { + id: gpuTempIcon + name: "auto_awesome_mosaic" + size: Theme.barIconSize(root.barThickness) + color: { + if (root.displayTemp > 80) { + return Theme.tempDanger; } - implicitWidth: size - implicitHeight: size - width: size - height: size + if (root.displayTemp > 65) { + return Theme.tempWarning; + } + + return Theme.widgetIconColor; } - Item { - id: textBox + implicitWidth: size + implicitHeight: size + width: size + height: size + } - implicitWidth: root.minimumWidth ? Math.max(gpuTempBaseline.width, gpuTempText.paintedWidth) : gpuTempText.paintedWidth - implicitHeight: gpuTempText.implicitHeight + Item { + id: textBox - width: implicitWidth - height: implicitHeight + implicitWidth: root.minimumWidth ? Math.max(gpuTempBaseline.width, gpuTempText.paintedWidth) : gpuTempText.paintedWidth + implicitHeight: gpuTempText.implicitHeight - Behavior on width { - NumberAnimation { - duration: Theme.shortDuration - easing.type: Easing.OutCubic + width: implicitWidth + height: implicitHeight + + Behavior on width { + NumberAnimation { + duration: Theme.shortDuration + easing.type: Easing.OutCubic + } + } + + StyledTextMetrics { + id: gpuTempBaseline + font.pixelSize: Theme.barTextSize(root.barThickness, root.barConfig?.fontScale) + text: "88°" + } + + StyledText { + id: gpuTempText + text: { + if (root.displayTemp === undefined || root.displayTemp === null || root.displayTemp === 0) { + return "--°"; } + + return Math.round(root.displayTemp) + "°"; } + font.pixelSize: Theme.barTextSize(root.barThickness, root.barConfig?.fontScale) + color: Theme.widgetTextColor - StyledTextMetrics { - id: gpuTempBaseline - font.pixelSize: Theme.barTextSize(root.barThickness, root.barConfig?.fontScale) - text: "88°" - } - - StyledText { - id: gpuTempText - text: { - if (root.displayTemp === undefined || root.displayTemp === null || root.displayTemp === 0) { - return "--°"; - } - - return Math.round(root.displayTemp) + "°"; - } - font.pixelSize: Theme.barTextSize(root.barThickness, root.barConfig?.fontScale) - color: Theme.widgetTextColor - - anchors.fill: parent - horizontalAlignment: Text.AlignHCenter - verticalAlignment: Text.AlignVCenter - elide: Text.ElideNone - } + anchors.fill: parent + horizontalAlignment: Text.AlignHCenter + verticalAlignment: Text.AlignVCenter + elide: Text.ElideNone } } } diff --git a/quickshell/Modules/DankBar/Widgets/RamMonitor.qml b/quickshell/Modules/DankBar/Widgets/RamMonitor.qml index f9c2c47f..7a455a19 100644 --- a/quickshell/Modules/DankBar/Widgets/RamMonitor.qml +++ b/quickshell/Modules/DankBar/Widgets/RamMonitor.qml @@ -27,8 +27,8 @@ BasePill { content: Component { Item { - implicitWidth: root.isVerticalOrientation ? (root.widgetThickness - root.horizontalPadding * 2) : ramContentRoot.implicitWidth - implicitHeight: root.isVerticalOrientation ? ramColumn.implicitHeight : (root.widgetThickness - root.horizontalPadding * 2) + implicitWidth: root.isVerticalOrientation ? (root.widgetThickness - root.horizontalPadding * 2) : ramContent.implicitWidth + implicitHeight: root.isVerticalOrientation ? ramColumn.implicitHeight : ramContent.implicitHeight Column { id: ramColumn @@ -75,93 +75,86 @@ BasePill { } } - Item { - id: ramContentRoot + Row { + id: ramContent visible: !root.isVerticalOrientation + anchors.centerIn: parent + spacing: Theme.spacingXS - implicitWidth: ramRow.implicitWidth - implicitHeight: ramRow.implicitHeight - - Row { - id: ramRow - anchors.centerIn: parent - spacing: Theme.spacingXS - - DankIcon { - id: ramIcon - name: "developer_board" - size: Theme.barIconSize(root.barThickness) - color: { - if (DgopService.memoryUsage > 90) { - return Theme.tempDanger; - } - - if (DgopService.memoryUsage > 75) { - return Theme.tempWarning; - } - - return Theme.widgetIconColor; + DankIcon { + id: ramIcon + name: "developer_board" + size: Theme.barIconSize(root.barThickness) + color: { + if (DgopService.memoryUsage > 90) { + return Theme.tempDanger; } - implicitWidth: size - implicitHeight: size - width: size - height: size + if (DgopService.memoryUsage > 75) { + return Theme.tempWarning; + } + + return Theme.widgetIconColor; } - Item { - id: textBox + implicitWidth: size + implicitHeight: size + width: size + height: size + } - implicitWidth: root.minimumWidth ? Math.max(ramBaseline.width, ramText.paintedWidth) : ramText.paintedWidth - implicitHeight: ramText.implicitHeight + Item { + id: textBox - width: implicitWidth - height: implicitHeight + implicitWidth: root.minimumWidth ? Math.max(ramBaseline.width, ramText.paintedWidth) : ramText.paintedWidth + implicitHeight: ramText.implicitHeight - Behavior on width { - NumberAnimation { - duration: Theme.shortDuration - easing.type: Easing.OutCubic - } + width: implicitWidth + height: implicitHeight + + Behavior on width { + NumberAnimation { + duration: Theme.shortDuration + easing.type: Easing.OutCubic } + } - StyledTextMetrics { - id: ramBaseline - font.pixelSize: Theme.barTextSize(root.barThickness, root.barConfig?.fontScale) - text: { - if (!root.showSwap) { - return "88%"; - } - if (root.swapUsage < 10) { - return "88% · 0%"; - } - return "88% · 88%"; + StyledTextMetrics { + id: ramBaseline + font.pixelSize: Theme.barTextSize(root.barThickness, root.barConfig?.fontScale) + text: { + if (!root.showSwap) { + return "88%"; } - } - - StyledText { - id: ramText - text: { - if (DgopService.memoryUsage === undefined || DgopService.memoryUsage === null || DgopService.memoryUsage === 0) { - return "--%"; - } - - let ramText = DgopService.memoryUsage.toFixed(0) + "%"; - if (root.showSwap && DgopService.totalSwapKB > 0) { - return ramText + " · " + root.swapUsage.toFixed(0) + "%"; - } - return ramText; + if (root.swapUsage < 10) { + return "88% · 0%"; } - font.pixelSize: Theme.barTextSize(root.barThickness, root.barConfig?.fontScale) - color: Theme.widgetTextColor - - anchors.fill: parent - horizontalAlignment: Text.AlignHCenter - verticalAlignment: Text.AlignVCenter - elide: Text.ElideNone - wrapMode: Text.NoWrap + return "88% · 88%"; } } + + StyledText { + id: ramText + text: { + if (DgopService.memoryUsage === undefined || DgopService.memoryUsage === null || DgopService.memoryUsage === 0) { + return "--%"; + } + + let ramText = DgopService.memoryUsage.toFixed(0) + "%"; + if (root.showSwap && DgopService.totalSwapKB > 0) { + return ramText + " · " + root.swapUsage.toFixed(0) + "%"; + } + return ramText; + } + font.pixelSize: Theme.barTextSize(root.barThickness, root.barConfig?.fontScale) + color: Theme.widgetTextColor + + anchors.fill: parent + horizontalAlignment: Text.AlignHCenter + verticalAlignment: Text.AlignVCenter + elide: Text.ElideNone + wrapMode: Text.NoWrap + } } } }