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.

88 lines
2.1 KiB
Bash

#!/bin/bash
[[ "$BLOCK_BUTTON" == 2 ]] && i3-sensible-terminal -e htop
if [[ "$BLOCK_INSTANCE" =~ "ram" ]]; then
TYPE='ram'
elif [[ "$BLOCK_INSTANCE" =~ "swap" ]]; then
TYPE='swap'
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