Es gibt einen eleganten und resourcen schonenden Weg sämtliche sensors Daten anzuzeigen. Die Conky Entwickler selbst raten vom Einsatz von exec ab wenn es vermeidbar ist. Einfach weil exec das System erheblich mehr belastet als der direkt Zugriff.
Sämtliche Sensoren eines Mainboard findet mal unter /sys/class/hwmon Für jeden Sensor Chip wird in diesem Verzeichnis ein eigenes hwmonX Verzeichnis angelegt, start mit hwmon0 u.s.w.
Jedes dieser Verzeichnisse enthält eine Datei die "name" heisst. Diese Datei enthält den Namen des in diesem Verzeichnis enthaltenen Sensors. Als Beispiel mal meine 4 hwmon Verzeichnisse:
hwmon0 -> name: nvme (enthält offensichtlich die Daten meiner nvme SSD)
hwmon1 -> name: amdgpu (Enthält Daten zu meiner in der CPU intergrierten GPU)
hwmon2 -> name: nct6793 (Das Verzeichnis Hauptsensors. Enthält bei mir 292 Objekte)
hwmon3 -> neme: k10temp (enthält Daten zu meiner Ryzen CPU)
Die interessanten Daten sind sämtliche input_ Dateien:
in0_input: enthält den wert der im Terminal mit Sensors in der Zeile in0: angezeigt wird
fan1_input: man errät es schon enthält den sensors Wert hinter fan1:
u.s.w.
Jetzt der Zugriff per Conky:
${hwmon 2 fan 2} entspricht ${exec sensors | grep 'fan2' | awk '{print $2}'} und das nur wenn sensors nur einen fan2 ausgibt. Bei mehreren Möglichkeiten wird der exec Befehl noch umfangreicher. Per hwmon ändert sich einfach nur das erste Argument zu hwmon.
Beispiele:
${hwmon X in X}: Spannung (inX_input)
${hwmon X fan X}: Lüfter Drehzahl (fanX_input)
${hwmon X freq X}: Frequenz (freqX_input)
${hwmon X temp X}: Temperatur (tempX_input)
Sämtliche Werte in meinem Conky werden per ${hwmon X arg X) angezeigt. Auch die werte der Elleipsen. Einzige Ausnahme ist meine öffentliche IP. Die kommt per execi: ${execi 7200 curl https://ipinfo.io/ip}