feat: add custom/disk-monitor waybar module with color-coded disk usage

This commit is contained in:
2026-05-20 14:28:40 -04:00
parent 7b1998a40d
commit 18dd99d798
3 changed files with 37 additions and 0 deletions

View File

@@ -25,6 +25,7 @@
"modules-right": [ "modules-right": [
"group/hardware", "group/hardware",
"custom/disk-monitor",
"pulseaudio", "pulseaudio",
"bluetooth", "bluetooth",
"network", "network",

View File

@@ -88,6 +88,13 @@
"path": "/", "path": "/",
"on-click": "kitty btop" "on-click": "kitty btop"
}, },
// disk monitor (standalone, color-coded)
"custom/disk-monitor": {
"exec": "$HOME/.config/waybar/scripts/disk-monitor.sh --waybar",
"return-type": "json",
"interval": 60
},
// memory // memory
"memory": { "memory": {

View File

@@ -0,0 +1,29 @@
#!/usr/bin/env bash
# disk-monitor.sh -- Waybar disk usage monitor
# Outputs JSON for custom/disk-monitor module
# Class: "good" (<80%), "warning" (80-90%), "critical" (>90%)
set -euo pipefail
# Target partition (default: root)
TARGET="${1:-/}"
# Get disk usage percentage (strip % sign)
USAGE=$(df --output=pcent "$TARGET" | tail -1 | tr -d '% ')
# Determine icon and CSS class based on usage thresholds
if [ "$USAGE" -ge 90 ]; then
CLASS="critical"
TOOLTIP="Disk $TARGET at ${USAGE}% - CRITICAL"
elif [ "$USAGE" -ge 80 ]; then
CLASS="warning"
TOOLTIP="Disk $TARGET at ${USAGE}% - Warning"
else
CLASS="good"
TOOLTIP="Disk $TARGET at ${USAGE}%"
fi
# Output JSON for waybar
printf '{"text": " \uf4be %s%% ", "class": "%s", "alt": "%s", "tooltip": "%s"}\n' \
"$USAGE" "$CLASS" "disk-$CLASS" "$TOOLTIP"