#!/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