88 lines
2.1 KiB
Bash
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
|