#!/bin/bash [[ "$BLOCK_BUTTON" == 2 ]] && i3-sensible-terminal -e htop [[ "$BLOCK_INSTANCE" =~ "long" || "$BLOCK_BUTTON" == 1 ]] && LONG=true if [[ "$BLOCK_INSTANCE" =~ "ram" ]]; then TYPE='swap' elif [[ "$BLOCK_INSTANCE" =~ "swap" ]]; then TYPE='swap' fi gawk -v TYPE="$TYPE" -v LONG="$LONG" ' /^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 } if (LONG == "true") { 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 { load = mfg / mtg if (load < 100 / 9) { printf("▁\n▁\n") } else if (load < 100 / 9 * 2 ) { printf("▁\n▁\n") } else if (load < 100 / 9 * 3 ) { printf("▂\n▂\n") } else if (load < 100 / 9 * 4 ) { printf("▃\n▃\n") } else if (load < 100 / 9 * 5 ) { printf("▄\n▄\n") } else if (load < 100 / 9 * 6 ) { printf("▅\n▅\n") } else if (load < 100 / 9 * 7 ) { printf("▆\n▆\n") } else if (load < 100 / 9 * 8 ) { printf("▇\n▇\n") } else { printf("█\n█\n") } } 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