diff --git a/defaults/bin/moonarch-waybar-hidpp b/defaults/bin/moonarch-waybar-hidpp new file mode 100755 index 0000000..87a05fb --- /dev/null +++ b/defaults/bin/moonarch-waybar-hidpp @@ -0,0 +1,48 @@ +#!/usr/bin/bash +# ABOUTME: Waybar-Modul das den Batteriestatus eines HID++ Geräts als JSON ausgibt. +# ABOUTME: Findet den richtigen hidpp_battery_* Eintrag dynamisch per MODEL_NAME (Argument). + +if [ -z "$1" ]; then + echo "Usage: moonarch-waybar-hidpp " >&2 + exit 1 +fi + +MODEL="$1" + +for dev in /sys/class/power_supply/hidpp_battery_*; do + [ -d "$dev" ] || continue + name=$(cat "$dev/model_name" 2>/dev/null) + if [ "$name" = "$MODEL" ]; then + capacity=$(cat "$dev/capacity" 2>/dev/null) + status=$(cat "$dev/status" 2>/dev/null) + + if [ -z "$capacity" ]; then + exit 0 + fi + + class="normal" + if [ "$capacity" -le 20 ]; then + class="critical" + elif [ "$capacity" -le 35 ]; then + class="warning" + fi + + if [ "$status" = "Charging" ]; then + text="${capacity}% 󰌌" + else + text="${capacity}% 󰌌" + fi + + tooltip="${name}: ${capacity}% (${status})" + + jq --compact-output -n \ + --arg text "$text" \ + --arg tooltip "$tooltip" \ + --arg class "$class" \ + --argjson percentage "$capacity" \ + '{text: $text, tooltip: $tooltip, class: $class, percentage: $percentage}' + exit 0 + fi +done + +# Gerät nicht gefunden — keine Ausgabe, Waybar versteckt das Modul diff --git a/defaults/user/waybar/config b/defaults/user/waybar/config index 8e0fa55..6a75df3 100644 --- a/defaults/user/waybar/config +++ b/defaults/user/waybar/config @@ -15,23 +15,19 @@ // "group/net", // "group/sound", // "backlight", + // "custom/keyboard", // "battery", - // "battery#keyboard", // "group/indicators" // ], - // Beispiel: Logitech-Tastatur-Akku anzeigen - // (hidpp_battery_X ggf. anpassen — siehe /sys/class/power_supply/) + // Beispiel: HID++ Geräte-Akku anzeigen (z.B. Logitech Tastatur) + // moonarch-waybar-hidpp findet den richtigen hidpp_battery_* Eintrag dynamisch // - // "battery#keyboard": { - // "bat": "hidpp_battery_4", + // "custom/keyboard": { + // "exec": "moonarch-waybar-hidpp 'G515 LS TKL'", + // "return-type": "json", // "interval": 120, - // "states": { - // "warning": 35, - // "critical": 20 - // }, - // "format": "{capacity}% 󰌌", - // "format-charging": "{capacity}% 󰌌", - // "tooltip-format": "Tastatur: {capacity}%" + // "format": "{}", + // "exec-on-event": false // } }