Browse Source

Enhancing --memory_unit functionality

Improving https://github.com/dylanaraps/neofetch/commit/0435dcd0cd44bb22afa9b986f15742cc05de7b20
- Implementing https://github.com/dylanaraps/neofetch/issues/1170#issuecomment-455576889 to avoid awk usage.
- Adding ability to configure precision of output using `mem_precision` which defaults to `2`.
- Added `tib` to accommodate TiB mentioned in https://github.com/dylanaraps/neofetch/issues/1170#issuecomment-894705941
©TriMoon™ 2 years ago
parent
commit
67cf02c964
1 changed files with 18 additions and 2 deletions
  1. 18 2
      neofetch

+ 18 - 2
neofetch

@@ -2802,10 +2802,26 @@ get_memory() {
     [[ "$memory_percent" == "on" ]] && ((mem_perc=mem_used * 100 / mem_total))
 
     case $memory_unit in
+        tib)
+            mem_label=TiB
+            memory_unit_divider=$((1024 * 1024))
+            printf -v mem_used "%'.*f" \
+                        ${mem_precision:-2} \
+                        $(($mem_used / $memory_unit_divider)).$(($mem_used % $memory_unit_divider))
+            printf -v mem_total "%'.*f" \
+                        ${mem_precision:-2} \
+                        $(($mem_total / $memory_unit_divider)).$(($mem_total % $memory_unit_divider))
+        ;;
+
         gib)
-            mem_used=$(awk '{printf "%.2f", $1 / $2}' <<< "$mem_used 1024")
-            mem_total=$(awk '{printf "%.2f", $1 / $2}' <<< "$mem_total 1024")
             mem_label=GiB
+            memory_unit_divider=1024
+            printf -v mem_used "%'.*f" \
+                        ${mem_precision:-2} \
+                        $(($mem_used / $memory_unit_divider)).$(($mem_used % $memory_unit_divider))
+            printf -v mem_total "%'.*f" \
+                        ${mem_precision:-2} \
+                        $(($mem_total / $memory_unit_divider)).$(($mem_total % $memory_unit_divider))
         ;;
 
         kib)