mirror of
https://github.com/kuhyx/scripts.git
synced 2026-07-04 15:23:11 +02:00
feat: made gpu temperature info work for intel gpu
This commit is contained in:
parent
7c167fb30b
commit
50ed6f1c38
@ -1,40 +1,15 @@
|
|||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
|
|
||||||
# CPU Temperature
|
# CPU Metrics
|
||||||
cpu_temp=$(sensors | awk '/^Tctl:/ {print $2}' | tr -d '+°C')
|
cpu_metrics=$(bash /home/kuchy/i3-configuration/i3blocks/cpu_monitor.sh)
|
||||||
if [ -z "$cpu_temp" ]; then
|
cpu_temp=$(echo "$cpu_metrics" | awk -F', ' '{print $1}' | awk -F': ' '{print $2}')
|
||||||
cpu_temp="N/A"
|
cpu_load=$(echo "$cpu_metrics" | awk -F', ' '{print $2}' | awk -F': ' '{print $2}')
|
||||||
fi
|
cpu_color=$(echo "$cpu_metrics" | awk -F', ' '{print $3}' | awk -F': ' '{print $2}')
|
||||||
|
|
||||||
# CPU Load (1-minute average)
|
# GPU Metrics
|
||||||
cpu_load=$(awk '{print $1}' /proc/loadavg)
|
gpu_metrics=$(bash /home/kuchy/i3-configuration/i3blocks/gpu_monitor.sh)
|
||||||
if [ -z "$cpu_load" ]; then
|
gpu_temp=$(echo "$gpu_metrics" | awk -F', ' '{print $1}' | awk -F': ' '{print $2}')
|
||||||
cpu_load="N/A"
|
gpu_load=$(echo "$gpu_metrics" | awk -F', ' '{print $2}' | awk -F': ' '{print $2}')
|
||||||
fi
|
|
||||||
|
|
||||||
# GPU Temperature
|
|
||||||
gpu_temp=$(nvidia-smi --query-gpu=temperature.gpu --format=csv,noheader,nounits 2>/dev/null)
|
|
||||||
if [ -z "$gpu_temp" ]; then
|
|
||||||
gpu_temp="N/A"
|
|
||||||
fi
|
|
||||||
|
|
||||||
# GPU Load
|
|
||||||
gpu_load=$(nvidia-smi --query-gpu=utilization.gpu --format=csv,noheader,nounits 2>/dev/null)
|
|
||||||
if [ -z "$gpu_load" ]; then
|
|
||||||
gpu_load="N/A"
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Colors for CPU Load
|
|
||||||
cpu_color="#FFFFFF" # Default color
|
|
||||||
if [[ "$cpu_load" != "N/A" ]]; then
|
|
||||||
if (( $(echo "$cpu_load < 1.0" | bc -l) )); then
|
|
||||||
cpu_color="#50FA7B" # Green
|
|
||||||
elif (( $(echo "$cpu_load < 2.0" | bc -l) )); then
|
|
||||||
cpu_color="#F1FA8C" # Yellow
|
|
||||||
else
|
|
||||||
cpu_color="#FF5555" # Red
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Colors for GPU Load
|
# Colors for GPU Load
|
||||||
gpu_color="#FFFFFF" # Default color
|
gpu_color="#FFFFFF" # Default color
|
||||||
@ -49,7 +24,7 @@ if [[ "$gpu_load" != "N/A" ]]; then
|
|||||||
fi
|
fi
|
||||||
|
|
||||||
# Output
|
# Output
|
||||||
echo -e "<span color=\"$cpu_color\"> CPU: ${cpu_temp}°C, Load: ${cpu_load}</span> | <span color=\"$gpu_color\"> GPU: ${gpu_temp}°C, Load: ${gpu_load}%</span>"
|
echo -e "<span color=\"$cpu_color\"> CPU: ${cpu_temp}, Load: ${cpu_load}</span> | <span color=\"$gpu_color\"> GPU: ${gpu_temp}, Load: ${gpu_load}</span>"
|
||||||
echo
|
echo
|
||||||
echo "#FFFFFF" # Default color for fallback (ignored if markup is enabled)
|
echo "#FFFFFF" # Default color for fallback (ignored if markup is enabled)
|
||||||
|
|
||||||
|
|||||||
25
i3blocks/cpu_monitor.sh
Executable file
25
i3blocks/cpu_monitor.sh
Executable file
@ -0,0 +1,25 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
# CPU Temperature
|
||||||
|
cpu_temp=$(sensors | awk '/^Tctl:/ {print $2}' | tr -d '+°C')
|
||||||
|
if [ -z "$cpu_temp" ]; then
|
||||||
|
cpu_temp=$(sensors | awk '/^Package id 0:/ {print $3}' | tr -d '+°C')
|
||||||
|
fi
|
||||||
|
if [ -z "$cpu_temp" ]; then
|
||||||
|
cpu_temp="N/A"
|
||||||
|
fi
|
||||||
|
|
||||||
|
# CPU Load (1-minute average)
|
||||||
|
cpu_load=$(awk '{print $1}' /proc/loadavg)
|
||||||
|
if [ -z "$cpu_load" ]; then
|
||||||
|
cpu_load="N/A"
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Colors for CPU Load
|
||||||
|
cpu_color="#FFFFFF" # Default color
|
||||||
|
if [[ "$cpu_load" != "N/A" ]]; then
|
||||||
|
# Add logic to change color based on load
|
||||||
|
:
|
||||||
|
fi
|
||||||
|
|
||||||
|
echo "CPU Temp: $cpu_temp°C, CPU Load: $cpu_load, Color: $cpu_color"
|
||||||
40
i3blocks/gpu_monitor.sh
Executable file
40
i3blocks/gpu_monitor.sh
Executable file
@ -0,0 +1,40 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
# Function to get NVIDIA GPU metrics
|
||||||
|
get_nvidia_metrics() {
|
||||||
|
gpu_temp=$(nvidia-smi --query-gpu=temperature.gpu --format=csv,noheader,nounits 2>/dev/null)
|
||||||
|
if [ -z "$gpu_temp" ]; then
|
||||||
|
gpu_temp="N/A"
|
||||||
|
fi
|
||||||
|
|
||||||
|
gpu_load=$(nvidia-smi --query-gpu=utilization.gpu --format=csv,noheader,nounits 2>/dev/null)
|
||||||
|
if [ -z "$gpu_load" ]; then
|
||||||
|
gpu_load="N/A"
|
||||||
|
fi
|
||||||
|
|
||||||
|
echo "GPU Temp: $gpu_temp°C, GPU Load: $gpu_load%"
|
||||||
|
}
|
||||||
|
|
||||||
|
# Function to get Intel GPU metrics
|
||||||
|
get_intel_metrics() {
|
||||||
|
gpu_load=$(cat /sys/class/drm/card0/device/gpu_busy_percent 2>/dev/null)
|
||||||
|
if [ -z "$gpu_load" ]; then
|
||||||
|
gpu_load="N/A"
|
||||||
|
fi
|
||||||
|
|
||||||
|
gpu_temp=$(sensors | awk '/^temp1:/ {print $2; exit}' | tr -d '+°C')
|
||||||
|
if [ -z "$gpu_temp" ]; then
|
||||||
|
gpu_temp="N/A"
|
||||||
|
fi
|
||||||
|
|
||||||
|
echo "GPU Temp: $gpu_temp°C, GPU Load: $gpu_load%"
|
||||||
|
}
|
||||||
|
|
||||||
|
# Detect GPU type and get metrics
|
||||||
|
if lspci | grep -i nvidia > /dev/null; then
|
||||||
|
get_nvidia_metrics
|
||||||
|
elif lspci | grep -i vga | grep -i intel > /dev/null; then
|
||||||
|
get_intel_metrics
|
||||||
|
else
|
||||||
|
echo "No supported GPU found."
|
||||||
|
fi
|
||||||
@ -1,5 +1,6 @@
|
|||||||
#!/bin/sh
|
#!/bin/sh
|
||||||
sudo pacman -S --needed ttf-dejavu noto-fonts ttf-font-awesome bc
|
yes | sudo pacman -S --needed ttf-dejavu noto-fonts ttf-font-awesome bc intel-gpu-tools jq
|
||||||
|
sudo setcap cap_perfmon+ep /usr/bin/intel_gpu_top
|
||||||
cp -r i3blocks ~/.config/
|
cp -r i3blocks ~/.config/
|
||||||
cp -r i3 ~/.config/
|
cp -r i3 ~/.config/
|
||||||
i3-msg reload
|
i3-msg reload
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user