[[ "$BLOCK_BUTTON" == 2 ]] && i3-sensible-terminal -e htop [[ $BLOCK_INSTANCE =~ (phys|swap) ]] && TYPE=${BASH_REMATCH[1]} MEMINFO=$(cat /proc/meminfo) [[ $MEMINFO =~ MemTotal:[[:space:]]+([0-9]+) ]] && PHYS_TOTAL=$((${BASH_REMATCH[1]} / 1024**2)) if [[ $MEMINFO =~ MemAvailable:[[:space:]]+([0-9]+) ]]; then [[ ${BASH_REMATCH[1]} -gt 2000000 ]] && PHYS_AVAILABLE=$((${BASH_REMATCH[1]} / 1024**2)) || PHYS_AVAILABLE=$((${BASH_REMATCH[1]} / 1024)) fi [[ $MEMINFO =~ SwapTotal:[[:space:]]+([0-9]+) ]] && SWAP_TOTAL=$((${BASH_REMATCH[1]} / 1024**2)) if [[ $MEMINFO =~ SwapFree:[[:space:]]+([0-9]+) ]]; then [[ ${BASH_REMATCH[1]} -gt 2000000 ]] && SWAP_AVAILABLE=$((${BASH_REMATCH[1]} / 1024**2)) || SWAP_AVAILABLE=$((${BASH_REMATCH[1]} / 1024)) fi [[ ! $PHYS_AVAILABLE || ! $PHYS_TOTAL || ! $SWAP_AVAILABLE || ! $SWAP_TOTAL ]] && printf "Ram not found\nn/a\n" && exit 33 if [[ "$TYPE" == "" ]]; then MEM_FREE=$((${PHYS_AVAILABLE} + ${SWAP_AVAILABLE})) MEM_TOTAL=$((${PHYS_TOTAL} + ${SWAP_TOTAL})) if [[ "$MEM_FREE" -gt 2 ]]; then LONG_TEXT="${PHYS_AVAILABLE}+${SWAP_AVAILABLE}G" SHORT_TEXT="${PHYS_AVAILABLE}+${SWAP_AVAILABLE}G" else LONG_TEXT="${PHYS_AVAILABLE}+${SWAP_AVAILABLE}M" SHORT_TEXT="${PHYS_AVAILABLE}+${SWAP_AVAILABLE}M" fi elif [[ "$TYPE" == "phys" ]]; then MEM_FREE=${PHYS_AVAILABLE} MEM_TOTAL=${PHYS_TOTAL} if [[ "$MEM_FREE" -gt 2 ]]; then LONG_TEXT="${PHYS_AVAILABLE}G" SHORT_TEXT="${PHYS_AVAILABLE}G" else LONG_TEXT="${PHYS_AVAILABLE}M" SHORT_TEXT="${PHYS_AVAILABLE}M" fi elif [[ "$TYPE" == "swap" ]]; then MEM_FREE=${SWAP_AVAILABLE} MEM_TOTAL=${SWAP_TOTAL} if [[ "$MEM_FREE" -gt 2 ]]; then LONG_TEXT="${SWAP_AVAILABLE}G" SHORT_TEXT="${SWAP_AVAILABLE}G" else LONG_TEXT="${SWAP_AVAILABLE}M" SHORT_TEXT="${SWAP_AVAILABLE}M" fi fi LOAD=$(((${MEM_TOTAL} - ${MEM_FREE}) * 100 / ${MEM_TOTAL}))