65 lines
1.6 KiB
Bash
Executable File
65 lines
1.6 KiB
Bash
Executable File
#!/bin/bash
|
|
|
|
[[ "$BLOCK_BUTTON" == 1 ]] && i3-sensible-terminal -e htop
|
|
|
|
case "${BLOCK_INSTANCE}" in
|
|
swap) TYPE="swap";;
|
|
ram) TYPE="ram";;
|
|
*) TYPE="";;
|
|
esac
|
|
|
|
gawk -v TYPE="$TYPE" '
|
|
/^MemAvailable/ {
|
|
rfg = $2 / 1024^2
|
|
rfm = $2 / 1024
|
|
}
|
|
/^SwapFree/ {
|
|
sfg = $2 / 1024^2
|
|
sfm = $2 / 1024
|
|
}
|
|
END {
|
|
if (TYPE == "") {
|
|
mfg = rfg + sfg
|
|
mfm = rfm + sfm
|
|
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 (TYPE == "ram") {
|
|
if (rfg > 2) {
|
|
printf("%d G\n", rfg)
|
|
printf("%dG\n", rfg)
|
|
mfg = rfg
|
|
} else {
|
|
printf("%d M\n", rfm)
|
|
printf("%dM\n", rfm)
|
|
}
|
|
} else if (TYPE == "swap") {
|
|
if (sfg > 2) {
|
|
printf("%d G\n", sfg)
|
|
printf("%dG\n", sfg)
|
|
mfg = sfg
|
|
} else {
|
|
printf("%d M\n", sfm)
|
|
printf("%dM\n", sfm)
|
|
}
|
|
}
|
|
if (mfg > 5) {
|
|
print("#04B431\n")
|
|
} else if (mfg > 4) {
|
|
print("#A8FF00\n")
|
|
} else if (mfg > 3) {
|
|
print("#FFF600\n")
|
|
} else if (mfg > 2) {
|
|
print("#FFAE00\n")
|
|
} else if (mfg > 1) {
|
|
print("#FF0000\n")
|
|
} else {
|
|
exit 33
|
|
}
|
|
}
|
|
' /proc/meminfo
|