From bb3e36281195d1990b966271ade27906038188a1 Mon Sep 17 00:00:00 2001
From: Karthik Mudaliar <45604318+karthikmudaliarX@users.noreply.github.com>
Date: Sun, 19 Jul 2026 13:04:03 +0530
Subject: [PATCH 1/6] system-monitor-graph@rcassani: Add CPU fan monitoring
---
system-monitor-graph@rcassani/README.md | 3 +-
.../system-monitor-graph@rcassani/desklet.js | 74 ++++++++++++++++++-
.../metadata.json | 2 +-
.../system-monitor-graph@rcassani/po/ca.po | 64 +++++++++-------
.../system-monitor-graph@rcassani/po/da.po | 66 ++++++++++-------
.../system-monitor-graph@rcassani/po/de.po | 64 +++++++++-------
.../system-monitor-graph@rcassani/po/es.po | 66 ++++++++++-------
.../system-monitor-graph@rcassani/po/fi.po | 64 +++++++++-------
.../system-monitor-graph@rcassani/po/hu.po | 66 ++++++++++-------
.../system-monitor-graph@rcassani/po/it.po | 64 +++++++++-------
.../system-monitor-graph@rcassani/po/nl.po | 64 +++++++++-------
.../system-monitor-graph@rcassani/po/pt_BR.po | 64 +++++++++-------
.../system-monitor-graph@rcassani/po/ro.po | 64 +++++++++-------
.../system-monitor-graph@rcassani/po/ru.po | 64 +++++++++-------
.../po/system-monitor-graph@rcassani.pot | 68 ++++++++++-------
.../system-monitor-graph@rcassani/po/vi.po | 64 +++++++++-------
16 files changed, 575 insertions(+), 346 deletions(-)
diff --git a/system-monitor-graph@rcassani/README.md b/system-monitor-graph@rcassani/README.md
index c0fec6796..5802925a6 100644
--- a/system-monitor-graph@rcassani/README.md
+++ b/system-monitor-graph@rcassani/README.md
@@ -15,7 +15,7 @@ This project has been inspired from other Desklets such as [Disk Space](https://
| System variable | Description |
| ----------- | ----------- |
| CPU | CPU usage in % |
-| CPU Temperature | CPU temperature C or F |
+| CPU Temperature | CPU temperature C or F, with fan on/off status and RPM when exposed by hwmon |
| RAM | Used RAM as % of total, and in GB |
| Swap | Used Swap space as % of total, and in GB |
| HDD | % of I/O activity, and free and total space in the filesystem (partition) indicated by the user |
@@ -27,6 +27,7 @@ This project has been inspired from other Desklets such as [Disk Space](https://
Each variable is calculated every `Refresh interval` seconds (Min. 1 s, Max. 60 s.), and the graph shows the last `Duration of the graph` period (Min. 30 s, Max. 60 min).
GPU graphs work for NVIDIA, discrete AMD and built-in AMD.
+Fan monitoring uses CPU-labelled sensors and known laptop cooling drivers. It avoids guessing from unrelated unlabelled fans, and systems that do not expose identifiable CPU fan speed continue to show CPU temperature without a fan readout.
### Customizable visual elements
diff --git a/system-monitor-graph@rcassani/files/system-monitor-graph@rcassani/desklet.js b/system-monitor-graph@rcassani/files/system-monitor-graph@rcassani/desklet.js
index 317fc833e..d912be617 100644
--- a/system-monitor-graph@rcassani/files/system-monitor-graph@rcassani/desklet.js
+++ b/system-monitor-graph@rcassani/files/system-monitor-graph@rcassani/desklet.js
@@ -190,6 +190,8 @@ SystemMonitorGraph.prototype = {
// temperature values
this.cpu_temperature = NaN;
this.gpu_temperature = NaN;
+ this.cpu_fan_rpm = NaN;
+ this.cpu_fan_file = "";
// set colors
switch (this.type) {
@@ -232,6 +234,9 @@ SystemMonitorGraph.prototype = {
});
}
});
+ if (this.type == "cpu" && this.cpu_variable == "temperature") {
+ this.rediscover_cpu_fan();
+ }
// find file for overall AMD GPU temperature
let gpu_path_temp = "/sys/class/drm/card" + this.gpu_id + "/device/hwmon/";
this.get_temperature_file_by_label(gpu_path_temp, 'edge', (result) => {
@@ -280,15 +285,22 @@ SystemMonitorGraph.prototype = {
case "temperature":
this.get_cpu_temperature(this.cpu_temperature_file);
+ this.get_cpu_fan_speed(this.cpu_fan_file);
// scale CPU temperature based on [CPU_TEMP_MIN, CPU_TEMP_MAX]
value = 1.0 * (this.cpu_temperature - CPU_TEMP_MIN) / (CPU_TEMP_MAX - CPU_TEMP_MIN);
value = value < 0 ? 0 : value > 1 ? 1 : value;
- text1 = _("CPU Temperature");
+ text1 = _("CPU Temp");
if (this.temperature_units_cpu == "C") {
text2 = this.cpu_temperature.toString() + "°C";
} else if (this.temperature_units_cpu == "F") {
text2 = Math.round(this.cpu_temperature * 9 / 5 + 32).toString() + "°F";
}
+ if (!isNaN(this.cpu_fan_rpm)) {
+ let fan_state = this.cpu_fan_rpm > 0 ? _("ON") : _("OFF");
+ text3 = _("Fan") + " " + fan_state + " · " + this.cpu_fan_rpm + " RPM";
+ } else if (this.cpu_fan_file != "") {
+ text3 = _("Fan") + " —";
+ }
break;
}
break;
@@ -1142,6 +1154,66 @@ SystemMonitorGraph.prototype = {
});
},
+ get_cpu_fan_file: function(callback) {
+ // Prefer explicitly labelled CPU fans, then known laptop cooling drivers.
+ // Do not guess from an unrelated, unlabelled hwmon fan.
+ let script = `
+ for label_file in /sys/class/hwmon/hwmon*/fan*_label; do
+ [ -r "$label_file" ] || continue
+ label=$(cat "$label_file" 2>/dev/null) || continue
+ case "$label" in
+ *CPU*|*cpu*|*Processor*|*processor*)
+ fan_file="\${label_file%_label}_input"
+ [ -r "$fan_file" ] && { printf '%s' "$fan_file"; exit; }
+ ;;
+ esac
+ done
+ for name_file in /sys/class/hwmon/hwmon*/name; do
+ [ -r "$name_file" ] || continue
+ driver=$(cat "$name_file" 2>/dev/null) || continue
+ case "$driver" in
+ dell_smm|thinkpad)
+ hwmon_dir=\${name_file%/name}
+ fan_file="$hwmon_dir/fan1_input"
+ [ -r "$fan_file" ] && { printf '%s' "$fan_file"; exit; }
+ ;;
+ esac
+ done
+ `;
+ spawnAsyncWithOutput(['/bin/sh', '-c', script], (success, output) => {
+ callback(success && output ? output.trim() : "");
+ });
+ },
+
+ rediscover_cpu_fan: function() {
+ // Clear a stale hwmon path first. If discovery finds nothing, the CPU card
+ // omits fan data instead of repeatedly spawning another lookup.
+ this.cpu_fan_file = "";
+ this.cpu_fan_rpm = NaN;
+ this.get_cpu_fan_file((result) => {
+ this.cpu_fan_file = result;
+ });
+ },
+
+ get_cpu_fan_speed: function(fan_file) {
+ if(fan_file == null || fan_file == "") return;
+ Gio.file_new_for_path(fan_file).load_contents_async(null, (file, response) => {
+ try {
+ let [success, contents, tag] = file.load_contents_finish(response);
+ if (success) {
+ let rpm = parseInt(ByteArray.toString(contents).trim());
+ this.cpu_fan_rpm = isNaN(rpm) ? NaN : Math.max(0, rpm);
+ } else {
+ this.rediscover_cpu_fan();
+ }
+ GLib.free(contents);
+ } catch(error) {
+ this.rediscover_cpu_fan();
+ global.log('CPU fan speed file read error: ' + error.toString());
+ }
+ });
+ },
+
get_temperature_file_by_label: function(path, label, callback) {
// search for temperture file: 'path'/*/temp*_input associated to file path/*/temp*_label with content 'label'
let argv = ['/bin/sh', '-c', "grep -s -l -d skip '" + label + "' " + path + "*/temp*_label | sed 's/_label/_input/' | head -n 1"];
diff --git a/system-monitor-graph@rcassani/files/system-monitor-graph@rcassani/metadata.json b/system-monitor-graph@rcassani/files/system-monitor-graph@rcassani/metadata.json
index dd88a9bac..f8c9b67a4 100644
--- a/system-monitor-graph@rcassani/files/system-monitor-graph@rcassani/metadata.json
+++ b/system-monitor-graph@rcassani/files/system-monitor-graph@rcassani/metadata.json
@@ -3,6 +3,6 @@
"uuid": "system-monitor-graph@rcassani",
"name": "System monitor graph",
"description": "Creates graphs for system variables.",
- "version": "2.1",
+ "version": "2.2",
"prevent-decorations": true
}
diff --git a/system-monitor-graph@rcassani/files/system-monitor-graph@rcassani/po/ca.po b/system-monitor-graph@rcassani/files/system-monitor-graph@rcassani/po/ca.po
index a8337abe9..02e3445d6 100644
--- a/system-monitor-graph@rcassani/files/system-monitor-graph@rcassani/po/ca.po
+++ b/system-monitor-graph@rcassani/files/system-monitor-graph@rcassani/po/ca.po
@@ -8,7 +8,7 @@ msgstr ""
"Project-Id-Version: \n"
"Report-Msgid-Bugs-To: https://github.com/linuxmint/cinnamon-spices-desklets/"
"issues\n"
-"POT-Creation-Date: 2026-03-23 21:24-0400\n"
+"POT-Creation-Date: 2026-07-19 12:45+0530\n"
"PO-Revision-Date: 2025-09-29 04:41+0200\n"
"Last-Translator: Daniel \n"
"Language-Team: \n"
@@ -20,104 +20,116 @@ msgstr ""
"X-Generator: Poedit 3.6\n"
#. settings-schema.json->type->options
-#. desklet.js:275
+#. desklet.js:284
msgid "CPU"
msgstr "CPU"
-#. desklet.js:284
-msgid "CPU Temperature"
+#. desklet.js:294
+msgid "CPU Temp"
+msgstr ""
+
+#. desklet.js:301
+msgid "ON"
+msgstr ""
+
+#. desklet.js:301
+msgid "OFF"
+msgstr ""
+
+#. desklet.js:302 desklet.js:304
+msgid "Fan"
msgstr ""
-#. desklet.js:301 desklet.js:319 desklet.js:339 desklet.js:380 desklet.js:684
+#. desklet.js:317 desklet.js:335 desklet.js:355 desklet.js:396 desklet.js:700
msgid "GB"
msgstr "GB"
-#. desklet.js:304 desklet.js:322 desklet.js:342 desklet.js:383 desklet.js:698
+#. desklet.js:320 desklet.js:338 desklet.js:358 desklet.js:399 desklet.js:714
msgid "GiB"
msgstr "GiB"
#. settings-schema.json->type->options
-#. desklet.js:306
+#. desklet.js:322
msgid "RAM"
msgstr "RAM"
#. settings-schema.json->type->options
-#. desklet.js:324
+#. desklet.js:340
msgid "Swap"
msgstr "Swap"
-#. desklet.js:347
+#. desklet.js:363
msgid "free of"
msgstr "lliure de"
-#. desklet.js:363
+#. desklet.js:379
msgid "GPU Usage"
msgstr "Ús de GPU"
-#. desklet.js:385
+#. desklet.js:401
msgid "GPU Memory"
msgstr "Memòria de la GPU"
-#. desklet.js:401
+#. desklet.js:417
#, fuzzy
msgid "GPU Temperature"
msgstr "Fabricant de la GPU"
#. settings-schema.json->type->options
-#. desklet.js:415
+#. desklet.js:431
msgid "Network"
msgstr "Xarxa"
#. settings-schema.json->type->options
-#. desklet.js:428
+#. desklet.js:444
msgid "Battery"
msgstr ""
-#. desklet.js:431
+#. desklet.js:447
msgid "Fully charged"
msgstr ""
-#. desklet.js:432
+#. desklet.js:448
msgid "Not charging"
msgstr ""
-#. desklet.js:434
+#. desklet.js:450
msgid " hrs"
msgstr ""
-#. desklet.js:655 desklet.js:678
+#. desklet.js:671 desklet.js:694
msgid "b"
msgstr "b"
-#. desklet.js:657 desklet.js:692 desklet.js:706
+#. desklet.js:673 desklet.js:708 desklet.js:722
msgid "B"
msgstr "B"
-#. desklet.js:670
+#. desklet.js:686
msgid "Gb"
msgstr "Gb"
-#. desklet.js:673
+#. desklet.js:689
msgid "Mb"
msgstr "Mb"
-#. desklet.js:676
+#. desklet.js:692
msgid "Kb"
msgstr "Kb"
-#. desklet.js:687
+#. desklet.js:703
msgid "MB"
msgstr "MB"
-#. desklet.js:690
+#. desklet.js:706
msgid "KB"
msgstr "KB"
-#. desklet.js:701
+#. desklet.js:717
msgid "MiB"
msgstr "MiB"
-#. desklet.js:704
+#. desklet.js:720
msgid "KiB"
msgstr "KiB"
diff --git a/system-monitor-graph@rcassani/files/system-monitor-graph@rcassani/po/da.po b/system-monitor-graph@rcassani/files/system-monitor-graph@rcassani/po/da.po
index e9776c8a6..32844c1c3 100644
--- a/system-monitor-graph@rcassani/files/system-monitor-graph@rcassani/po/da.po
+++ b/system-monitor-graph@rcassani/files/system-monitor-graph@rcassani/po/da.po
@@ -8,7 +8,7 @@ msgstr ""
"Project-Id-Version: \n"
"Report-Msgid-Bugs-To: https://github.com/linuxmint/cinnamon-spices-desklets/"
"issues\n"
-"POT-Creation-Date: 2026-03-23 21:24-0400\n"
+"POT-Creation-Date: 2026-07-19 12:45+0530\n"
"PO-Revision-Date: 2026-04-06 14:06+0200\n"
"Last-Translator: Alan Mortensen \n"
"Language-Team: \n"
@@ -20,103 +20,115 @@ msgstr ""
"X-Generator: Poedit 3.4.2\n"
#. settings-schema.json->type->options
-#. desklet.js:275
+#. desklet.js:284
msgid "CPU"
msgstr "CPU"
-#. desklet.js:284
-msgid "CPU Temperature"
-msgstr "CPU-temperatur"
+#. desklet.js:294
+msgid "CPU Temp"
+msgstr ""
+
+#. desklet.js:301
+msgid "ON"
+msgstr ""
+
+#. desklet.js:301
+msgid "OFF"
+msgstr ""
-#. desklet.js:301 desklet.js:319 desklet.js:339 desklet.js:380 desklet.js:684
+#. desklet.js:302 desklet.js:304
+msgid "Fan"
+msgstr ""
+
+#. desklet.js:317 desklet.js:335 desklet.js:355 desklet.js:396 desklet.js:700
msgid "GB"
msgstr "GB"
-#. desklet.js:304 desklet.js:322 desklet.js:342 desklet.js:383 desklet.js:698
+#. desklet.js:320 desklet.js:338 desklet.js:358 desklet.js:399 desklet.js:714
msgid "GiB"
msgstr "GiB"
#. settings-schema.json->type->options
-#. desklet.js:306
+#. desklet.js:322
msgid "RAM"
msgstr "RAM"
#. settings-schema.json->type->options
-#. desklet.js:324
+#. desklet.js:340
msgid "Swap"
msgstr "Swap"
-#. desklet.js:347
+#. desklet.js:363
msgid "free of"
msgstr "ledig ud af"
-#. desklet.js:363
+#. desklet.js:379
msgid "GPU Usage"
msgstr "GPU-forbrug"
-#. desklet.js:385
+#. desklet.js:401
msgid "GPU Memory"
msgstr "GPU-hukommelse"
-#. desklet.js:401
+#. desklet.js:417
msgid "GPU Temperature"
msgstr "GPU-temperatur"
#. settings-schema.json->type->options
-#. desklet.js:415
+#. desklet.js:431
msgid "Network"
msgstr "Netværk"
#. settings-schema.json->type->options
-#. desklet.js:428
+#. desklet.js:444
msgid "Battery"
msgstr "Batteri"
-#. desklet.js:431
+#. desklet.js:447
msgid "Fully charged"
msgstr "Fuldt opladet"
-#. desklet.js:432
+#. desklet.js:448
msgid "Not charging"
msgstr "Oplader ikke"
-#. desklet.js:434
+#. desklet.js:450
msgid " hrs"
msgstr "timer"
-#. desklet.js:655 desklet.js:678
+#. desklet.js:671 desklet.js:694
msgid "b"
msgstr "b"
-#. desklet.js:657 desklet.js:692 desklet.js:706
+#. desklet.js:673 desklet.js:708 desklet.js:722
msgid "B"
msgstr "B"
-#. desklet.js:670
+#. desklet.js:686
msgid "Gb"
msgstr "Gb"
-#. desklet.js:673
+#. desklet.js:689
msgid "Mb"
msgstr "Mb"
-#. desklet.js:676
+#. desklet.js:692
msgid "Kb"
msgstr "Kb"
-#. desklet.js:687
+#. desklet.js:703
msgid "MB"
msgstr "MB"
-#. desklet.js:690
+#. desklet.js:706
msgid "KB"
msgstr "KB"
-#. desklet.js:701
+#. desklet.js:717
msgid "MiB"
msgstr "MiB"
-#. desklet.js:704
+#. desklet.js:720
msgid "KiB"
msgstr "KiB"
diff --git a/system-monitor-graph@rcassani/files/system-monitor-graph@rcassani/po/de.po b/system-monitor-graph@rcassani/files/system-monitor-graph@rcassani/po/de.po
index a3791e3f0..6c119b547 100644
--- a/system-monitor-graph@rcassani/files/system-monitor-graph@rcassani/po/de.po
+++ b/system-monitor-graph@rcassani/files/system-monitor-graph@rcassani/po/de.po
@@ -8,7 +8,7 @@ msgstr ""
"Project-Id-Version: \n"
"Report-Msgid-Bugs-To: https://github.com/linuxmint/cinnamon-spices-desklets/"
"issues\n"
-"POT-Creation-Date: 2026-03-23 21:24-0400\n"
+"POT-Creation-Date: 2026-07-19 12:45+0530\n"
"PO-Revision-Date: 2022-04-17 18:13+0100\n"
"Last-Translator: Georg Sieber\n"
"Language-Team: \n"
@@ -18,106 +18,118 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n"
#. settings-schema.json->type->options
-#. desklet.js:275
+#. desklet.js:284
msgid "CPU"
msgstr "CPU"
-#. desklet.js:284
-msgid "CPU Temperature"
+#. desklet.js:294
+msgid "CPU Temp"
+msgstr ""
+
+#. desklet.js:301
+msgid "ON"
+msgstr ""
+
+#. desklet.js:301
+msgid "OFF"
+msgstr ""
+
+#. desklet.js:302 desklet.js:304
+msgid "Fan"
msgstr ""
-#. desklet.js:301 desklet.js:319 desklet.js:339 desklet.js:380 desklet.js:684
+#. desklet.js:317 desklet.js:335 desklet.js:355 desklet.js:396 desklet.js:700
msgid "GB"
msgstr "GB"
-#. desklet.js:304 desklet.js:322 desklet.js:342 desklet.js:383 desklet.js:698
+#. desklet.js:320 desklet.js:338 desklet.js:358 desklet.js:399 desklet.js:714
msgid "GiB"
msgstr "GiB"
#. settings-schema.json->type->options
-#. desklet.js:306
+#. desklet.js:322
msgid "RAM"
msgstr "RAM"
#. settings-schema.json->type->options
-#. desklet.js:324
+#. desklet.js:340
msgid "Swap"
msgstr "Swap"
-#. desklet.js:347
+#. desklet.js:363
msgid "free of"
msgstr "frei von"
-#. desklet.js:363
+#. desklet.js:379
msgid "GPU Usage"
msgstr "GPU-Auslastung"
-#. desklet.js:385
+#. desklet.js:401
msgid "GPU Memory"
msgstr "GPU-Speicher"
-#. desklet.js:401
+#. desklet.js:417
#, fuzzy
msgid "GPU Temperature"
msgstr "GPU-Hersteller"
#. settings-schema.json->type->options
-#. desklet.js:415
+#. desklet.js:431
msgid "Network"
msgstr ""
#. settings-schema.json->type->options
-#. desklet.js:428
+#. desklet.js:444
msgid "Battery"
msgstr ""
-#. desklet.js:431
+#. desklet.js:447
msgid "Fully charged"
msgstr ""
-#. desklet.js:432
+#. desklet.js:448
msgid "Not charging"
msgstr ""
-#. desklet.js:434
+#. desklet.js:450
msgid " hrs"
msgstr ""
-#. desklet.js:655 desklet.js:678
+#. desklet.js:671 desklet.js:694
msgid "b"
msgstr ""
-#. desklet.js:657 desklet.js:692 desklet.js:706
+#. desklet.js:673 desklet.js:708 desklet.js:722
#, fuzzy
msgid "B"
msgstr "GB"
-#. desklet.js:670
+#. desklet.js:686
msgid "Gb"
msgstr ""
-#. desklet.js:673
+#. desklet.js:689
msgid "Mb"
msgstr ""
-#. desklet.js:676
+#. desklet.js:692
msgid "Kb"
msgstr ""
-#. desklet.js:687
+#. desklet.js:703
msgid "MB"
msgstr ""
-#. desklet.js:690
+#. desklet.js:706
msgid "KB"
msgstr ""
-#. desklet.js:701
+#. desklet.js:717
#, fuzzy
msgid "MiB"
msgstr "GiB"
-#. desklet.js:704
+#. desklet.js:720
#, fuzzy
msgid "KiB"
msgstr "GiB"
diff --git a/system-monitor-graph@rcassani/files/system-monitor-graph@rcassani/po/es.po b/system-monitor-graph@rcassani/files/system-monitor-graph@rcassani/po/es.po
index 053ca84d9..cee50b765 100644
--- a/system-monitor-graph@rcassani/files/system-monitor-graph@rcassani/po/es.po
+++ b/system-monitor-graph@rcassani/files/system-monitor-graph@rcassani/po/es.po
@@ -8,7 +8,7 @@ msgstr ""
"Project-Id-Version: \n"
"Report-Msgid-Bugs-To: https://github.com/linuxmint/cinnamon-spices-desklets/"
"issues\n"
-"POT-Creation-Date: 2026-03-23 21:24-0400\n"
+"POT-Creation-Date: 2026-07-19 12:45+0530\n"
"PO-Revision-Date: 2026-03-29 10:45-0300\n"
"Last-Translator: Daniel \n"
"Language-Team: \n"
@@ -20,103 +20,115 @@ msgstr ""
"X-Generator: Poedit 3.9\n"
#. settings-schema.json->type->options
-#. desklet.js:275
+#. desklet.js:284
msgid "CPU"
msgstr "CPU"
-#. desklet.js:284
-msgid "CPU Temperature"
-msgstr "Temperatura de la CPU"
+#. desklet.js:294
+msgid "CPU Temp"
+msgstr ""
+
+#. desklet.js:301
+msgid "ON"
+msgstr ""
+
+#. desklet.js:301
+msgid "OFF"
+msgstr ""
-#. desklet.js:301 desklet.js:319 desklet.js:339 desklet.js:380 desklet.js:684
+#. desklet.js:302 desklet.js:304
+msgid "Fan"
+msgstr ""
+
+#. desklet.js:317 desklet.js:335 desklet.js:355 desklet.js:396 desklet.js:700
msgid "GB"
msgstr "GB"
-#. desklet.js:304 desklet.js:322 desklet.js:342 desklet.js:383 desklet.js:698
+#. desklet.js:320 desklet.js:338 desklet.js:358 desklet.js:399 desklet.js:714
msgid "GiB"
msgstr "GiB"
#. settings-schema.json->type->options
-#. desklet.js:306
+#. desklet.js:322
msgid "RAM"
msgstr "RAM"
#. settings-schema.json->type->options
-#. desklet.js:324
+#. desklet.js:340
msgid "Swap"
msgstr "Swap"
-#. desklet.js:347
+#. desklet.js:363
msgid "free of"
msgstr "libres de"
-#. desklet.js:363
+#. desklet.js:379
msgid "GPU Usage"
msgstr "Uso de GPU"
-#. desklet.js:385
+#. desklet.js:401
msgid "GPU Memory"
msgstr "Memoria de GPU"
-#. desklet.js:401
+#. desklet.js:417
msgid "GPU Temperature"
msgstr "Temperatura de la GPU"
#. settings-schema.json->type->options
-#. desklet.js:415
+#. desklet.js:431
msgid "Network"
msgstr "Red"
#. settings-schema.json->type->options
-#. desklet.js:428
+#. desklet.js:444
msgid "Battery"
msgstr "Batería"
-#. desklet.js:431
+#. desklet.js:447
msgid "Fully charged"
msgstr "Completamente cargada"
-#. desklet.js:432
+#. desklet.js:448
msgid "Not charging"
msgstr "No se está cargando"
-#. desklet.js:434
+#. desklet.js:450
msgid " hrs"
msgstr " hrs"
-#. desklet.js:655 desklet.js:678
+#. desklet.js:671 desklet.js:694
msgid "b"
msgstr "b"
-#. desklet.js:657 desklet.js:692 desklet.js:706
+#. desklet.js:673 desklet.js:708 desklet.js:722
msgid "B"
msgstr "B"
-#. desklet.js:670
+#. desklet.js:686
msgid "Gb"
msgstr "Gb"
-#. desklet.js:673
+#. desklet.js:689
msgid "Mb"
msgstr "Mb"
-#. desklet.js:676
+#. desklet.js:692
msgid "Kb"
msgstr "Kb"
-#. desklet.js:687
+#. desklet.js:703
msgid "MB"
msgstr "MB"
-#. desklet.js:690
+#. desklet.js:706
msgid "KB"
msgstr "KB"
-#. desklet.js:701
+#. desklet.js:717
msgid "MiB"
msgstr "MiB"
-#. desklet.js:704
+#. desklet.js:720
msgid "KiB"
msgstr "KiB"
diff --git a/system-monitor-graph@rcassani/files/system-monitor-graph@rcassani/po/fi.po b/system-monitor-graph@rcassani/files/system-monitor-graph@rcassani/po/fi.po
index 200c6a592..ded36d304 100644
--- a/system-monitor-graph@rcassani/files/system-monitor-graph@rcassani/po/fi.po
+++ b/system-monitor-graph@rcassani/files/system-monitor-graph@rcassani/po/fi.po
@@ -8,7 +8,7 @@ msgstr ""
"Project-Id-Version: \n"
"Report-Msgid-Bugs-To: https://github.com/linuxmint/cinnamon-spices-desklets/"
"issues\n"
-"POT-Creation-Date: 2026-03-23 21:24-0400\n"
+"POT-Creation-Date: 2026-07-19 12:45+0530\n"
"PO-Revision-Date: 2024-11-09 13:32+0200\n"
"Last-Translator: Kimmo Kujansuu \n"
"Language-Team: \n"
@@ -20,106 +20,118 @@ msgstr ""
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
#. settings-schema.json->type->options
-#. desklet.js:275
+#. desklet.js:284
msgid "CPU"
msgstr "CPU"
-#. desklet.js:284
-msgid "CPU Temperature"
+#. desklet.js:294
+msgid "CPU Temp"
+msgstr ""
+
+#. desklet.js:301
+msgid "ON"
+msgstr ""
+
+#. desklet.js:301
+msgid "OFF"
+msgstr ""
+
+#. desklet.js:302 desklet.js:304
+msgid "Fan"
msgstr ""
-#. desklet.js:301 desklet.js:319 desklet.js:339 desklet.js:380 desklet.js:684
+#. desklet.js:317 desklet.js:335 desklet.js:355 desklet.js:396 desklet.js:700
msgid "GB"
msgstr "GB"
-#. desklet.js:304 desklet.js:322 desklet.js:342 desklet.js:383 desklet.js:698
+#. desklet.js:320 desklet.js:338 desklet.js:358 desklet.js:399 desklet.js:714
msgid "GiB"
msgstr "GiB"
#. settings-schema.json->type->options
-#. desklet.js:306
+#. desklet.js:322
msgid "RAM"
msgstr "RAM"
#. settings-schema.json->type->options
-#. desklet.js:324
+#. desklet.js:340
msgid "Swap"
msgstr "Swap"
-#. desklet.js:347
+#. desklet.js:363
msgid "free of"
msgstr "vapaa"
-#. desklet.js:363
+#. desklet.js:379
msgid "GPU Usage"
msgstr "GPU Käyttö"
-#. desklet.js:385
+#. desklet.js:401
msgid "GPU Memory"
msgstr "GPU Muisti"
-#. desklet.js:401
+#. desklet.js:417
#, fuzzy
msgid "GPU Temperature"
msgstr "GPU valmistaja"
#. settings-schema.json->type->options
-#. desklet.js:415
+#. desklet.js:431
msgid "Network"
msgstr ""
#. settings-schema.json->type->options
-#. desklet.js:428
+#. desklet.js:444
msgid "Battery"
msgstr ""
-#. desklet.js:431
+#. desklet.js:447
msgid "Fully charged"
msgstr ""
-#. desklet.js:432
+#. desklet.js:448
msgid "Not charging"
msgstr ""
-#. desklet.js:434
+#. desklet.js:450
msgid " hrs"
msgstr ""
-#. desklet.js:655 desklet.js:678
+#. desklet.js:671 desklet.js:694
msgid "b"
msgstr ""
-#. desklet.js:657 desklet.js:692 desklet.js:706
+#. desklet.js:673 desklet.js:708 desklet.js:722
#, fuzzy
msgid "B"
msgstr "GB"
-#. desklet.js:670
+#. desklet.js:686
msgid "Gb"
msgstr ""
-#. desklet.js:673
+#. desklet.js:689
msgid "Mb"
msgstr ""
-#. desklet.js:676
+#. desklet.js:692
msgid "Kb"
msgstr ""
-#. desklet.js:687
+#. desklet.js:703
msgid "MB"
msgstr ""
-#. desklet.js:690
+#. desklet.js:706
msgid "KB"
msgstr ""
-#. desklet.js:701
+#. desklet.js:717
#, fuzzy
msgid "MiB"
msgstr "GiB"
-#. desklet.js:704
+#. desklet.js:720
#, fuzzy
msgid "KiB"
msgstr "GiB"
diff --git a/system-monitor-graph@rcassani/files/system-monitor-graph@rcassani/po/hu.po b/system-monitor-graph@rcassani/files/system-monitor-graph@rcassani/po/hu.po
index b29769026..d052ecbac 100644
--- a/system-monitor-graph@rcassani/files/system-monitor-graph@rcassani/po/hu.po
+++ b/system-monitor-graph@rcassani/files/system-monitor-graph@rcassani/po/hu.po
@@ -8,7 +8,7 @@ msgstr ""
"Project-Id-Version: \n"
"Report-Msgid-Bugs-To: https://github.com/linuxmint/cinnamon-spices-desklets/"
"issues\n"
-"POT-Creation-Date: 2026-03-23 21:24-0400\n"
+"POT-Creation-Date: 2026-07-19 12:45+0530\n"
"PO-Revision-Date: 2026-04-06 21:25+0200\n"
"Last-Translator: \n"
"Language-Team: \n"
@@ -20,103 +20,115 @@ msgstr ""
"X-Generator: Poedit 3.4.2\n"
#. settings-schema.json->type->options
-#. desklet.js:275
+#. desklet.js:284
msgid "CPU"
msgstr "CPU"
-#. desklet.js:284
-msgid "CPU Temperature"
-msgstr "CPU Hőmérséklet"
+#. desklet.js:294
+msgid "CPU Temp"
+msgstr ""
+
+#. desklet.js:301
+msgid "ON"
+msgstr ""
+
+#. desklet.js:301
+msgid "OFF"
+msgstr ""
-#. desklet.js:301 desklet.js:319 desklet.js:339 desklet.js:380 desklet.js:684
+#. desklet.js:302 desklet.js:304
+msgid "Fan"
+msgstr ""
+
+#. desklet.js:317 desklet.js:335 desklet.js:355 desklet.js:396 desklet.js:700
msgid "GB"
msgstr "GB"
-#. desklet.js:304 desklet.js:322 desklet.js:342 desklet.js:383 desklet.js:698
+#. desklet.js:320 desklet.js:338 desklet.js:358 desklet.js:399 desklet.js:714
msgid "GiB"
msgstr "GiB"
#. settings-schema.json->type->options
-#. desklet.js:306
+#. desklet.js:322
msgid "RAM"
msgstr "RAM"
#. settings-schema.json->type->options
-#. desklet.js:324
+#. desklet.js:340
msgid "Swap"
msgstr "Cserehely"
-#. desklet.js:347
+#. desklet.js:363
msgid "free of"
msgstr "szabad, összesen:"
-#. desklet.js:363
+#. desklet.js:379
msgid "GPU Usage"
msgstr "GPU használat"
-#. desklet.js:385
+#. desklet.js:401
msgid "GPU Memory"
msgstr "GPU memória"
-#. desklet.js:401
+#. desklet.js:417
msgid "GPU Temperature"
msgstr "CPU Hőmérséklet"
#. settings-schema.json->type->options
-#. desklet.js:415
+#. desklet.js:431
msgid "Network"
msgstr "Hálózat"
#. settings-schema.json->type->options
-#. desklet.js:428
+#. desklet.js:444
msgid "Battery"
msgstr "Akkumlátor"
-#. desklet.js:431
+#. desklet.js:447
msgid "Fully charged"
msgstr "Teljesen feltöltve"
-#. desklet.js:432
+#. desklet.js:448
msgid "Not charging"
msgstr "nem tölt"
-#. desklet.js:434
+#. desklet.js:450
msgid " hrs"
msgstr "óra"
-#. desklet.js:655 desklet.js:678
+#. desklet.js:671 desklet.js:694
msgid "b"
msgstr "b"
-#. desklet.js:657 desklet.js:692 desklet.js:706
+#. desklet.js:673 desklet.js:708 desklet.js:722
msgid "B"
msgstr "B"
-#. desklet.js:670
+#. desklet.js:686
msgid "Gb"
msgstr "Gb"
-#. desklet.js:673
+#. desklet.js:689
msgid "Mb"
msgstr "Mb"
-#. desklet.js:676
+#. desklet.js:692
msgid "Kb"
msgstr "Kb"
-#. desklet.js:687
+#. desklet.js:703
msgid "MB"
msgstr "MB"
-#. desklet.js:690
+#. desklet.js:706
msgid "KB"
msgstr "KB"
-#. desklet.js:701
+#. desklet.js:717
msgid "MiB"
msgstr "MiB"
-#. desklet.js:704
+#. desklet.js:720
msgid "KiB"
msgstr "KiB"
diff --git a/system-monitor-graph@rcassani/files/system-monitor-graph@rcassani/po/it.po b/system-monitor-graph@rcassani/files/system-monitor-graph@rcassani/po/it.po
index 6796f5ce5..24ba44e57 100644
--- a/system-monitor-graph@rcassani/files/system-monitor-graph@rcassani/po/it.po
+++ b/system-monitor-graph@rcassani/files/system-monitor-graph@rcassani/po/it.po
@@ -8,7 +8,7 @@ msgstr ""
"Project-Id-Version: \n"
"Report-Msgid-Bugs-To: https://github.com/linuxmint/cinnamon-spices-desklets/"
"issues\n"
-"POT-Creation-Date: 2026-03-23 21:24-0400\n"
+"POT-Creation-Date: 2026-07-19 12:45+0530\n"
"PO-Revision-Date: 2025-08-26 19:59+0200\n"
"Last-Translator: Dragone2 \n"
"Language-Team: \n"
@@ -20,104 +20,116 @@ msgstr ""
"X-Generator: Poedit 3.4.2\n"
#. settings-schema.json->type->options
-#. desklet.js:275
+#. desklet.js:284
msgid "CPU"
msgstr "CPU"
-#. desklet.js:284
-msgid "CPU Temperature"
+#. desklet.js:294
+msgid "CPU Temp"
+msgstr ""
+
+#. desklet.js:301
+msgid "ON"
+msgstr ""
+
+#. desklet.js:301
+msgid "OFF"
+msgstr ""
+
+#. desklet.js:302 desklet.js:304
+msgid "Fan"
msgstr ""
-#. desklet.js:301 desklet.js:319 desklet.js:339 desklet.js:380 desklet.js:684
+#. desklet.js:317 desklet.js:335 desklet.js:355 desklet.js:396 desklet.js:700
msgid "GB"
msgstr "GB"
-#. desklet.js:304 desklet.js:322 desklet.js:342 desklet.js:383 desklet.js:698
+#. desklet.js:320 desklet.js:338 desklet.js:358 desklet.js:399 desklet.js:714
msgid "GiB"
msgstr "GiB"
#. settings-schema.json->type->options
-#. desklet.js:306
+#. desklet.js:322
msgid "RAM"
msgstr "RAM"
#. settings-schema.json->type->options
-#. desklet.js:324
+#. desklet.js:340
msgid "Swap"
msgstr "Swap"
-#. desklet.js:347
+#. desklet.js:363
msgid "free of"
msgstr "liberi su"
-#. desklet.js:363
+#. desklet.js:379
msgid "GPU Usage"
msgstr "Utilizzo GPU"
-#. desklet.js:385
+#. desklet.js:401
msgid "GPU Memory"
msgstr "Memoria GPU"
-#. desklet.js:401
+#. desklet.js:417
#, fuzzy
msgid "GPU Temperature"
msgstr "Produttore GPU"
#. settings-schema.json->type->options
-#. desklet.js:415
+#. desklet.js:431
msgid "Network"
msgstr "Rete"
#. settings-schema.json->type->options
-#. desklet.js:428
+#. desklet.js:444
msgid "Battery"
msgstr ""
-#. desklet.js:431
+#. desklet.js:447
msgid "Fully charged"
msgstr ""
-#. desklet.js:432
+#. desklet.js:448
msgid "Not charging"
msgstr ""
-#. desklet.js:434
+#. desklet.js:450
msgid " hrs"
msgstr ""
-#. desklet.js:655 desklet.js:678
+#. desklet.js:671 desklet.js:694
msgid "b"
msgstr "b"
-#. desklet.js:657 desklet.js:692 desklet.js:706
+#. desklet.js:673 desklet.js:708 desklet.js:722
msgid "B"
msgstr "B"
-#. desklet.js:670
+#. desklet.js:686
msgid "Gb"
msgstr "Gb"
-#. desklet.js:673
+#. desklet.js:689
msgid "Mb"
msgstr "Mb"
-#. desklet.js:676
+#. desklet.js:692
msgid "Kb"
msgstr "Kb"
-#. desklet.js:687
+#. desklet.js:703
msgid "MB"
msgstr "MB"
-#. desklet.js:690
+#. desklet.js:706
msgid "KB"
msgstr "KB"
-#. desklet.js:701
+#. desklet.js:717
msgid "MiB"
msgstr "MiB"
-#. desklet.js:704
+#. desklet.js:720
msgid "KiB"
msgstr "KiB"
diff --git a/system-monitor-graph@rcassani/files/system-monitor-graph@rcassani/po/nl.po b/system-monitor-graph@rcassani/files/system-monitor-graph@rcassani/po/nl.po
index ba6e2e525..dd58bc2f4 100644
--- a/system-monitor-graph@rcassani/files/system-monitor-graph@rcassani/po/nl.po
+++ b/system-monitor-graph@rcassani/files/system-monitor-graph@rcassani/po/nl.po
@@ -8,7 +8,7 @@ msgstr ""
"Project-Id-Version: \n"
"Report-Msgid-Bugs-To: https://github.com/linuxmint/cinnamon-spices-desklets/"
"issues\n"
-"POT-Creation-Date: 2026-03-23 21:24-0400\n"
+"POT-Creation-Date: 2026-07-19 12:45+0530\n"
"PO-Revision-Date: 2025-08-25 16:25+0200\n"
"Last-Translator: qadzek\n"
"Language-Team: \n"
@@ -18,104 +18,116 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n"
#. settings-schema.json->type->options
-#. desklet.js:275
+#. desklet.js:284
msgid "CPU"
msgstr "CPU"
-#. desklet.js:284
-msgid "CPU Temperature"
+#. desklet.js:294
+msgid "CPU Temp"
+msgstr ""
+
+#. desklet.js:301
+msgid "ON"
+msgstr ""
+
+#. desklet.js:301
+msgid "OFF"
+msgstr ""
+
+#. desklet.js:302 desklet.js:304
+msgid "Fan"
msgstr ""
-#. desklet.js:301 desklet.js:319 desklet.js:339 desklet.js:380 desklet.js:684
+#. desklet.js:317 desklet.js:335 desklet.js:355 desklet.js:396 desklet.js:700
msgid "GB"
msgstr "GB"
-#. desklet.js:304 desklet.js:322 desklet.js:342 desklet.js:383 desklet.js:698
+#. desklet.js:320 desklet.js:338 desklet.js:358 desklet.js:399 desklet.js:714
msgid "GiB"
msgstr "GiB"
#. settings-schema.json->type->options
-#. desklet.js:306
+#. desklet.js:322
msgid "RAM"
msgstr "RAM"
#. settings-schema.json->type->options
-#. desklet.js:324
+#. desklet.js:340
msgid "Swap"
msgstr "Swap"
-#. desklet.js:347
+#. desklet.js:363
msgid "free of"
msgstr "vrij van"
-#. desklet.js:363
+#. desklet.js:379
msgid "GPU Usage"
msgstr "GPU Gebruik"
-#. desklet.js:385
+#. desklet.js:401
msgid "GPU Memory"
msgstr "GPU Geheugen"
-#. desklet.js:401
+#. desklet.js:417
#, fuzzy
msgid "GPU Temperature"
msgstr "GPU fabrikant"
#. settings-schema.json->type->options
-#. desklet.js:415
+#. desklet.js:431
msgid "Network"
msgstr "Netwerk"
#. settings-schema.json->type->options
-#. desklet.js:428
+#. desklet.js:444
msgid "Battery"
msgstr ""
-#. desklet.js:431
+#. desklet.js:447
msgid "Fully charged"
msgstr ""
-#. desklet.js:432
+#. desklet.js:448
msgid "Not charging"
msgstr ""
-#. desklet.js:434
+#. desklet.js:450
msgid " hrs"
msgstr ""
-#. desklet.js:655 desklet.js:678
+#. desklet.js:671 desklet.js:694
msgid "b"
msgstr "b"
-#. desklet.js:657 desklet.js:692 desklet.js:706
+#. desklet.js:673 desklet.js:708 desklet.js:722
msgid "B"
msgstr "B"
-#. desklet.js:670
+#. desklet.js:686
msgid "Gb"
msgstr "Gb"
-#. desklet.js:673
+#. desklet.js:689
msgid "Mb"
msgstr "Mb"
-#. desklet.js:676
+#. desklet.js:692
msgid "Kb"
msgstr "Kb"
-#. desklet.js:687
+#. desklet.js:703
msgid "MB"
msgstr "MB"
-#. desklet.js:690
+#. desklet.js:706
msgid "KB"
msgstr "KB"
-#. desklet.js:701
+#. desklet.js:717
msgid "MiB"
msgstr "MiB"
-#. desklet.js:704
+#. desklet.js:720
msgid "KiB"
msgstr "KiB"
diff --git a/system-monitor-graph@rcassani/files/system-monitor-graph@rcassani/po/pt_BR.po b/system-monitor-graph@rcassani/files/system-monitor-graph@rcassani/po/pt_BR.po
index e27fb972c..4d1b8fde4 100644
--- a/system-monitor-graph@rcassani/files/system-monitor-graph@rcassani/po/pt_BR.po
+++ b/system-monitor-graph@rcassani/files/system-monitor-graph@rcassani/po/pt_BR.po
@@ -8,7 +8,7 @@ msgstr ""
"Project-Id-Version: \n"
"Report-Msgid-Bugs-To: https://github.com/linuxmint/cinnamon-spices-desklets/"
"issues\n"
-"POT-Creation-Date: 2026-03-23 21:24-0400\n"
+"POT-Creation-Date: 2026-07-19 12:45+0530\n"
"PO-Revision-Date: 2021-11-29 15:20-0300\n"
"Last-Translator: Marcelo Aof\n"
"Language-Team: \n"
@@ -20,106 +20,118 @@ msgstr ""
"Plural-Forms: nplurals=2; plural=(n > 1);\n"
#. settings-schema.json->type->options
-#. desklet.js:275
+#. desklet.js:284
msgid "CPU"
msgstr "CPU"
-#. desklet.js:284
-msgid "CPU Temperature"
+#. desklet.js:294
+msgid "CPU Temp"
+msgstr ""
+
+#. desklet.js:301
+msgid "ON"
+msgstr ""
+
+#. desklet.js:301
+msgid "OFF"
+msgstr ""
+
+#. desklet.js:302 desklet.js:304
+msgid "Fan"
msgstr ""
-#. desklet.js:301 desklet.js:319 desklet.js:339 desklet.js:380 desklet.js:684
+#. desklet.js:317 desklet.js:335 desklet.js:355 desklet.js:396 desklet.js:700
msgid "GB"
msgstr "GB"
-#. desklet.js:304 desklet.js:322 desklet.js:342 desklet.js:383 desklet.js:698
+#. desklet.js:320 desklet.js:338 desklet.js:358 desklet.js:399 desklet.js:714
msgid "GiB"
msgstr "GiB"
#. settings-schema.json->type->options
-#. desklet.js:306
+#. desklet.js:322
msgid "RAM"
msgstr "RAM"
#. settings-schema.json->type->options
-#. desklet.js:324
+#. desklet.js:340
msgid "Swap"
msgstr ""
-#. desklet.js:347
+#. desklet.js:363
msgid "free of"
msgstr "livres de"
-#. desklet.js:363
+#. desklet.js:379
msgid "GPU Usage"
msgstr "Uso da GPU"
-#. desklet.js:385
+#. desklet.js:401
msgid "GPU Memory"
msgstr "Memória da GPU"
-#. desklet.js:401
+#. desklet.js:417
#, fuzzy
msgid "GPU Temperature"
msgstr "Fabricante da GPU"
#. settings-schema.json->type->options
-#. desklet.js:415
+#. desklet.js:431
msgid "Network"
msgstr ""
#. settings-schema.json->type->options
-#. desklet.js:428
+#. desklet.js:444
msgid "Battery"
msgstr ""
-#. desklet.js:431
+#. desklet.js:447
msgid "Fully charged"
msgstr ""
-#. desklet.js:432
+#. desklet.js:448
msgid "Not charging"
msgstr ""
-#. desklet.js:434
+#. desklet.js:450
msgid " hrs"
msgstr ""
-#. desklet.js:655 desklet.js:678
+#. desklet.js:671 desklet.js:694
msgid "b"
msgstr ""
-#. desklet.js:657 desklet.js:692 desklet.js:706
+#. desklet.js:673 desklet.js:708 desklet.js:722
#, fuzzy
msgid "B"
msgstr "GB"
-#. desklet.js:670
+#. desklet.js:686
msgid "Gb"
msgstr ""
-#. desklet.js:673
+#. desklet.js:689
msgid "Mb"
msgstr ""
-#. desklet.js:676
+#. desklet.js:692
msgid "Kb"
msgstr ""
-#. desklet.js:687
+#. desklet.js:703
msgid "MB"
msgstr ""
-#. desklet.js:690
+#. desklet.js:706
msgid "KB"
msgstr ""
-#. desklet.js:701
+#. desklet.js:717
#, fuzzy
msgid "MiB"
msgstr "GiB"
-#. desklet.js:704
+#. desklet.js:720
#, fuzzy
msgid "KiB"
msgstr "GiB"
diff --git a/system-monitor-graph@rcassani/files/system-monitor-graph@rcassani/po/ro.po b/system-monitor-graph@rcassani/files/system-monitor-graph@rcassani/po/ro.po
index 603118c84..0c92e2a1f 100644
--- a/system-monitor-graph@rcassani/files/system-monitor-graph@rcassani/po/ro.po
+++ b/system-monitor-graph@rcassani/files/system-monitor-graph@rcassani/po/ro.po
@@ -8,7 +8,7 @@ msgstr ""
"Project-Id-Version: \n"
"Report-Msgid-Bugs-To: https://github.com/linuxmint/cinnamon-spices-desklets/"
"issues\n"
-"POT-Creation-Date: 2026-03-23 21:24-0400\n"
+"POT-Creation-Date: 2026-07-19 12:45+0530\n"
"PO-Revision-Date: 2022-04-17 23:21+0200\n"
"Last-Translator: Automatically generated\n"
"Language-Team: none\n"
@@ -20,106 +20,118 @@ msgstr ""
"20)) ? 1 : 2;\n"
#. settings-schema.json->type->options
-#. desklet.js:275
+#. desklet.js:284
msgid "CPU"
msgstr "CPU"
-#. desklet.js:284
-msgid "CPU Temperature"
+#. desklet.js:294
+msgid "CPU Temp"
+msgstr ""
+
+#. desklet.js:301
+msgid "ON"
+msgstr ""
+
+#. desklet.js:301
+msgid "OFF"
+msgstr ""
+
+#. desklet.js:302 desklet.js:304
+msgid "Fan"
msgstr ""
-#. desklet.js:301 desklet.js:319 desklet.js:339 desklet.js:380 desklet.js:684
+#. desklet.js:317 desklet.js:335 desklet.js:355 desklet.js:396 desklet.js:700
msgid "GB"
msgstr "GB"
-#. desklet.js:304 desklet.js:322 desklet.js:342 desklet.js:383 desklet.js:698
+#. desklet.js:320 desklet.js:338 desklet.js:358 desklet.js:399 desklet.js:714
msgid "GiB"
msgstr "GiB"
#. settings-schema.json->type->options
-#. desklet.js:306
+#. desklet.js:322
msgid "RAM"
msgstr "RAM"
#. settings-schema.json->type->options
-#. desklet.js:324
+#. desklet.js:340
msgid "Swap"
msgstr "Schimbă"
-#. desklet.js:347
+#. desklet.js:363
msgid "free of"
msgstr "liber din"
-#. desklet.js:363
+#. desklet.js:379
msgid "GPU Usage"
msgstr "Utilizare GPU"
-#. desklet.js:385
+#. desklet.js:401
msgid "GPU Memory"
msgstr "Memorie GPU"
-#. desklet.js:401
+#. desklet.js:417
#, fuzzy
msgid "GPU Temperature"
msgstr "Producător GPU"
#. settings-schema.json->type->options
-#. desklet.js:415
+#. desklet.js:431
msgid "Network"
msgstr ""
#. settings-schema.json->type->options
-#. desklet.js:428
+#. desklet.js:444
msgid "Battery"
msgstr ""
-#. desklet.js:431
+#. desklet.js:447
msgid "Fully charged"
msgstr ""
-#. desklet.js:432
+#. desklet.js:448
msgid "Not charging"
msgstr ""
-#. desklet.js:434
+#. desklet.js:450
msgid " hrs"
msgstr ""
-#. desklet.js:655 desklet.js:678
+#. desklet.js:671 desklet.js:694
msgid "b"
msgstr ""
-#. desklet.js:657 desklet.js:692 desklet.js:706
+#. desklet.js:673 desklet.js:708 desklet.js:722
#, fuzzy
msgid "B"
msgstr "GB"
-#. desklet.js:670
+#. desklet.js:686
msgid "Gb"
msgstr ""
-#. desklet.js:673
+#. desklet.js:689
msgid "Mb"
msgstr ""
-#. desklet.js:676
+#. desklet.js:692
msgid "Kb"
msgstr ""
-#. desklet.js:687
+#. desklet.js:703
msgid "MB"
msgstr ""
-#. desklet.js:690
+#. desklet.js:706
msgid "KB"
msgstr ""
-#. desklet.js:701
+#. desklet.js:717
#, fuzzy
msgid "MiB"
msgstr "GiB"
-#. desklet.js:704
+#. desklet.js:720
#, fuzzy
msgid "KiB"
msgstr "GiB"
diff --git a/system-monitor-graph@rcassani/files/system-monitor-graph@rcassani/po/ru.po b/system-monitor-graph@rcassani/files/system-monitor-graph@rcassani/po/ru.po
index 4ebb36a8f..05f8dbdc5 100644
--- a/system-monitor-graph@rcassani/files/system-monitor-graph@rcassani/po/ru.po
+++ b/system-monitor-graph@rcassani/files/system-monitor-graph@rcassani/po/ru.po
@@ -4,7 +4,7 @@ msgstr ""
"Project-Id-Version: \n"
"Report-Msgid-Bugs-To: https://github.com/linuxmint/cinnamon-spices-desklets/"
"issues\n"
-"POT-Creation-Date: 2026-03-23 21:24-0400\n"
+"POT-Creation-Date: 2026-07-19 12:45+0530\n"
"PO-Revision-Date: \n"
"Last-Translator: blogdron\n"
"Language-Team: \n"
@@ -15,104 +15,116 @@ msgstr ""
"X-Generator: Poedit 3.4.2\n"
#. settings-schema.json->type->options
-#. desklet.js:275
+#. desklet.js:284
msgid "CPU"
msgstr "Процессор"
-#. desklet.js:284
-msgid "CPU Temperature"
+#. desklet.js:294
+msgid "CPU Temp"
+msgstr ""
+
+#. desklet.js:301
+msgid "ON"
+msgstr ""
+
+#. desklet.js:301
+msgid "OFF"
+msgstr ""
+
+#. desklet.js:302 desklet.js:304
+msgid "Fan"
msgstr ""
-#. desklet.js:301 desklet.js:319 desklet.js:339 desklet.js:380 desklet.js:684
+#. desklet.js:317 desklet.js:335 desklet.js:355 desklet.js:396 desklet.js:700
msgid "GB"
msgstr "ГБ"
-#. desklet.js:304 desklet.js:322 desklet.js:342 desklet.js:383 desklet.js:698
+#. desklet.js:320 desklet.js:338 desklet.js:358 desklet.js:399 desklet.js:714
msgid "GiB"
msgstr "ГиБ"
#. settings-schema.json->type->options
-#. desklet.js:306
+#. desklet.js:322
msgid "RAM"
msgstr "Память"
#. settings-schema.json->type->options
-#. desklet.js:324
+#. desklet.js:340
msgid "Swap"
msgstr "Подкачка"
-#. desklet.js:347
+#. desklet.js:363
msgid "free of"
msgstr "свободно из"
-#. desklet.js:363
+#. desklet.js:379
msgid "GPU Usage"
msgstr "Видеокарта"
-#. desklet.js:385
+#. desklet.js:401
msgid "GPU Memory"
msgstr "Память видеокарты"
-#. desklet.js:401
+#. desklet.js:417
#, fuzzy
msgid "GPU Temperature"
msgstr "Производитель GPU"
#. settings-schema.json->type->options
-#. desklet.js:415
+#. desklet.js:431
msgid "Network"
msgstr "Сеть"
#. settings-schema.json->type->options
-#. desklet.js:428
+#. desklet.js:444
msgid "Battery"
msgstr ""
-#. desklet.js:431
+#. desklet.js:447
msgid "Fully charged"
msgstr ""
-#. desklet.js:432
+#. desklet.js:448
msgid "Not charging"
msgstr ""
-#. desklet.js:434
+#. desklet.js:450
msgid " hrs"
msgstr ""
-#. desklet.js:655 desklet.js:678
+#. desklet.js:671 desklet.js:694
msgid "b"
msgstr "б"
-#. desklet.js:657 desklet.js:692 desklet.js:706
+#. desklet.js:673 desklet.js:708 desklet.js:722
msgid "B"
msgstr "Б"
-#. desklet.js:670
+#. desklet.js:686
msgid "Gb"
msgstr "Гб"
-#. desklet.js:673
+#. desklet.js:689
msgid "Mb"
msgstr "Мб"
-#. desklet.js:676
+#. desklet.js:692
msgid "Kb"
msgstr "Кб"
-#. desklet.js:687
+#. desklet.js:703
msgid "MB"
msgstr "МБ"
-#. desklet.js:690
+#. desklet.js:706
msgid "KB"
msgstr "КБ"
-#. desklet.js:701
+#. desklet.js:717
msgid "MiB"
msgstr "МиБ"
-#. desklet.js:704
+#. desklet.js:720
msgid "KiB"
msgstr "КиБ"
diff --git a/system-monitor-graph@rcassani/files/system-monitor-graph@rcassani/po/system-monitor-graph@rcassani.pot b/system-monitor-graph@rcassani/files/system-monitor-graph@rcassani/po/system-monitor-graph@rcassani.pot
index 1c7bca95d..28c58dc90 100644
--- a/system-monitor-graph@rcassani/files/system-monitor-graph@rcassani/po/system-monitor-graph@rcassani.pot
+++ b/system-monitor-graph@rcassani/files/system-monitor-graph@rcassani/po/system-monitor-graph@rcassani.pot
@@ -1,14 +1,14 @@
# SYSTEM MONITOR GRAPH
# This file is put in the public domain.
-# rcassani, 2020
+# rcassani, 2026
#
#, fuzzy
msgid ""
msgstr ""
-"Project-Id-Version: system-monitor-graph@rcassani 2.0\n"
+"Project-Id-Version: system-monitor-graph@rcassani 2.2\n"
"Report-Msgid-Bugs-To: https://github.com/linuxmint/cinnamon-spices-desklets/"
"issues\n"
-"POT-Creation-Date: 2026-03-23 21:24-0400\n"
+"POT-Creation-Date: 2026-07-19 12:45+0530\n"
"PO-Revision-Date: \n"
"Last-Translator: \n"
"Language-Team: \n"
@@ -18,103 +18,115 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n"
#. settings-schema.json->type->options
-#. desklet.js:275
+#. desklet.js:284
msgid "CPU"
msgstr ""
-#. desklet.js:284
-msgid "CPU Temperature"
+#. desklet.js:294
+msgid "CPU Temp"
+msgstr ""
+
+#. desklet.js:301
+msgid "ON"
+msgstr ""
+
+#. desklet.js:301
+msgid "OFF"
+msgstr ""
+
+#. desklet.js:302 desklet.js:304
+msgid "Fan"
msgstr ""
-#. desklet.js:301 desklet.js:319 desklet.js:339 desklet.js:380 desklet.js:684
+#. desklet.js:317 desklet.js:335 desklet.js:355 desklet.js:396 desklet.js:700
msgid "GB"
msgstr ""
-#. desklet.js:304 desklet.js:322 desklet.js:342 desklet.js:383 desklet.js:698
+#. desklet.js:320 desklet.js:338 desklet.js:358 desklet.js:399 desklet.js:714
msgid "GiB"
msgstr ""
#. settings-schema.json->type->options
-#. desklet.js:306
+#. desklet.js:322
msgid "RAM"
msgstr ""
#. settings-schema.json->type->options
-#. desklet.js:324
+#. desklet.js:340
msgid "Swap"
msgstr ""
-#. desklet.js:347
+#. desklet.js:363
msgid "free of"
msgstr ""
-#. desklet.js:363
+#. desklet.js:379
msgid "GPU Usage"
msgstr ""
-#. desklet.js:385
+#. desklet.js:401
msgid "GPU Memory"
msgstr ""
-#. desklet.js:401
+#. desklet.js:417
msgid "GPU Temperature"
msgstr ""
#. settings-schema.json->type->options
-#. desklet.js:415
+#. desklet.js:431
msgid "Network"
msgstr ""
#. settings-schema.json->type->options
-#. desklet.js:428
+#. desklet.js:444
msgid "Battery"
msgstr ""
-#. desklet.js:431
+#. desklet.js:447
msgid "Fully charged"
msgstr ""
-#. desklet.js:432
+#. desklet.js:448
msgid "Not charging"
msgstr ""
-#. desklet.js:434
+#. desklet.js:450
msgid " hrs"
msgstr ""
-#. desklet.js:655 desklet.js:678
+#. desklet.js:671 desklet.js:694
msgid "b"
msgstr ""
-#. desklet.js:657 desklet.js:692 desklet.js:706
+#. desklet.js:673 desklet.js:708 desklet.js:722
msgid "B"
msgstr ""
-#. desklet.js:670
+#. desklet.js:686
msgid "Gb"
msgstr ""
-#. desklet.js:673
+#. desklet.js:689
msgid "Mb"
msgstr ""
-#. desklet.js:676
+#. desklet.js:692
msgid "Kb"
msgstr ""
-#. desklet.js:687
+#. desklet.js:703
msgid "MB"
msgstr ""
-#. desklet.js:690
+#. desklet.js:706
msgid "KB"
msgstr ""
-#. desklet.js:701
+#. desklet.js:717
msgid "MiB"
msgstr ""
-#. desklet.js:704
+#. desklet.js:720
msgid "KiB"
msgstr ""
diff --git a/system-monitor-graph@rcassani/files/system-monitor-graph@rcassani/po/vi.po b/system-monitor-graph@rcassani/files/system-monitor-graph@rcassani/po/vi.po
index 11360135e..8d5ada770 100644
--- a/system-monitor-graph@rcassani/files/system-monitor-graph@rcassani/po/vi.po
+++ b/system-monitor-graph@rcassani/files/system-monitor-graph@rcassani/po/vi.po
@@ -8,7 +8,7 @@ msgstr ""
"Project-Id-Version: system-monitor-graph@rcassani 2.0\n"
"Report-Msgid-Bugs-To: https://github.com/linuxmint/cinnamon-spices-desklets/"
"issues\n"
-"POT-Creation-Date: 2026-03-23 21:24-0400\n"
+"POT-Creation-Date: 2026-07-19 12:45+0530\n"
"PO-Revision-Date: \n"
"Last-Translator: loccun \n"
"Language-Team: \n"
@@ -19,104 +19,116 @@ msgstr ""
"X-Generator: Poedit 3.4.2\n"
#. settings-schema.json->type->options
-#. desklet.js:275
+#. desklet.js:284
msgid "CPU"
msgstr "CPU"
-#. desklet.js:284
-msgid "CPU Temperature"
+#. desklet.js:294
+msgid "CPU Temp"
+msgstr ""
+
+#. desklet.js:301
+msgid "ON"
+msgstr ""
+
+#. desklet.js:301
+msgid "OFF"
+msgstr ""
+
+#. desklet.js:302 desklet.js:304
+msgid "Fan"
msgstr ""
-#. desklet.js:301 desklet.js:319 desklet.js:339 desklet.js:380 desklet.js:684
+#. desklet.js:317 desklet.js:335 desklet.js:355 desklet.js:396 desklet.js:700
msgid "GB"
msgstr "GB"
-#. desklet.js:304 desklet.js:322 desklet.js:342 desklet.js:383 desklet.js:698
+#. desklet.js:320 desklet.js:338 desklet.js:358 desklet.js:399 desklet.js:714
msgid "GiB"
msgstr "GiB"
#. settings-schema.json->type->options
-#. desklet.js:306
+#. desklet.js:322
msgid "RAM"
msgstr "RAM"
#. settings-schema.json->type->options
-#. desklet.js:324
+#. desklet.js:340
msgid "Swap"
msgstr "Swap"
-#. desklet.js:347
+#. desklet.js:363
msgid "free of"
msgstr "trống trong"
-#. desklet.js:363
+#. desklet.js:379
msgid "GPU Usage"
msgstr "Sử dụng GPU"
-#. desklet.js:385
+#. desklet.js:401
msgid "GPU Memory"
msgstr "Bộ nhớ GPU"
-#. desklet.js:401
+#. desklet.js:417
#, fuzzy
msgid "GPU Temperature"
msgstr "Nhà sản xuất GPU"
#. settings-schema.json->type->options
-#. desklet.js:415
+#. desklet.js:431
msgid "Network"
msgstr "Mạng"
#. settings-schema.json->type->options
-#. desklet.js:428
+#. desklet.js:444
msgid "Battery"
msgstr ""
-#. desklet.js:431
+#. desklet.js:447
msgid "Fully charged"
msgstr ""
-#. desklet.js:432
+#. desklet.js:448
msgid "Not charging"
msgstr ""
-#. desklet.js:434
+#. desklet.js:450
msgid " hrs"
msgstr ""
-#. desklet.js:655 desklet.js:678
+#. desklet.js:671 desklet.js:694
msgid "b"
msgstr "b"
-#. desklet.js:657 desklet.js:692 desklet.js:706
+#. desklet.js:673 desklet.js:708 desklet.js:722
msgid "B"
msgstr "B"
-#. desklet.js:670
+#. desklet.js:686
msgid "Gb"
msgstr "Gb"
-#. desklet.js:673
+#. desklet.js:689
msgid "Mb"
msgstr "Mb"
-#. desklet.js:676
+#. desklet.js:692
msgid "Kb"
msgstr "Kb"
-#. desklet.js:687
+#. desklet.js:703
msgid "MB"
msgstr "MB"
-#. desklet.js:690
+#. desklet.js:706
msgid "KB"
msgstr "KB"
-#. desklet.js:701
+#. desklet.js:717
msgid "MiB"
msgstr "MiB"
-#. desklet.js:704
+#. desklet.js:720
msgid "KiB"
msgstr "KiB"
From 1a875eab2d489dd0a5756c0f76ac8170dabc6d2d Mon Sep 17 00:00:00 2001
From: Karthik Mudaliar <45604318+karthikmudaliarX@users.noreply.github.com>
Date: Mon, 20 Jul 2026 18:16:31 +0530
Subject: [PATCH 2/6] system-monitor-graph@rcassani: Add fan speed graph
---
system-monitor-graph@rcassani/README.md | 11 ++-
.../fan-speed-off.png | Bin 0 -> 71092 bytes
.../fan-speed-on.png | Bin 0 -> 73718 bytes
.../system-monitor-graph@rcassani/desklet.js | 52 ++++++++++--
.../system-monitor-graph@rcassani/po/ca.po | 74 ++++++++++--------
.../system-monitor-graph@rcassani/po/da.po | 74 ++++++++++--------
.../system-monitor-graph@rcassani/po/de.po | 74 ++++++++++--------
.../system-monitor-graph@rcassani/po/es.po | 74 ++++++++++--------
.../system-monitor-graph@rcassani/po/fi.po | 74 ++++++++++--------
.../system-monitor-graph@rcassani/po/hu.po | 74 ++++++++++--------
.../system-monitor-graph@rcassani/po/it.po | 74 ++++++++++--------
.../system-monitor-graph@rcassani/po/nl.po | 74 ++++++++++--------
.../system-monitor-graph@rcassani/po/pt_BR.po | 74 ++++++++++--------
.../system-monitor-graph@rcassani/po/ro.po | 74 ++++++++++--------
.../system-monitor-graph@rcassani/po/ru.po | 74 ++++++++++--------
.../po/system-monitor-graph@rcassani.pot | 74 ++++++++++--------
.../system-monitor-graph@rcassani/po/vi.po | 74 ++++++++++--------
.../settings-schema.json | 3 +-
18 files changed, 614 insertions(+), 414 deletions(-)
create mode 100644 system-monitor-graph@rcassani/fan-speed-off.png
create mode 100644 system-monitor-graph@rcassani/fan-speed-on.png
diff --git a/system-monitor-graph@rcassani/README.md b/system-monitor-graph@rcassani/README.md
index 5802925a6..d9997e293 100644
--- a/system-monitor-graph@rcassani/README.md
+++ b/system-monitor-graph@rcassani/README.md
@@ -15,7 +15,8 @@ This project has been inspired from other Desklets such as [Disk Space](https://
| System variable | Description |
| ----------- | ----------- |
| CPU | CPU usage in % |
-| CPU Temperature | CPU temperature C or F, with fan on/off status and RPM when exposed by hwmon |
+| CPU Temperature | CPU temperature in C or F |
+| CPU Fan speed | Fan speed in RPM, on/off status, and activity history when exposed by hwmon |
| RAM | Used RAM as % of total, and in GB |
| Swap | Used Swap space as % of total, and in GB |
| HDD | % of I/O activity, and free and total space in the filesystem (partition) indicated by the user |
@@ -27,7 +28,13 @@ This project has been inspired from other Desklets such as [Disk Space](https://
Each variable is calculated every `Refresh interval` seconds (Min. 1 s, Max. 60 s.), and the graph shows the last `Duration of the graph` period (Min. 30 s, Max. 60 min).
GPU graphs work for NVIDIA, discrete AMD and built-in AMD.
-Fan monitoring uses CPU-labelled sensors and known laptop cooling drivers. It avoids guessing from unrelated unlabelled fans, and systems that do not expose identifiable CPU fan speed continue to show CPU temperature without a fan readout.
+Fan monitoring uses CPU-labelled sensors and known laptop cooling drivers. It avoids guessing from unrelated unlabelled fans, and reports when an identifiable CPU fan is not detected.
+
+
+
+
+CPU fan speed history while the fan is running and stopped.
+
### Customizable visual elements
diff --git a/system-monitor-graph@rcassani/fan-speed-off.png b/system-monitor-graph@rcassani/fan-speed-off.png
new file mode 100644
index 0000000000000000000000000000000000000000..2cf1036ab6cddc70f20ba9a4c67bd5ef4508c9c3
GIT binary patch
literal 71092
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