#!/bin/sh DEFAULT_COLOR="#cccccc" STATUS_WELL_COLOR="#31f53e" STATUS_OK_COLOR="#f58c31" STATUS_UNWELL_COLOR="#f53131" BATTERY_NAME="BAT1" BATTERY_EMPTY_THRESHOLD=20 BATTERY_FULL_THRESHOLD=80 WIFI_ADAPTER="wlan0" DISK_ICON_COLOR="#48a3e8" NOW_PLAYING_COLOR="#e647a1" NOW_PLAYING_STATE_COLOR="#ccca4e" SSID_HIDE_FILE="/tmp/monitors_no-ssid" readable_kib() { data="${1:-}" decimals="${2:-}" [ -z "$data" ] || [ -z "$decimals" ] && exit if [ "$data" -lt 1024 ]; then amt="$1" letter="K" elif [ "$data" -lt 1048576 ]; then amt="$(($1 / 1024))" letter="M" else amt="$(($1 / 1048576))" letter="G" fi printf "%.*f%s\n" "$decimals" "$amt" "$letter" } monitor_battery() { read -r capacity %s%% (%s)\n' "$icon" "$color" "$capacity" "$status" } monitor_cpu() { sleep_time="${2:-1}" while read -r _ user _ system idle _; do initial_user_sys="$((user + system))" initial_total="$((user + system + idle))" break done /dev/null 2>&1; then while read -r line; do case "$line" in *"Package id 0:"*) temp="$line" ;; esac done <%i%%)\n' "$temp" "$color" "$usage_percent" else printf '%i%%\n' "$color" "$usage_percent" fi } monitor_load() { while read -r one five fifteen _; do load_one="$one" load_five="$five" load_fifteen="$fifteen" done %s %s %s\n' "$load_one_color" "$load_one" "$load_five_color" "$load_five" "$load_fifteen_color" "$load_fifteen" } monitor_memory() { while read -r label size _; do case "$label" in "MemTotal:") total_mem="$size" ;; "MemAvailable:") free_mem="$size" ;; esac done %s%%)\n' "$(readable_kib "$used_mem" 1)" "$color" "$usage_percent" } monitor_ssid() { if [ -f "$SSID_HIDE_FILE" ]; then while IFS= read -r line; do hidden_ssid="$line" done <"$SSID_HIDE_FILE" fi while IFS= read -r line; do case "$line" in *"Connected network"*) [ ! -f "$SSID_HIDE_FILE" ] && ssid="$line" || ssid="$hidden_ssid" ;; esac done <%s %s/%s (%s%%)\n' "$DISK_ICON_COLOR" "$icon" "$(readable_kib "$used_amt" 0)" "$(readable_kib "$size_amt" 0)" "$STATUS_WELL_COLOR" "$((used_amt * 100 / size_amt))" } monitor_now_playing() { mpc_output="$(mpc)" while read -r line; do now_playing="$line" break done <%s [%s]\n' "$NOW_PLAYING_COLOR" "$now_playing" "$NOW_PLAYING_STATE_COLOR" "$play_state" } if command -v monitor_"$1" >/dev/null 2>&1; then monitor_"$1" "$@" else exit 1 fi