44
55ostype=" $( uname) "
66
7- version=8.4.2
7+ version=8.5.0
88font=nerd
99distrotype=none
1010osi=" "
@@ -237,7 +237,7 @@ pkg_info-netbsd)
237237 ;;
238238esac
239239
240- packages=" ${packages # " ${ packages%% [! [:space:]]* } " } "
240+ packages=$( printf ' %s ' " $ packages" | sed ' s/^[ [:space:]]*// ' )
241241manager=${manager% -query}
242242
243243# # UPTIME DETECTION
@@ -249,7 +249,8 @@ elif [ $distrotype = bsd ] || [ $distrotype = netbsd ]; then
249249else
250250 case $ostype in
251251 * " Linux" * )
252- IFS=. read -r s _ < /proc/uptime
252+ s=$( cat /proc/uptime)
253+ s=${s%% .* }
253254 ;;
254255 * )
255256 s=$( sysctl -n kern.boottime)
283284
284285case $ostype in
285286* " Linux" * )
286- while IFS=' :k ' read -r key val _; do
287- case $key in
288- MemTotal)
289- mem_used=$(( mem_used + val))
290- mem_full=$val
291- ;;
292- Shmem) mem_used=$(( mem_used + val)) ;;
293- MemFree | Buffers | Cached | SReclaimable) mem_used=$(( mem_used - val)) ;;
294- esac
295- done < /proc/meminfo
296- mem_used=$(( mem_used / 1024 ))
287+ eval $( awk -F' : +' '
288+ /^MemTotal:/ {print "mem_full=" int($2)}
289+ /^MemFree:/ {print "mem_free=" int($2)}
290+ /^Buffers:/ {print "mem_buffers=" int($2)}
291+ /^Cached:/ {print "mem_cached=" int($2)}
292+ /^Shmem:/ {print "mem_shmem=" int($2)}
293+ /^SReclaimable:/ {print "mem_sreclaimable=" int($2)}
294+ ' /proc/meminfo)
295+ mem_used=$(( (mem_full + mem_shmem - mem_free - mem_buffers - mem_cached - mem_sreclaimable) / 1024 ))
297296 mem_full=$(( mem_full / 1024 ))
298297 ;;
299298* " Darwin" * )
300299 mem_full=$(( $(sysctl - n hw.memsize) / 1024 / 1024 ))
301300 [ $mem_full -gt 0 ] || mem_full=$( expr $( sysctl -n hw.memsize) / 1024 / 1024)
302- while IFS=:. read -r key val _; do
303- case $key in
304- ' Anonymous ' * |* ' wired' * | * ' occupied' * )
305- mem_used=$(( mem_used + ${val:- 0} ))
306- ;;
307- * ' purgeable' * )
308- mem_used=$(( mem_used - ${val:- 0} ))
309- ;;
310- esac
311- done << -EOF
312- $( vm_stat)
313- EOF
314-
315- mem_used=$(( mem_used * ( $(sysctl - n vm.pagesize) / 1024 ) / 1024 ))
301+ eval $( vm_stat | awk -F' : +' '
302+ /Anonymous/ {anon += int($2)}
303+ /wired/ {wired += int($2)}
304+ /occupied/ {occupied += int($2)}
305+ /purgeable/ {purgeable += int($2)}
306+ END {
307+ print "mem_pages=" (anon + wired + occupied - purgeable)
308+ }
309+ ' )
310+ mem_used=$(( mem_pages * $(sysctl - n vm.pagesize) / 1024 / 1024 ))
316311 ;;
317312* " BSD" * )
318313 mem_full=$(( $(sysctl - n hw.physmem) / 1024 / 1024 ))
@@ -360,7 +355,7 @@ c2="${reset}${yellow}" # third color
360355
361356cat << EOF
362357
363- ${c0} ___ ${nc}${USER}${red} @${reset}${hn}${host}${reset}
358+ ${c0} ___ ${nc}${USER}${red} @${reset}${hn}${host}${reset}
364359${c0} (${c1} .. ${c0} \ ${lc}${osi} ${ic}${os}${reset}
365360${c0} (${c2} <> ${c0} | ${lc}${ki} ${ic}${kernel}${reset}
366361${c0} /${c1} / \\ ${c0} \\ ${lc}${ri} ${ic}${RAM}${memstat} ${mempercent}
0 commit comments