migrate ram to new abstract model
This commit is contained in:
parent
061b57dc70
commit
a08b5431a6
@ -1,12 +1,14 @@
|
|||||||
|
# click interactions
|
||||||
[[ "$BLOCK_INSTANCE" =~ "color" ]] && COLORS=True
|
[[ "$BLOCK_INSTANCE" =~ "color" ]] && COLORS=True
|
||||||
[[ "$BLOCK_INSTANCE" =~ "long" || "$BLOCK_BUTTON" == 1 ]] && LONG=True
|
[[ "$BLOCK_INSTANCE" =~ "long" || "$BLOCK_BUTTON" == 1 ]] && LONG=True
|
||||||
|
|
||||||
EXIT=False
|
# global variables
|
||||||
BAR=("▁" "▂" "▃" "▄" "▅" "▆" "▇" "█")
|
BAR=("▁" "▂" "▃" "▄" "▅" "▆" "▇" "█")
|
||||||
INTERVAL=$((100 / ${#BAR[@]}))
|
INTERVAL=$((100 / ${#BAR[@]}))
|
||||||
COLOR=("#64bc01" "#77a601" "#8a9101" "#9d7b00" "#b06701" "#c45100" "#d63c00" "#e92700")
|
COLOR=("#64bc01" "#77a601" "#8a9101" "#9d7b00" "#b06701" "#c45100" "#d63c00" "#e92700")
|
||||||
BW=("#565656" "#6d6d6d" "#848485" "#9c9c9c" "#b1b1b1" "#c7c7c7" "#dcdcdc" "#f5f5f6")
|
BW=("#565656" "#6d6d6d" "#848485" "#9c9c9c" "#b1b1b1" "#c7c7c7" "#dcdcdc" "#f5f5f6")
|
||||||
|
|
||||||
|
# get $LOAD, $LONG_TEXT and $SHORT_TEXT
|
||||||
source $HOME/.config/i3blocks/modules/${1}.sh
|
source $HOME/.config/i3blocks/modules/${1}.sh
|
||||||
|
|
||||||
# text
|
# text
|
||||||
|
120
modules/ram.sh
120
modules/ram.sh
@ -1,87 +1,41 @@
|
|||||||
#!/bin/bash
|
|
||||||
|
|
||||||
[[ "$BLOCK_BUTTON" == 2 ]] && i3-sensible-terminal -e htop
|
[[ "$BLOCK_BUTTON" == 2 ]] && i3-sensible-terminal -e htop
|
||||||
|
|
||||||
if [[ "$BLOCK_INSTANCE" =~ "ram" ]]; then
|
[[ $BLOCK_INSTANCE =~ (phys|swap) ]] && TYPE=${BASH_REMATCH[1]}
|
||||||
TYPE='ram'
|
|
||||||
elif [[ "$BLOCK_INSTANCE" =~ "swap" ]]; then
|
MEMINFO=$(cat /proc/meminfo)
|
||||||
TYPE='swap'
|
if [[ $MEMINFO =~ MemTotal:[[:space:]]+([0-9]+) ]]; then
|
||||||
|
PHYS_TOTAL=${BASH_REMATCH[1]}
|
||||||
|
PHYS_TOTAL=$((${PHYS_TOTAL} / 1024**2))
|
||||||
|
fi
|
||||||
|
if [[ $MEMINFO =~ MemAvailable:[[:space:]]+([0-9]+) ]]; then
|
||||||
|
PHYS_AVAILABLE=${BASH_REMATCH[1]}
|
||||||
|
PHYS_AVAILABLE=$((${PHYS_AVAILABLE} / 1024**2))
|
||||||
|
PHYS_AVAILABLE_M=$((${PHYS_AVAILABLE} / 1024))
|
||||||
|
fi
|
||||||
|
if [[ $MEMINFO =~ SwapTotal:[[:space:]]+([0-9]+) ]]; then
|
||||||
|
SWAP_TOTAL=${BASH_REMATCH[1]}
|
||||||
|
SWAP_TOTAL=$((${SWAP_TOTAL} / 1024**2))
|
||||||
|
fi
|
||||||
|
if [[ $MEMINFO =~ SwapFree:[[:space:]]+([0-9]+) ]]; then
|
||||||
|
SWAP_AVAILABLE=${BASH_REMATCH[1]}
|
||||||
|
SWAP_AVAILABLE=$((${SWAP_AVAILABLE} / 1024**2))
|
||||||
|
SWAP_AVAILABLE_M=$((${SWAP_AVAILABLE} / 1024))
|
||||||
fi
|
fi
|
||||||
|
|
||||||
gawk -v TYPE="$TYPE" -v BAR="${BAR[*]}" -v BW="${BW[*]}" -v COLORS="$COLORS" -v COLOR="${COLOR[*]}" -v LONG="$LONG" '
|
if [[ "$TYPE" == "" ]]; then
|
||||||
|
MEM_FREE=$((${PHYS_AVAILABLE} + ${SWAP_AVAILABLE}))
|
||||||
BEGIN {
|
MEM_TOTAL=$((${PHYS_TOTAL} + ${SWAP_TOTAL}))
|
||||||
split(BAR, bar, / /)
|
if [[ "$MEM_FREE" -gt 2 ]]; then
|
||||||
split(COLOR, color, / /)
|
LONG_TEXT="${PHYS_AVAILABLE}+${SWAP_AVAILABLE}G"
|
||||||
split(BW, bw, / /)
|
SHORT_TEXT="${PHYS_AVAILABLE}+${SWAP_AVAILABLE}G"
|
||||||
interval = 100 / length(bar)
|
else
|
||||||
}
|
LONG_TEXT="${PHYS_AVAILABLE_M}+${SWAP_AVAILABLE}M"
|
||||||
|
SHORT_TEXT="${PHYS_AVAILABLE_M}+${SWAP_AVAILABLE}M"
|
||||||
/^MemTotal/ { rtg = $2 / 1024^2 }
|
fi
|
||||||
|
elif [[ "$TYPE" == "ram" ]]; then
|
||||||
/^MemAvailable/ {
|
MEM_FREE=${PHYS_AVAILABLE}
|
||||||
rfg = $2 / 1024^2
|
MEM_TOTAL=${PHYS_TOTAL}
|
||||||
rfm = $2 / 1024
|
elif [[ "$TYPE" == "swap" ]]; then
|
||||||
}
|
MEM_FREE=${SWAP_AVAILABLE}
|
||||||
|
MEM_TOTAL=${SWAP_TOTAL}
|
||||||
/^SwapTotal/ { stg = $2 / 1024^2 }
|
fi
|
||||||
|
|
||||||
/^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
|
|
||||||
}
|
|
||||||
load = (mtg - mfg) / mtg * 100
|
|
||||||
if (LONG) {
|
|
||||||
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 {
|
|
||||||
for (i in bar) {
|
|
||||||
if (load <= i * interval) {
|
|
||||||
printf("%s\n%s\n", bar[i], bar[i])
|
|
||||||
break
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
for (i in bw) {
|
|
||||||
if (load <= i * interval) {
|
|
||||||
if (COLORS) {
|
|
||||||
printf("%s\n", color[i])
|
|
||||||
} else {
|
|
||||||
printf("%s\n", bw[i])
|
|
||||||
}
|
|
||||||
break
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
' /proc/meminfo
|
|
||||||
|
Reference in New Issue
Block a user