added waybar config

This commit is contained in:
2026-06-11 19:09:42 +02:00
parent ad2f7c1079
commit 4c8bdc323b
14 changed files with 1476 additions and 0 deletions
+79
View File
@@ -0,0 +1,79 @@
#!/bin/bash
# version 2
# written by fennek182
# for personal use
# waybar module to display gpu usage - for all gpus using mesa (intel)
round() {
number="$(echo $1 | sed 's/\./,/')"
printf "%.${2:-0}f" "$number"
}
gpu_usage=$(cat /sys/class/drm/card1/device/gpu_busy_percent)
gpu_temp_core=$(sensors | grep "edge" | awk '{ print $2 }' | cut -c 2-3) #edge temp, there's also junction and mem
gpu_temp_hotspot=$(sensors | grep "junction" | awk '{ print $2 }' | cut -c 2-3) #edge temp, there's also junction and mem
gpu_temp_mem=$(sensors | grep "mem" | awk '{ print $2 }' | cut -c 2-3) #edge temp, there's also junction and mem
gpu_clock=$(cat /sys/class/drm/card1/device/pp_dpm_sclk | grep "*" | awk '{ print $2 }')
gpu_power=$(sensors | grep "PPT" | awk '{ print $2 }')
gpu_power=$(echo "${gpu_power%%.*}")
# gpu_power=$(sensors | grep "PPT" | awk '{ print $2 }' | head -c2)
fan_current_rpm=$(sensors | grep "fan1" | awk '{ print $2 }')
fan_max_rpm=$(sensors | grep "fan1" | awk '{ print $10 }')
fan_duty=$(echo "$(awk "BEGIN { print "$fan_current_rpm/$fan_max_rpm*100" }" | head -c2 )")
# vram_size=$(nvidia-smi -q | grep 'Total' | head -n1 | awk '{print int($3/1000)}')
vram_size=20
vram_used=$(cat /sys/class/drm/card1/device/mem_info_vram_used)
# vram_used=$(echo $vram_used | sed 's/G//')
vram_used_percentage=$(echo "$(awk "BEGIN { print "$vram_used/21474836480*100" }" | cut -c1-4 )")
vram_used_percentage=$(round $vram_used_percentage 0)
# todo: use MB and TB insted of MiB and GiB and hide the G if it's >= 1 GB
# auto format to human readable file size unit
vram_used=$(printf %s\\n $vram_used | numfmt --to=si | sed 's/G*//g')
# vram_used=$(printf %s\\n $vram_used | numfmt --to=iec-i | sed 's/.$//')
# make usage human readable
# vram_used_mib=$(echo "$(awk "BEGIN { print "$vram_used/1024/1024" }" | head -c4)")
# when the usage in MiB is greater than 999MBiB, so over 1G
# if [ ${#vram_used/1024/1024} -gt 1000 ]; then
# vram_used=$(echo "$(awk "BEGIN { print "$vram_used/1024/1024/1024" }")G")
# else
# vram_used=$(echo "$(awk "BEGIN { print "$vram_used/1024/1024" }" | head -c3 )M")
# fi
#echo "GPU "$gpu_usage"% $gpu_temp°C "$gpu_clock"MHz "$gpu_power"W FAN "$fan_duty"% VRAM "$vram_used_percentage"% $vram_used" / "$vram_size"G
# hide core clock and vram usage if gpu usage is below 50%
# [[ $fan_duty == "0" ]] && echo ""$gpu_usage"% $gpu_temp_core°C "$gpu_power"W 󰈐 "$fan_duty"%"
# [[ $gpu_usage -lt 51 ]] && echo "$usage% $power_package"
# [[ $gpu_usage -lt "51" ]] && echo ""$gpu_usage"% $gpu_temp_core°C "$gpu_power"W"
# when called from terminal, show the info and exit
# TODO: make this properly check if run from terminal
[[ "$1" == "-a" ]] && echo ""$gpu_usage"% C: $gpu_temp_core°C H: $gpu_temp_hotspot°C M: $gpu_temp_mem°C "$gpu_clock" "$gpu_power"W 󰈐 "$fan_duty"% "$fan_current_rpm"RPM 󰆼 "$vram_used_percentage"% $vram_used"/"$vram_size"GB && exit
[[ $gpu_temp_core -lt "65" ]] && [[ $gpu_usage -lt "51" ]] && echo ""$gpu_usage"% "$gpu_power"W"
[[ $gpu_temp_core -gt "66" ]] && echo ""$gpu_usage"% $gpu_temp_core °C "$gpu_power"W"
# [[ $gpu_usage -lt "51" ]] && echo ""$gpu_usage"% $gpu_temp_core°C "$gpu_power"W"
# [[ $gpu_usage -lt "50" ]] && echo ""$gpu_usage"% $gpu_temp°C "$gpu_power"W 󰈐 "$fan_duty"%"
# [[ $gpu_usage -lt "50" ]] && echo ""$gpu_usage"% $gpu_temp°C "$gpu_power"W 󰈐 "$fan_duty"% "$fan_current_rpm"RPM"
# echo "GPU "$gpu_usage"% $gpu_temp°C "$gpu_clock"MHz "$gpu_power"W FAN "$fan_duty"% VRAM "$vram_used_percentage"% $vram_used"/"$vram_size"G
# echo ""$gpu_usage"% $gpu_temp°C "$gpu_clock"MHz "$gpu_power"W FAN "$fan_duty"% VRAM "$vram_used_percentage"% $vram_used"/"$vram_size"G
# echo ""$gpu_usage"% $gpu_temp_core°C "$gpu_clock" "$gpu_power"W 󰈐 "$fan_duty"% "$fan_current_rpm"RPM 󰆼 "$vram_used_percentage"% $vram_used"/"$vram_size"G
# older output with more withspace for the temps - used until 2026-05-04:
# echo ""$gpu_usage"% C: $gpu_temp_core°C H: $gpu_temp_hotspot°C M: $gpu_temp_mem°C "$gpu_clock" "$gpu_power"W 󰈐 "$fan_duty"% "$fan_current_rpm"RPM 󰆼 "$vram_used_percentage"% $vram_used"/"$vram_size"GB
echo ""$gpu_usage"% C/H/M: $gpu_temp_core/$gpu_temp_hotspot/$gpu_temp_mem°C "$gpu_clock" "$gpu_power"W 󰈐 "$fan_duty"% "$fan_current_rpm"RPM 󰆼 "$vram_used_percentage"% $vram_used"GB
#