feat(waybar): modules cpu-temp et disks portables par scripts
Remplace les modules natifs temperature (thermal-zone codé en dur) et disk (chemin fixe /) par des custom scripts auto-détectés. - cpu-temp.sh : détecte x86_pkg_temp / k10temp / coretemp via thermal_zone et hwmon, émet warning à 65° et critical à 80° - disks.sh : liste tous les FS montés réels, exclut snap/tmpfs/efi, affiche icône selon le point de montage, tooltip détaillé CSS : styles warning + hover ajoutés pour les deux modules
This commit is contained in:
58
INSTALL/configs/waybar/scripts/disks.sh
Executable file
58
INSTALL/configs/waybar/scripts/disks.sh
Executable file
@@ -0,0 +1,58 @@
|
||||
#!/usr/bin/env bash
|
||||
# disks.sh — liste les vrais systèmes de fichiers montés → JSON waybar
|
||||
# Exclut tmpfs, devtmpfs, squashfs (snap), overlay, efi, etc.
|
||||
|
||||
TEXT=""
|
||||
TOOLTIP=" Disques\n"
|
||||
|
||||
while IFS= read -r line; do
|
||||
fs=$(awk '{print $1}' <<< "$line")
|
||||
size=$(awk '{print $2}' <<< "$line")
|
||||
used=$(awk '{print $3}' <<< "$line")
|
||||
avail=$(awk '{print $4}' <<< "$line")
|
||||
pct=$(awk '{print $5}' <<< "$line")
|
||||
mnt=$(awk '{print $6}' <<< "$line")
|
||||
|
||||
# Exclure mounts sans intérêt
|
||||
[[ "$mnt" == /snap/* ]] && continue
|
||||
[[ "$mnt" == /boot/efi ]] && continue
|
||||
[[ "$mnt" == /boot ]] && continue
|
||||
[[ "$mnt" == /recovery ]] && continue
|
||||
[[ "$mnt" == /run* ]] && continue
|
||||
[[ "$mnt" == /sys* ]] && continue
|
||||
[[ "$mnt" == /proc* ]] && continue
|
||||
[[ "$mnt" == /dev* ]] && continue
|
||||
|
||||
# Icône selon le point de montage
|
||||
case "$mnt" in
|
||||
/) icon="" ;;
|
||||
/home) icon="" ;;
|
||||
/data*) icon="" ;;
|
||||
/media*) icon="" ;;
|
||||
/mnt*) icon="" ;;
|
||||
*) icon="" ;;
|
||||
esac
|
||||
|
||||
# Texte compact : icône + montage court + espace utilisé
|
||||
label=$(basename "$mnt")
|
||||
[[ "$mnt" == "/" ]] && label="/"
|
||||
[[ -n "$TEXT" ]] && TEXT+=" "
|
||||
TEXT+="${icon} ${label}: ${used}"
|
||||
|
||||
TOOLTIP+="${icon} ${mnt}\n Utilisé : ${used} / ${size} (${pct})\n Libre : ${avail}\n"
|
||||
|
||||
done < <(df -hP --exclude-type=tmpfs \
|
||||
--exclude-type=devtmpfs \
|
||||
--exclude-type=squashfs \
|
||||
--exclude-type=overlay \
|
||||
--exclude-type=fuse.portal \
|
||||
--exclude-type=efivarfs \
|
||||
2>/dev/null | tail -n +2 | sort -k6)
|
||||
|
||||
if [[ -z "$TEXT" ]]; then
|
||||
printf '{"text":" N/A","tooltip":"Aucun disque détecté","class":"unavailable"}\n'
|
||||
else
|
||||
# Échapper uniquement les guillemets pour JSON (\n reste tel quel = saut de ligne)
|
||||
TOOLTIP_JSON=$(printf '%s' "$TOOLTIP" | sed 's/"/\\"/g')
|
||||
printf '{"text":"%s","tooltip":"%s"}\n' "$TEXT" "$TOOLTIP_JSON"
|
||||
fi
|
||||
Reference in New Issue
Block a user