diff --git a/.local/bin/monitors b/.local/bin/monitors
index 56cb550..a19197e 100755
--- a/.local/bin/monitors
+++ b/.local/bin/monitors
@@ -13,303 +13,251 @@ 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
+ data="$1"
+ decimals="$2"
- 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
+ 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"
+ printf "%.*f%s\n" "$decimals" "$amt" "$letter"
}
monitor_battery() {
- read -r capacity %s%% (%s)\n' "$icon" "$color" "$capacity" "$status"
+ printf '%s %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
+ printf '%s°C\n' "$temp"
}
monitor_load() {
- while read -r one five fifteen _; do
- load_one="$one"
- load_five="$five"
- load_fifteen="$fifteen"
- done %s' "$color" "$load"
+ [ "$i" -ne 2 ] && printf ' '
- printf '%s %s %s\n' "$load_one_color" "$load_one" "$load_five_color" "$load_five" "$load_fifteen_color" "$load_fifteen"
+ i=$((i + 1))
+ done
+ printf '\n'
+ done %s%%)\n' "$(readable_kib "$used_mem" 1)" "$color" "$usage_percent"
+ printf '%s (%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%%\n' "$icon" "$color" "$volume"
}
monitor_uptime() {
- up="$(uptime -p)"
- up="${up#up }"
- while :; do
- case "$up" in
- *","*) up="${up%%,*}${up#*,}" ;;
- *) break ;;
- esac
- done
- while :; do
- case "$up" in
- *" days"*) up="${up%% days*}d${up#* days}" ;;
- *" day"*) up="${up%% day*}d${up#* day}" ;;
- *" hours"*) up="${up%% hours*}h${up#* hours}" ;;
- *" hour"*) up="${up%% hour*}h${up#* hour}" ;;
- *" minutes"*) up="${up%% minutes*}m${up#* minutes}" ;;
- *" minute"*) up="${up%% minute*}h${up#* minute}" ;;
- *) break ;;
- esac
- done
+ up="$(uptime -p)"
+ up="${up#up }"
+ while :; do
+ case "$up" in
+ *","*) up="${up%%,*}${up#*,}" ;;
+ *) break ;;
+ esac
+ done
+ while :; do
+ case "$up" in
+ *\ days*) up="${up%% days*}d${up#* days}" ;;
+ *\ day*) up="${up%% day*}d${up#* day}" ;;
+ *\ hours*) up="${up%% hours*}h${up#* hours}" ;;
+ *\ hour*) up="${up%% hour*}h${up#* hour}" ;;
+ *\ minutes*) up="${up%% minutes*}m${up#* minutes}" ;;
+ *\ minute*) up="${up%% minute*}h${up#* minute}" ;;
+ *) break ;;
+ esac
+ done
- printf '%s\n' "$up"
-}
-
-monitor_date() {
- date '+%-I:%M:%S %p'
+ printf '%s\n' "$up"
}
monitor_disk() {
- disk="${2:-}"
- use_icon="${3:-0}"
- [ -z "$disk" ] || [ ! -d "$disk" ] && exit 1
+ disk="${2:-}"
+ use_icon="${3:-}"
+ [ -z "$disk" ] || [ ! -d "$disk" ] && exit 1
- if [ "$use_icon" -eq 1 ]; then
- case "$disk" in
- "/") icon="" ;;
- "/home") icon="" ;;
- *) icon="" ;;
- esac
- else
- case "$disk" in
- "/home") icon="~" ;;
- *) icon="$disk" ;;
- esac
- fi
+ if [ -n "$use_icon" ]; then
+ case "$disk" in
+ /) icon="" ;;
+ /home) icon="" ;;
+ *) icon="" ;;
+ esac
+ else
+ case "$disk" in
+ /home) icon="~" ;;
+ *) icon="$disk" ;;
+ esac
+ fi
- i=0
- while read -r _ size used _; do
- case "$i" in
- 0) ;;
- 1)
- size_amt="$size"
- used_amt="$used"
- ;;
- *) break ;;
- esac
- i="$((i + 1))"
- 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))"
+ printf '%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)"
+monitor_service() {
+ service="$2"
- while read -r line; do
- now_playing="$line"
- break
- done <%s [%s]\n' "$NOW_PLAYING_COLOR" "$now_playing" "$NOW_PLAYING_STATE_COLOR" "$play_state"
+ status="$(sv status "$service")" || exit 1
+ status="${status%:*:*}"
+ case "$status" in
+ run)
+ icon=""
+ color="$STATUS_WELL_COLOR"
+ ;;
+ down)
+ icon=""
+ color="$STATUS_UNWELL_COLOR"
+ ;;
+ esac
+ printf '%s %s\n' "$color" "$icon" "$service"
}
if command -v monitor_"$1" >/dev/null 2>&1; then
- monitor_"$1" "$@"
+ monitor_"$1" "$@"
else
- exit 1
+ exit 1
fi