This repository has been archived on 2019-02-28. You can view files and clone it, but cannot push or open issues or pull requests.
simple-i3blocks/modules/abstract.sh

62 lines
1.6 KiB
Bash
Executable File

# click interactions
## 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
# global variables
BAR=("▁" "▂" "▃" "▄" "▅" "▆" "▇" "█")
INTERVAL=$((100 / ${#BAR[@]}))
COLOR=("#64bc01" "#77a601" "#8a9101" "#9d7b00" "#b06701" "#c45100" "#d63c00" "#e92700")
BW=("#565656" "#6d6d6d" "#848485" "#9c9c9c" "#b1b1b1" "#c7c7c7" "#dcdcdc" "#f5f5f6")
# get $LOAD, $LONG_TEXT and $SHORT_TEXT
source $HOME/.config/i3blocks/modules/${1}.sh
# 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 "${!BAR[@]}"; do
if [[ "$LOAD" -lt $((($i+1) * $INTERVAL)) ]]; then
echo "${BAR[$i]}"
echo "${BAR[$i]}"
break
fi
done
fi
# colors
for i in "${!BW[@]}"; do
if [[ $LOAD -lt $((($i+1) * $INTERVAL)) ]]; then
[[ "$COLORS" = true ]] && echo "${COLOR[$i]}" || echo "${BW[$i]}"
fi
done