From 19e4263ed6018782f384dd613fbe4d05aba7e751 Mon Sep 17 00:00:00 2001 From: pfych Date: Sun, 13 Jul 2025 13:37:42 +1000 Subject: [PATCH] Updated taskbar script --- .config/scripts/util/mouse-battery.sh | 19 -------- .config/scripts/util/taskbar.sh | 67 +++++++++++++++++++++++++++ 2 files changed, 67 insertions(+), 19 deletions(-) delete mode 100755 .config/scripts/util/mouse-battery.sh create mode 100755 .config/scripts/util/taskbar.sh diff --git a/.config/scripts/util/mouse-battery.sh b/.config/scripts/util/mouse-battery.sh deleted file mode 100755 index 36ee2ab..0000000 --- a/.config/scripts/util/mouse-battery.sh +++ /dev/null @@ -1,19 +0,0 @@ -#!/bin/sh - -DETAILS=$(rivalcfg --battery-level) -STATUS=$(echo $DETAILS | cut -d' ' -f1) -LEVEL=$(echo $DETAILS | cut -d']' -f2 | tr -d '[:space:]') - -if [ "$STATUS" != 'Discharging' ] && [ "$STATUS" != 'Charging' ]; then - cat /tmp/last-mouse-level.txt -else - if [ $STATUS == 'Discharging' ]; then - STATUS_EMOJI='🐁' - else - STATUS_EMOJI='⚡' - fi - - echo "| $STATUS_EMOJI $LEVEL |" > /tmp/last-mouse-level.txt - cat /tmp/last-mouse-level.txt -fi - diff --git a/.config/scripts/util/taskbar.sh b/.config/scripts/util/taskbar.sh new file mode 100755 index 0000000..bb300f7 --- /dev/null +++ b/.config/scripts/util/taskbar.sh @@ -0,0 +1,67 @@ +#!/bin/sh + +NOW=$(date +%s) + +debounce () { + local -n VAR_REFERENCE=$1 # Funky Bash Pass-by-reference here! + VAR_NAME="$1" + DEBOUNCE_TIME="$2" + FUNCTION=$3 + FALLBACK=$4 + + if [ ! -f "/tmp/debounce-$VAR_NAME" ]; then + VAR_REFERENCE="$FUNCTION" + echo "$(date +%s)" > "/tmp/debounce-$VAR_NAME" + else + LAST_CHECK=$(cat "/tmp/debounce-$VAR_NAME") + + if [ $(($NOW - $LAST_CHECK)) -gt $DEBOUNCE_TIME ]; then + VAR_REFERENCE="$FUNCTION" + echo "$(date +%s)" > "/tmp/debounce-$VAR_NAME" + else + VAR_REFERENCE="$FALLBACK" + fi + fi +} + +get_mouse_text () { + MOUSE_DETAILS=$(rivalcfg --battery-level) + MOUSE_STATUS=$(echo $MOUSE_DETAILS | cut -d' ' -f1) + MOUSE_BATTERY=$(echo $MOUSE_DETAILS | cut -d']' -f2 | tr -d '[:space:]') + + if [ "$MOUSE_STATUS" != 'Discharging' ] && [ "$MOUSE_STATUS" != 'Charging' ]; then + cat /tmp/last-mouse-level + else + if [ $MOUSE_STATUS == 'Discharging' ]; then + MOUSE_STATUS_EMOJI='🐁' + else + MOUSE_STATUS_EMOJI='⚡' + fi + + echo "$MOUSE_STATUS_EMOJI $MOUSE_BATTERY" > /tmp/last-mouse-level + cat /tmp/last-mouse-level + fi +} + +get_monero_text () { + MONERO_DETAILS=$(monerod status | grep "Height") + MONERO_PERCENT=$(echo $MONERO_DETAILS | cut -d" " -f3 | tr -d "()") + + if [ -n "$MONERO_DETAILS" ]; then + echo "🟢 $MONERO_PERCENT" > /tmp/last-monero-value + else + echo "🔴" > /tmp/last-monero-value + fi + + cat /tmp/last-monero-value +} + +debounce MOUSE_STRING 3600 \ + "$(get_mouse_text)" \ + "$(cat /tmp/last-mouse-level || get_mouse_text)"; + +debounce MONERO_STRING 60 \ + "$(get_monero_text)" \ + "$(cat /tmp/last-monero-value || get_monero_text)"; + +echo "| $MOUSE_STRING | $MONERO_STRING |"