COL_GREY=aaaaaa
print_bar_block() {
- printf '{"full_text": "%s", ' "$1"
- COLOR="${COL_GREY}"
- if [ ! -z "$2" ]; then
- COLOR="$2"
+ local TEXT="$1"
+ local COLOR="$2"
+ local NO_BAR_IF_ZERO="$3"
+ if [ -z "$2" ]; then
+ COLOR="${COL_GREY}"
fi
+ printf '{"full_text": "%s", ' "${TEXT}"
printf '"color": "%s", ' "${COLOR}"
- if [ "$3" = "0" ]; then
+ if [ "${NO_BAR_IF_ZERO}" = "0" ]; then
printf '"separator": false,\n'
printf '"separator_block_width": 0,'
fi
}
print_calc() {
- printf "%d" $(calc "$1")
+ local RESULT
+ RESULT=$(calc "$1")
+ printf "%d" "${RESULT}"
}
color_at() {
- IDX=0
+ local MEASURED="$1"
+ local STEPS_MAP="$2"
+ local IDX=0
while true; do
+ local COLOR LIMIT STEP
IDX=$(print_calc "${IDX} + 1")
- STEP=$(echo "$2" | cut -d'_' -f${IDX})
+ STEP=$(echo "${STEPS_MAP}" | cut -d'_' -f"${IDX}")
if [ -z "${STEP}" ]; then
break
fi
LIMIT=$(echo "${STEP}" | cut -d':' -f1)
COLOR=$(echo "${STEP}" | cut -d':' -f2)
- if [ "${LIMIT}" -ge "${1}" ]; then
- printf "${COLOR}"
+ if [ "${LIMIT}" -ge "${MEASURED}" ]; then
+ printf "%s" "${COLOR}"
break
fi
done
print_clipboard() {
print_selection() {
- print_bar_block "$1 [" "${COL_WHITE}" 0
- CLEANED=$(wl-paste $2 | sed 's/"/\\"/g')
+ LABEL="$1"
+ WL_PASTE_ARGS="$2"
+ NO_BAR_IF_ZERO="$3"
+ local CLEAN_PASTE ELLIPSIS
+ CLEAN_PASTE=$(wl-paste ${WL_PASTE_ARGS} | sed 's/"/\\"/g')
ELLIPSIS=
- if [ $(echo "${CLEANED}" | wc -c) -gt 32 ]; then
- CLEANED=$(echo "${CLEANED}" | cut -zc'-29')
+ print_bar_block "${LABEL} [" "${COL_WHITE}" 0
+ if [ "${#CLEAN_PASTE}" -gt 32 ]; then
+ CLEAN_PASTE=$(echo "${CLEAN_PASTE}" | cut -zc'-29')
ELLIPSIS='...'
fi
- print_bar_block "${CLEANED}" "" 0
- print_bar_block "${ELLIPSIS}]" "${COL_WHITE}" $3
+ print_bar_block "${CLEAN_PASTE}" "" 0
+ print_bar_block "${ELLIPSIS}]" "${COL_WHITE}" "${NO_BAR_IF_ZERO}"
}
print_selection 'wl-paste' '' 0
print_selection ' --primary' --primary
}
print_online() {
+ local STATUS_WIFI
print_conn() {
- print_bar_block "$(echo $1 | cut -c1):" "" 0
- IP=$(ip --brief addr show | grep "$1" | sed -E 's/ +/\t/g' | cut -f3 | cut -f1 -d'/')
+ local IFACE="$1"
+ local NO_BAR_IF_ZERO="$2"
+ local IP
+ IP=$(ip --brief addr show | grep "${IFACE}" | sed -E 's/ +/\t/g' | cut -f3 | cut -f1 -d'/')
+ IFACE_FIRSTCHAR=$(echo "$1" | cut -c1)
+ print_bar_block "${IFACE_FIRSTCHAR}:" "" 0
if [ -z "${IP}" ]; then
print_bar_block '-'
else
- print_bar_block "${IP}" "${COL_WHITE}" "$2"
+ print_bar_block "${IP}" "${COL_WHITE}" "${NO_BAR_IF_ZERO}"
fi
}
print_conn enp
set +e
STATUS_WIFI=$(nmcli -t -f IN-USE,SSID,SIGNAL dev wifi | grep '^\*:')
set -e
- if [ ! -z "${STATUS_WIFI}" ]; then
+ if [ -n "${STATUS_WIFI}" ]; then
+ local COLOR SIGNAL
SIGNAL=$(echo -n "${STATUS_WIFI}" | cut -d':' -f3)
- COLOR=$(color_at $SIGNAL "45:${COL_RED}_85:${COL_YELLOW}_100:${COL_GREEN}")
+ COLOR=$(color_at "${SIGNAL}" "45:${COL_RED}_85:${COL_YELLOW}_100:${COL_GREEN}")
print_bar_block " ${SIGNAL}" "${COLOR}" 0
print_bar_block "% $(echo "${STATUS_WIFI}" | cut -d':' -f2)"
else
}
print_battery() {
+ local BAT_DIR CHARGE CHARGING COLOR STATUS
BAT_DIR="${SYSCLASS_DIR}/power_supply/BAT0"
calc_percent () {
+ local MEASURED, MAX
cat_energy() {
- cat "${BAT_DIR}/energy_$1"
+ cat "${BAT_DIR}/energy_${1}"
}
- print_calc "100 * $(cat_energy $1) // $(cat_energy $2)"
+ MEASURED=$(cat_energy "$1")
+ MAX=$(cat_energy "$2")
+ print_calc "100 * ${MEASURED} // ${MAX}"
}
CHARGE=$(calc_percent now full)
- COLOR=$(color_at $CHARGE "25:${COL_RED}_65:${COL_YELLOW}_100:${COL_GREEN}")
+ COLOR=$(color_at "${CHARGE}" "25:${COL_RED}_65:${COL_YELLOW}_100:${COL_GREEN}")
print_bar_block "${CHARGE}%" "${COLOR}" 0
COLOR="${COL_WHITE}"
STATUS=$(cat "${BAT_DIR}/status")
- CHARGING=?
+ CHARGING="?"
if [ "${STATUS}" = "Not charging" ]; then
- CHARGING=-
+ CHARGING="-"
elif [ "${STATUS}" = "Charging" ]; then
- CHARGING=^
+ CHARGING="^"
COLOR="${COL_GREEN}"
elif [ "${STATUS}" = "Discharging" ]; then
- CHARGING=v
+ CHARGING="v"
COLOR="${COL_YELLOW}"
fi
print_bar_block "${CHARGING}" "${COLOR}" 0
}
print_temperature() {
+ local COLOR TEMPERATURE TEMPERATURE_IN_C
COLOR="${COL_WHITE}"
TEMPERATURE=$(cat ${SYSCLASS_DIR}/thermal/thermal_zone0/temp)
TEMPERATURE_IN_C=$(print_calc "${TEMPERATURE} // 1000")
- COLOR=$(color_at $TEMPERATURE_IN_C "65:${COL_GREEN}_85:${COL_YELLOW}_999:${COL_RED}")
+ COLOR=$(color_at "${TEMPERATURE_IN_C }" "65:${COL_GREEN}_85:${COL_YELLOW}_999:${COL_RED}")
print_bar_block "${TEMPERATURE_IN_C}" "${COLOR}" 0
print_bar_block '°'
}
print_datetime() {
+ local DATE TIME TZ
DATE=$(date +'%Y-%m-%d')
TIME=$(date +'%H:%M:%S')
TZ=$(date +'/%Z')
}
print_volume() {
- _print_vol() {
- _NAME="$1"
- _IDX="$2"
- _TYPE="$3"
- _BORDER="$4"
- print_bar_block "$1 " "${COL_WHITE}" 0
- VOLUME="$(pactl get-${_TYPE}-volume "${_IDX}" | head -1 | sed 's/ //g' | cut -d'/' -f2)"
- if $(audio_dev_is_mute "${_TYPE}" "${_IDX}"); then
- print_bar_block "<s>${VOLUME}</s>" '' "${_BORDER}"
+ print_vol() {
+ local NAME="$1"
+ local IDX="$2"
+ local TYPE="$3"
+ local BORDER="$4"
+ local VOLUME
+ VOLUME="$(pactl "get-${TYPE}-volume" "${IDX}" | head -1 | sed 's/ //g' | cut -d'/' -f2)"
+ print_bar_block "${NAME} " "${COL_WHITE}" 0
+ if $(audio_dev_is_mute "${TYPE}" "${IDX}"); then
+ print_bar_block "<s>${VOLUME}</s>" '' "${BORDER}"
else
- print_bar_block "${VOLUME}" "${COL_YELLOW}" "${_BORDER}"
+ print_bar_block "${VOLUME}" "${COL_YELLOW}" "${BORDER}"
fi
}
- _print_vol 'vol' 0 'sink' 0
- _print_vol ' --mic' 1 'source'
+ print_vol 'vol' 0 'sink' 0
+ print_vol ' --mic' 1 'source'
}
print_keyboard() {
+ local LAYOUT
LAYOUT=$(swaymsg -t get_inputs | grep 'xkb_active_layout_name' | sed -E 's/[ ,"]+//g' | cut -d':' -f2 | head -1)
if [ "${LAYOUT}" = "English(US)" ]; then
- LAYOUT=us
+ LAYOUT="us"
elif [ "${LAYOUT}" = "German" ]; then
- LAYOUT=de
+ LAYOUT="de"
else
- LAYOUT=??
+ LAYOUT="??"
fi
print_bar_block "kb_${LAYOUT}"
}