Bug fixes from quality and security audits: - moonarch-capsnote: use value[0] instead of value[2] - moonarch-btnote: guard empty PER_INT before integer comparison - moonarch-clipboard + niri config: use XDG_RUNTIME_DIR instead of UID 1000 - moonarch-waybar-hidpp: use charging icon when charging - moonarch-waybar-gpustat: find gpu_busy_percent dynamically across hwmon* - post-install/transform: use systemctl --user cat for service detection - post-install/transform: install paru from [extra] instead of AUR clone Replace wlogout with moonset in niri keybind and waybar on-click. Remove moonarch-session (dead code, replaced by moonset) and wlogout layout config.
40 lines
1.5 KiB
Bash
Executable File
40 lines
1.5 KiB
Bash
Executable File
#!/usr/bin/bash
|
|
# ABOUTME: Waybar-Modul das die GPU-Auslastung als JSON ausgibt.
|
|
# ABOUTME: Wird von der Waybar custom/gpu-usage Config referenziert.
|
|
|
|
while :
|
|
do
|
|
GPU_STAT=$(cat /sys/class/hwmon/hwmon*/device/gpu_busy_percent 2>/dev/null | head -1 || echo "0")
|
|
GPU_STAT="${GPU_STAT:-0}"
|
|
ICON="<span color='#69ff94' size='8pt' rise='1.5pt'>▁</span>"
|
|
|
|
if [ "$GPU_STAT" -lt 10 ]; then
|
|
ICON="<span color='#69ff94' size='8pt' rise='1.5pt'>▁</span>"
|
|
elif [ "$GPU_STAT" -lt 20 ]; then
|
|
ICON="<span color='#2aa9ff' size='8pt' rise='1.5pt'>▂</span>"
|
|
elif [ "$GPU_STAT" -lt 40 ]; then
|
|
ICON="<span color='#f8f8f2' size='8pt' rise='1.5pt'>▃</span>"
|
|
elif [ "$GPU_STAT" -lt 50 ]; then
|
|
ICON="<span color='#f8f8f2' size='8pt' rise='1.5pt'>▄</span>"
|
|
elif [ "$GPU_STAT" -lt 60 ]; then
|
|
ICON="<span color='#ffffa5' size='8pt' rise='1.5pt'>▅</span>"
|
|
elif [ "$GPU_STAT" -lt 70 ]; then
|
|
ICON="<span color='#ffffa5' size='8pt' rise='1.5pt'>▆</span>"
|
|
elif [ "$GPU_STAT" -lt 80 ]; then
|
|
ICON="<span color='#ff9977' size='8pt' rise='1.5pt'>▇</span>"
|
|
elif [ "$GPU_STAT" -lt 100 ]; then
|
|
ICON="<span color='#dd532e' size='8pt' rise='1.5pt'>█</span>"
|
|
fi
|
|
|
|
s="text|alt|tooltip|class|percentage
|
|
GPU $ICON|GPU $ICON $GPU_STAT%|GPU $ICON $GPU_STAT%|gpustat|$GPU_STAT"
|
|
|
|
jq --unbuffered --compact-output -Rn '
|
|
( input | split("|") ) as $keys |
|
|
( inputs | split("|") ) as $vals |
|
|
[[$keys, $vals] | transpose[] | {key:.[0],value:.[1]}] | from_entries
|
|
' <<<"$s"
|
|
|
|
sleep 5
|
|
done
|