#!/usr/bin/env bash
# Temperature module with icon (f2c9)
CPU_TEMP=$(sensors | awk '
/^Tdie|^Package id|^Core 0|^CPU|^temp1/ {
gsub(/[+°C]/, "");
for (i=1; i<=NF; i++) {
if ($i ~ /^[0-9]+(\.[0-9]+)?$/) {
gsub(/\..*/, "", $i);
print $i;
exit;
}
}
}')
# Fallback if not found
if [ -z "$CPU_TEMP" ]; then
CPU_TEMP=$(sensors | grep -E '^(Core 0|Package id 0|CPU)' | awk '{print $3}' | tr -d '+°C' | head -n1)
fi
[ -z "$CPU_TEMP" ] && CPU_TEMP="N/A"
# Try GPU temp (NVIDIA or AMD)
if command -v nvidia-smi >/dev/null 2>&1; then
GPU_TEMP=$(nvidia-smi --query-gpu=temperature.gpu --format=csv,noheader)
else
GPU_TEMP=$(sensors | awk '/^edge|^junction/ {gsub(/\+/,""); gsub(/\..*/,"",$2); print $2}')
fi
[ -z "$GPU_TEMP" ] && GPU_TEMP="N/A"
# Memory usage
MEM_USE=$(free -m | awk '/^Mem/ {printf "%.1f", ($3)/1024}')
# Send to bar using (f2c9) icon
echo " ${CPU_TEMP}°C ${MEM_USE}g"
# Clicking on bar
case $BLOCK_BUTTON in
1) setsid -w -f "$TERMINAL" -e btop ;;
3) notify-send " Temperature" "CPU: ${CPU_TEMP}°C\nGPU: ${GPU_TEMP}°C\nMemory: ${MEM_USE}GB" ;;
6) setsid -f "$TERMINAL" -e "$EDITOR" "$0" ;;
esac