Thermal monitor is broken

I noticed this morning that thermal monitor was no longer showing discrete AMD GPU temps and on running the sensor probe for thermal monitor, the only entry is Raphael Temps, which I believe is the internal graphics which I don’t use. I read the original post from two years ago but doesn’t help. If I run watch -n 2 sensors in terminal, my discrete gpu shows. Not sure how to restore the the two days old package without breaking stuff but is this a temporary break or a new implementation which means this program is now not usable for me?

if you can see the temp output you want using sensors then you should be able to find it in monitor settings and change your monitor to track that temperature instead the now (apparently) abandoned one.

it may be tucked under a different heading than from before… try looking under Hardware instead of GPU, for instance.

all else fails you can run sensors-detect again and see if it picks up any new temp sensors for you to choose from (be sure to read all the instructions).

There are no settings under Hardware and no new sensors found using sensor-detect. I’m not about to go into a rabbit hole of try this, try that. If the author of the program has decided to change the program, that is his right, and if it no longer works, it no longer works.

Sorry, that was a bit snippy, but I’ve been down many rabbit holes in the past with no winners. There are 6 unidentified readings under hardware but whether they are for the GPU or not, it’s hard to tell, I will have to monitor them to see if they sync up with my terminal readings.

None of those “Virtual MB readings” have anything to do with my GPU. My only solution is to just run “watch -n 2 sensors” in terminal, as all the readings plus a lot of useless ones are there.

rabbit hole warning

there is a file you can create that will limit what sensors (and plasma) are able to see, if that would help.

from my notes:

# sensors that are bogus/useless can be omitted by listing them in this file
/etc/sensors.d/nuvoton.conf
# organized in blocks for each chip type as shown
chip "nct6798-*"
    ignore in0
    ignore in1
    ignore in2
    ignore in3
    ignore in4
    ignore in5
    ignore in6
    ignore in7
    ignore in8
    ignore in9
    ignore in10
    ignore in11
    ignore in12
    ignore in13
    ignore in14
    ignore fan4
    ignore fan5
    ignore fan6
    ignore temp3
    ignore temp4
    ignore temp5
    ignore temp6
    ignore temp7
    ignore temp10
    ignore temp12
    ignore intrusion0
    ignore intrusion1
    ignore beep_enable
chip "nvme-pci-*"
    ignore temp2
    ignore temp3
# to get the sensor names under each chip, look at the raw output
sensors -u
# for reference, see
https://gist.github.com/gtirloni/db01fb789a80b35f546b0f6f2756e477

More Rabbit Holes:

I made a sensor config file in home that specifies what sensors to show:

/home/“user”/Sensors

and made it executable with chmod

and if I run “watch -n 2 /home/“user”/Sensors” I get:


Every 2.0 s: /home/“user”/Sensors cachyos-x8664: Sun 21 Jun 2026 03:05:30 PM
in 0.029s (0)
k10temp-pci-00c3
Adapter: PCI adapter
Tctl: +44.6°C
Tccd1: +34.0°C

amdgpu-pci-0300
Adapter: PCI adapter
vddgfx: 236.00 mV
fan1: 0 RPM (min = 0 RPM, max = 3600 RPM)
edge: +45.0°C (crit = +100.0°C, hyst = -273.1°C)
(emerg = +105.0°C)
junction: +48.0°C (crit = +110.0°C, hyst = -273.1°C)
(emerg = +115.0°C)
mem: +46.0°C (crit = +105.0°C, hyst = -273.1°C)
(emerg = +110.0°C)
PPT: 25.00 W (cap = 160.00 W)
pwm1: 0%
sclk: 24 MHz
mclk: 1 GHz

nvme-pci-0400
Adapter: PCI adapter
Composite: +37.9°C (low = -273.1°C, high = +89.8°C)
(crit = +94.8°C)
Sensor 1: +37.9°C (low = -273.1°C, high = +65261.8°C)
Sensor 2: +40.9°C (low = -273.1°C, high = +65261.8°C)

Which isn’t too bad, I get more info than I need but it’s a solution. Now I am going to dive into a whole bunch more rabbit holes and see if I can turn that into a graphical display of sorts.

I forgot to add the Sensor config which is very simple:


sensors k10temp-pci-00c3
sensors amdgpu-pci-0300
sensors nvme-pci-0400


That’s it, nothing complicated, and yes, while it looks like my drive will operate at both 0 degrees Kelvin and the temperature on the surface of the sun, I’m not too concerned about both the low and high limits, as long as I can see current temps, all is good.

to monitor your GPU temps why are you not looking at these which should already exist in your system monitor options under GPU.

 edge: +45.0°C (crit = +100.0°C, hyst = -273.1°C)
 junction: +48.0°C (crit = +110.0°C, hyst = -273.1°C)
 mem: +46.0°C (crit = +105.0°C, hyst = -273.1°C)

they may go by other names in the system monitor, but there should be three temps listed and it shouldn’t be difficult to figure out which one is which.

on your other sensors, i would say any sensor that is reporting primordial ooze and surface of the sun temp limits are to be included into the bogas/useless temperature monitor camp i mention in my notes… i would not consider them reliable indications of anything.

if you notice in my example i exclude two of my nvme temperature sensors for the exact reason, but the remaining one is valid and works to keep tabs on drive temps.

also you can sometimes use drive temp as a prox for GPU if the dive is directly above the GPU slot as that slot gets heated by both the GPU and by nvme disk usage.

I don’t have those options in system monitor. There are no options for any temperatures in system monitor. All I have in system monitor is device usage, CPU, GPU, Drive and Ram usage, no temperatures at all.

Hey @ethyrdude . Please try this fix.

  1. Find the file ~/.local/share/plasma/plasmoids/org.kde.olib.thermalmonitor/contents/ui/config/AvailableSensors.qml.
  2. Find the line 38 that reads:
    return sensorId.length > 0 && display.includes(“(°C)”) && !display.includes(“[”);
  3. Change the line to:
    return sensorId.length > 0 && display.includes(“(°C)”) && !display.includes(“[Group]”);
  4. Restart the Plasma.
  5. Check the list of available sensors in Thermal Monitor widget.

GPU sensors in Plasma 6.7 now have a [ character which original code for Thermal Monitor recognizes as a sensor group and filters it up. Like in my case the GPU is called “GA106 [GeForce RTX 3060 Lite Hash Rate]” (this comes from `lspci`).

AvailableSensors.qml does not exist. Sensors.qml does not have “return sensorId.length…”

No line to change. Oops misread, not deep enough in. BRB.

Is this the Thermal Monitor you are using?

Made the change, broke the widget, put the old code back, widget working without GPU, went back in and added a closing “]” bracket. Widget now works correctly. Yay!!!

It doesn’t like [group] just use [ ] with no spaces between the brackets.

As you suggested the change, going to let you put in a corrected version so you can mark it as the solution.

I guess you did not put [Group] in double quotes like "[Group]"?

Also, the forum is converting the quotes to Unicode open and closed quote (which are different characters) so if you copy-pasted them as is, that could also be the reason. Use the regular quote characters.

Unfortunately, I can’t edit my original post to fix these quote characters.

Anyway, I’ve made a pull request to the widget author so I hope it gets fixed upstream:

It doesn’t like ([group]) or (“[group]”), but(" ") works just fine.

ie: return sensorId.length > 0 && display.includes(“(°C)”) && !display.includes(“”);

TO be honest, another rabbit hole but a fun one with a bit of a learning curve.

Try "[Group]" with uppercase G. Not excluding group sensors is maybe what kills the widget. By now I’m guessing a lot because I don’t know exactly what you did.