#!/bin/sh print_status() { volume_info=$(wpctl get-volume @DEFAULT_AUDIO_SINK@ 2>/dev/null) volume=$(printf '%s' "$volume_info" | awk '{printf "%d%%", $2 * 100}') printf '%s' "$volume_info" | grep -q MUTED && volume="muted" brightness=$(brightnessctl -m 2>/dev/null | awk -F, '{print $4}') battery_device=$(upower -e 2>/dev/null | grep -m 1 battery) if [ -n "$battery_device" ]; then battery=$(upower -i "$battery_device" 2>/dev/null | awk ' /state/ { state=$2 } /percentage/ { percentage=$2 } END { if (percentage != "") { printf "%s", percentage if (state != "") printf " %s", state } } ') fi printf 'VOL %s | BRI %s | BAT %s | %s\n' "${volume:-n/a}" "${brightness:-n/a}" "${battery:-n/a}" "$(date +'%Y-%m-%d %H:%M:%S')" } trap print_status USR1 print_status while :; do sleep 60 & wait $! print_status done