#!/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
