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