mirror of
https://github.com/belsabbagh/dotfiles.git
synced 2026-04-11 09:36:46 +00:00
quickshell and hyprland additions
This commit is contained in:
@@ -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) + "%"
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user