added two new themes, reworked Crypto.qml and Stats.qml, standardized the buttons for the modules, added a new Sidebar widget which contains new 3 modules

This commit is contained in:
SomeElse
2026-05-28 08:24:03 +00:00
parent b9708ddfd0
commit 1b9ee3bbb3
39 changed files with 3652 additions and 267 deletions

View File

@@ -28,6 +28,8 @@ ModuleChip {
property real cpuVal: 0
property real memVal: 0
property real diskVal: 0
property real cpuTemp: -1
property real gpuTemp: -1
Timer {
interval: 2000
@@ -39,7 +41,20 @@ ModuleChip {
Process {
id: statsProc
command: ["sh", "-c", "top -bn1 | awk '/^%Cpu/ {print 100-$8}'; free | awk '/Mem:/ {print ($2-$7)/$2 * 100}'; df / --output=pcent | tail -1 | tr -dc '0-9'"]
command: ["sh", "-c",
"top -bn1 | awk '/^%Cpu/ {print 100-$8}'; " +
"free | awk '/Mem:/ {print ($2-$7)/$2 * 100}'; " +
"df / --output=pcent | tail -1 | awk '{print $1}'; " +
"ct=-1; for d in /sys/class/hwmon/hwmon*; do " +
"n=$(cat $d/name 2>/dev/null); " +
"if echo \"$n\" | grep -qiE 'coretemp|k10temp|cpu_thermal'; then " +
"ct=$(( $(cat $d/temp1_input 2>/dev/null) / 1000 )); break; " +
"fi; done; echo $ct; " +
"gt=-1; for d in /sys/class/hwmon/hwmon*; do " +
"n=$(cat $d/name 2>/dev/null); " +
"if echo \"$n\" | grep -qiE 'amdgpu|radeon'; then " +
"gt=$(( $(cat $d/temp1_input 2>/dev/null) / 1000 )); break; " +
"fi; done; echo $gt"]
property string rawOutput: ""
stdout: SplitParser {
onRead: data => { statsProc.rawOutput += data + "\n" }
@@ -47,10 +62,12 @@ ModuleChip {
onRunningChanged: {
if (!statsProc.running && statsProc.rawOutput) {
const lines = statsProc.rawOutput.trim().split("\n")
if (lines.length >= 3) {
if (lines.length >= 5) {
let v = parseFloat(lines[0]); root.cpuVal = isNaN(v) ? 0 : v
v = parseFloat(lines[1]); root.memVal = isNaN(v) ? 0 : v
v = parseFloat(lines[2]); root.diskVal = isNaN(v) ? 0 : v
v = parseFloat(lines[3]); root.cpuTemp = isNaN(v) ? -1 : v
v = parseFloat(lines[4]); root.gpuTemp = isNaN(v) ? -1 : v
}
statsProc.rawOutput = ""
}
@@ -63,9 +80,11 @@ ModuleChip {
property real value: 0.0
property string icon: ""
property string label: ""
property real iconXOff: 0
property color ringColor: Cfg.Config.theme.accent
property color trackColor: Cfg.Config.theme.statsTrackColor
property string labelSuffix:"%"
Behavior on value {
NumberAnimation { duration: 800; easing.type: Easing.OutCubic }
@@ -75,7 +94,7 @@ ModuleChip {
Text {
id: leftPct
text: Math.round(ring.value) + "%"
text: Math.round(ring.value) + ring.labelSuffix
color: ring.ringColor
font.pixelSize: Cfg.Config.statsRingFontSize
font.bold: true
@@ -148,7 +167,7 @@ ModuleChip {
Text {
id: rightPct
text: Math.round(ring.value) + "%"
text: Math.round(ring.value) + ring.labelSuffix
color: ring.ringColor
font.pixelSize: Cfg.Config.statsRingFontSize
font.bold: true
@@ -171,25 +190,51 @@ ModuleChip {
spacing: 8
StatRing {
visible: Cfg.Config.statsShowCpu
value: root.cpuVal
icon: "󰍛"
label: "CPU"
iconXOff: 0.3
ringColor: root.t.statsCpuColor
trackColor: root.t.statsTrackColor
}
StatRing {
visible: Cfg.Config.statsShowMem
value: root.memVal
icon: "󰑭"
label: "RAM"
ringColor: root.t.statsMemColor
trackColor: root.t.statsTrackColor
}
StatRing {
visible: Cfg.Config.statsShowDisk
value: root.diskVal
icon: "󰒋"
label: "DISK"
ringColor: root.t.statsDiskColor
trackColor: root.t.statsTrackColor
}
StatRing {
visible: Cfg.Config.statsShowCpuTemp && root.cpuTemp >= 0
value: root.cpuTemp
icon: "󰔄"
label: "CPU°C"
ringColor: root.t.statsCpuTempColor
trackColor: root.t.statsTrackColor
labelSuffix: "°C"
}
StatRing {
visible: Cfg.Config.statsShowGpuTemp && root.gpuTemp >= 0
value: root.gpuTemp
icon: "󰾲"
label: "GPU°C"
ringColor: root.t.statsGpuColor
trackColor: root.t.statsTrackColor
labelSuffix: "°C"
}
}
}