From 8bbf142e030b7699fda05880d4865e5dfd03150c Mon Sep 17 00:00:00 2001 From: Christian Heller Date: Mon, 17 Mar 2025 23:04:08 +0100 Subject: [PATCH] Improve status script. --- testing/home/t490s/.nonpath_bins/status.sh | 87 ++++++++++++---------- 1 file changed, 49 insertions(+), 38 deletions(-) diff --git a/testing/home/t490s/.nonpath_bins/status.sh b/testing/home/t490s/.nonpath_bins/status.sh index e3bb5f9..8822b21 100755 --- a/testing/home/t490s/.nonpath_bins/status.sh +++ b/testing/home/t490s/.nonpath_bins/status.sh @@ -3,44 +3,58 @@ SYSCLASS_DIR=/sys/class -COL_WHITE=ffffff -COL_RED=ff0000 -COL_YELLOW=ffff00 -COL_GREEN=00ff00 +COL_WHITE=dddddd +COL_RED=dd0000 +COL_YELLOW=dddd00 +COL_GREEN=00dd00 COL_GREY=aaaaaa -print_bar_element() { - if [ -z "$3" ]; then - SEP_WIDTH=20 - else - SEP_WIDTH="$3" +print_bar_block() { + printf '{"full_text": "%s", ' "$1" + if [ ! -z "$2" ]; then + printf '"color": "%s", ' "$2" fi - if [ -z "$2" ]; then - COLOR="${COL_WHITE}" - else - COLOR="$2" + if [ "$3" = "0" ]; then + printf '"separator": false,\n' + printf '"separator_block_width": 0,' fi - printf '{"full_text": "%s", ' "$1" - printf '"color": "%s", ' "${COLOR}" - printf '"separator_block_width": %d},\n' "${SEP_WIDTH}" + printf '},\n' } print_online() { - show_conn() { + print_conn() { + print_bar_block "$(echo $1 | cut -c1):" "${COL_GREY}" 0 COLOR="${COL_GREEN}" - IP=$(ip --brief addr show | grep "$2" | sed -E 's/ +/\t/g' | cut -f3 | cut -f1 -d'/') + IP=$(ip --brief addr show | grep "$1" | sed -E 's/ +/\t/g' | cut -f3 | cut -f1 -d'/') if [ -z "${IP}" ]; then - IP=- - COLOR="${COL_RED}" + IP='-' + COLOR="${COL_GREY}" fi - print_bar_element "$1:${IP}" "${COLOR}" "$3" + print_bar_block "${IP}" "${COLOR}" } - show_conn E enp 10 - show_conn W wlp + print_conn enp + print_conn wlp } print_battery() { BAT_DIR="${SYSCLASS_DIR}/power_supply/BAT0" + + print_percent() { + cat_energy() { + cat "${BAT_DIR}/energy_$1" + } + PERCENT=$(printf "%d" $(calc "100 * $(cat_energy $1) // $(cat_energy $2)")) + COLOR="${COL_GREEN}" + if [ "${PERCENT}" -lt 25 ]; then + COLOR="${COL_RED}" + elif [ "${PERCENT}" -lt 65 ]; then + COLOR="${COL_YELLOW}" + fi + print_bar_block "${PERCENT}" "${COLOR}" "$3" + } + + print_percent now full 0 + COLOR="${COL_WHITE}" STATUS=$(cat "${BAT_DIR}/status") CHARGING=? @@ -48,20 +62,14 @@ print_battery() { CHARGING=- elif [ "${STATUS}" = "Charging" ]; then CHARGING=^ - COLOR="${COL_GREEN}" + COLOR="${COL_GREEN}" elif [ "${STATUS}" = "Discharging" ]; then CHARGING=v - COLOR="${COL_YELLOW}" - fi - percent_of() { - printf "%d" $(calc "100 * $(cat $1) // $(cat $2)") - } - NOW=$(percent_of "${BAT_DIR}/energy_now" "${BAT_DIR}/energy_full") - MAX=$(percent_of "${BAT_DIR}/energy_full" "${BAT_DIR}/energy_full_design") - if [ $NOW -lt 25 ]; then - COLOR="${COL_RED}" + COLOR="${COL_YELLOW}" fi - print_bar_element "${NOW}${CHARGING}${MAX}" "${COLOR}" + print_bar_block "${CHARGING}" "${COLOR}" 0 + + print_percent full full_design } print_temperature() { @@ -73,14 +81,17 @@ print_temperature() { elif [ $TEMPERATURE_IN_C -gt 65 ]; then COLOR="${COL_YELLOW}" fi - print_bar_element "${TEMPERATURE_IN_C}°C" "${COLOR}" + print_bar_block "${TEMPERATURE_IN_C}" "${COLOR}" 0 + print_bar_block '°C' "${COL_GREY}" } print_datetime() { DATE=$(date +'%Y-%m-%d') - TIME=$(date +'%H:%M:%S/%Z') - print_bar_element "${DATE}" "${COL_GREY}" 10 - print_bar_element "${TIME}" + TIME=$(date +'%H:%M:%S') + TZ=$(date +'/%Z') + print_bar_block "${DATE} " "${COL_GREY}" 0 + print_bar_block "${TIME}" "" 0 + print_bar_block "${TZ}" "${COL_GREY}" 0 } printf '{"version": 1}\n[' -- 2.30.2