47 lines
1.9 KiB
Bash
47 lines
1.9 KiB
Bash
[[ "$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}))
|