migrate ram to new abstract model

This commit is contained in:
koksnuss 2018-08-13 12:24:39 +02:00
parent 061b57dc70
commit a08b5431a6
2 changed files with 40 additions and 84 deletions

View File

@ -1,12 +1,14 @@
# click interactions
[[ "$BLOCK_INSTANCE" =~ "color" ]] && COLORS=True
[[ "$BLOCK_INSTANCE" =~ "long" || "$BLOCK_BUTTON" == 1 ]] && LONG=True
EXIT=False
# 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

View File

@ -1,87 +1,41 @@
#!/bin/bash
[[ "$BLOCK_BUTTON" == 2 ]] && i3-sensible-terminal -e htop
if [[ "$BLOCK_INSTANCE" =~ "ram" ]]; then
TYPE='ram'
elif [[ "$BLOCK_INSTANCE" =~ "swap" ]]; then
TYPE='swap'
[[ $BLOCK_INSTANCE =~ (phys|swap) ]] && TYPE=${BASH_REMATCH[1]}
MEMINFO=$(cat /proc/meminfo)
if [[ $MEMINFO =~ MemTotal:[[:space:]]+([0-9]+) ]]; then
PHYS_TOTAL=${BASH_REMATCH[1]}
PHYS_TOTAL=$((${PHYS_TOTAL} / 1024**2))
fi
if [[ $MEMINFO =~ MemAvailable:[[:space:]]+([0-9]+) ]]; then
PHYS_AVAILABLE=${BASH_REMATCH[1]}
PHYS_AVAILABLE=$((${PHYS_AVAILABLE} / 1024**2))
PHYS_AVAILABLE_M=$((${PHYS_AVAILABLE} / 1024))
fi
if [[ $MEMINFO =~ SwapTotal:[[:space:]]+([0-9]+) ]]; then
SWAP_TOTAL=${BASH_REMATCH[1]}
SWAP_TOTAL=$((${SWAP_TOTAL} / 1024**2))
fi
if [[ $MEMINFO =~ SwapFree:[[:space:]]+([0-9]+) ]]; then
SWAP_AVAILABLE=${BASH_REMATCH[1]}
SWAP_AVAILABLE=$((${SWAP_AVAILABLE} / 1024**2))
SWAP_AVAILABLE_M=$((${SWAP_AVAILABLE} / 1024))
fi
gawk -v TYPE="$TYPE" -v BAR="${BAR[*]}" -v BW="${BW[*]}" -v COLORS="$COLORS" -v COLOR="${COLOR[*]}" -v LONG="$LONG" '
BEGIN {
split(BAR, bar, / /)
split(COLOR, color, / /)
split(BW, bw, / /)
interval = 100 / length(bar)
}
/^MemTotal/ { rtg = $2 / 1024^2 }
/^MemAvailable/ {
rfg = $2 / 1024^2
rfm = $2 / 1024
}
/^SwapTotal/ { stg = $2 / 1024^2 }
/^SwapFree/ {
sfg = $2 / 1024^2
sfm = $2 / 1024
}
END {
if (TYPE == "") {
mfg = rfg + sfg
mfm = rfm + sfm
mtg = rtg + stg
} else if (TYPE == "ram") {
mfg = rfg
mfm = rfm
mtg = rtg
} else if (TYPE == "swap") {
mfg = sfg
mfm = sfm
rtg = stg
}
load = (mtg - mfg) / mtg * 100
if (LONG) {
if (TYPE == "") {
if (mfg > 2) {
printf("%d+%d G\n", rfg, sfg)
printf("%d+%dG\n", rfg, sfg)
} else {
printf("%d+%d M\n", rfm, sfm)
printf("%d+%dM\n", rfm, sfm)
}
} else {
if (mfg > 2) {
printf("%d G\n", mfg)
printf("%dG\n", mfg)
mfg = rfg
} else {
printf("%d M\n", mfm)
printf("%dM\n", mfm)
}
}
} else {
for (i in bar) {
if (load <= i * interval) {
printf("%s\n%s\n", bar[i], bar[i])
break
}
}
}
for (i in bw) {
if (load <= i * interval) {
if (COLORS) {
printf("%s\n", color[i])
} else {
printf("%s\n", bw[i])
}
break
}
}
}
' /proc/meminfo
if [[ "$TYPE" == "" ]]; then
MEM_FREE=$((${PHYS_AVAILABLE} + ${SWAP_AVAILABLE}))
MEM_TOTAL=$((${PHYS_TOTAL} + ${SWAP_TOTAL}))
if [[ "$MEM_FREE" -gt 2 ]]; then
LONG_TEXT="${PHYS_AVAILABLE}+${SWAP_AVAILABLE}G"
SHORT_TEXT="${PHYS_AVAILABLE}+${SWAP_AVAILABLE}G"
else
LONG_TEXT="${PHYS_AVAILABLE_M}+${SWAP_AVAILABLE}M"
SHORT_TEXT="${PHYS_AVAILABLE_M}+${SWAP_AVAILABLE}M"
fi
elif [[ "$TYPE" == "ram" ]]; then
MEM_FREE=${PHYS_AVAILABLE}
MEM_TOTAL=${PHYS_TOTAL}
elif [[ "$TYPE" == "swap" ]]; then
MEM_FREE=${SWAP_AVAILABLE}
MEM_TOTAL=${SWAP_TOTAL}
fi