BARV=("▁" "▂" "▃" "▄" "▅" "▆" "▇" "█") BARH=("▏" "▎" "▍" "▌" "▋" "▊" "▉" "█") INTERVAL=$((100 / ${#BARV[@]})) COLOR=("#64bc01" "#77a601" "#8a9101" "#9d7b00" "#b06701" "#c45100" "#d63c00" "#e92700") BW=("#565656" "#6d6d6d" "#848485" "#9c9c9c" "#b1b1b1" "#c7c7c7" "#dcdcdc" "#f5f5f6") # toggle long and short preview STATE="${HOME}/.config/i3blocks/modules/${1}-${BLOCK_INSTANCE}.long" COLORS="${HOME}/.config/i3blocks/modules/${1}-${BLOCK_INSTANCE}.color" if [[ "$BLOCK_BUTTON" == 1 ]]; then if [[ -f "$STATE" ]]; then rm $STATE LONG=false else touch $STATE LONG=true fi else [[ -f "$STATE" ]] && LONG=true || LONG=false fi # toggle color and black/white mode if [[ "$BLOCK_BUTTON" == 3 ]]; then if [[ -f "$COLORS" ]]; then rm $COLORS COLORS=false else touch $COLORS COLORS=true fi else [[ -f "$COLORS" ]] && COLORS=true || COLORS=false fi # get $LOAD, $LOAD_REVERSE, $LONG_TEXT and $SHORT_TEXT source $HOME/.config/i3blocks/modules/${1}.sh # print text if [[ "$LOAD" = false && "$LONG" = false ]]; then echo $SHORT_TEXT echo $SHORT_TEXT elif [[ "$LONG" = true || $LONG_TEXT =~ off ]]; then echo "$LONG_TEXT" echo "$SHORT_TEXT" else for i in "${!BARV[@]}"; do if [[ "$LOAD" -lt $((($i+1) * $INTERVAL)) ]]; then echo "${BARV[$i]}" echo "${BARV[$i]}" break fi done fi # print colors or black/white if [[ "$LOAD" = false ]]; then echo "${BW[4]}" else for i in "${!BW[@]}"; do if [[ $LOAD -lt $((($i+1) * $INTERVAL)) ]]; then if [[ "$REVERSE_COLOR" = true ]]; then u=$((${#BW[@]}-$i)) [[ "$COLORS" = true ]] && echo "${COLOR[$u]}" || echo "${BW[$u]}" else [[ "$COLORS" = true ]] && echo "${COLOR[$i]}" || echo "${BW[$i]}" fi fi done fi