quickshell and hyprland additions

This commit is contained in:
2026-03-15 13:56:00 +02:00
parent c9c27d1554
commit 1ad06b82a6
509 changed files with 68371 additions and 19 deletions

View File

@@ -0,0 +1,99 @@
import QtQuick
import QtQuick.Layouts
import qs.config
import qs.modules.components
import qs.services
Item {
id: systemUsageContainer
property string displayName: screen?.name ?? ""
property bool isHorizontal: (ConfigResolver.bar(displayName).position === "top" || ConfigResolver.bar(displayName).position === "bottom")
visible: ConfigResolver.bar(displayName).modules.systemUsage.enabled && haveWidth
Layout.alignment: Qt.AlignVCenter
implicitWidth: bgRect.implicitWidth
implicitHeight: bgRect.implicitHeight
property bool haveWidth:
ConfigResolver.bar(displayName).modules.systemUsage.tempStatsEnabled ||
ConfigResolver.bar(displayName).modules.systemUsage.cpuStatsEnabled ||
ConfigResolver.bar(displayName).modules.systemUsage.memoryStatsEnabled
// Normalize values so UI always receives correct ranges
function normalize(v) {
if (v > 1) return v / 100
return v
}
function percent(v) {
if (v <= 1) return Math.round(v * 100)
return Math.round(v)
}
Rectangle {
id: bgRect
color: Appearance.m3colors.m3paddingContainer
radius: ConfigResolver.bar(displayName).modules.radius * Config.runtime.appearance.rounding.factor
implicitWidth: child.implicitWidth + Metrics.margin("large")
implicitHeight: ConfigResolver.bar(displayName).modules.height
}
RowLayout {
id: child
anchors.centerIn: parent
spacing: Metrics.spacing(4)
// CPU
CircularProgressBar {
rotation: !isHorizontal ? 270 : 0
icon: "developer_board"
visible: ConfigResolver.bar(displayName).modules.systemUsage.cpuStatsEnabled
iconSize: Metrics.iconSize(14)
value: normalize(SystemDetails.cpuPercent)
Layout.bottomMargin: Metrics.margin(2)
}
StyledText {
visible: ConfigResolver.bar(displayName).modules.systemUsage.cpuStatsEnabled && isHorizontal
animate: false
text: percent(SystemDetails.cpuPercent) + "%"
}
// RAM
CircularProgressBar {
rotation: !isHorizontal ? 270 : 0
Layout.leftMargin: Metrics.margin(4)
icon: "memory_alt"
visible: ConfigResolver.bar(displayName).modules.systemUsage.memoryStatsEnabled
iconSize: Metrics.iconSize(14)
value: normalize(SystemDetails.ramPercent)
Layout.bottomMargin: Metrics.margin(2)
}
StyledText {
visible: ConfigResolver.bar(displayName).modules.systemUsage.memoryStatsEnabled && isHorizontal
animate: false
text: percent(SystemDetails.ramPercent) + "%"
}
// Temperature
CircularProgressBar {
rotation: !isHorizontal ? 270 : 0
visible: ConfigResolver.bar(displayName).modules.systemUsage.tempStatsEnabled
Layout.leftMargin: Metrics.margin(4)
icon: "device_thermostat"
iconSize: Metrics.iconSize(14)
value: normalize(SystemDetails.cpuTempPercent)
Layout.bottomMargin: Metrics.margin(2)
}
StyledText {
visible: ConfigResolver.bar(displayName).modules.systemUsage.tempStatsEnabled && isHorizontal
animate: false
text: percent(SystemDetails.cpuTempPercent) + "%"
}
}
}