summaryrefslogtreecommitdiff
path: root/_linux/i3blocks/scripts/memory
diff options
context:
space:
mode:
authorkkard2 <[email protected]>2026-04-30 21:06:19 +0200
committerkkard2 <[email protected]>2026-04-30 21:06:19 +0200
commit1c1a11d17d9d8580c2e3bb5ddc4de7c592c64a0b (patch)
tree5b1b5a0da6cfb2e593defc4a1549ffd9b76527ec /_linux/i3blocks/scripts/memory
parent97cb977f166eff171815494e29976446e8509dad (diff)
wayland
Diffstat (limited to '_linux/i3blocks/scripts/memory')
-rwxr-xr-x_linux/i3blocks/scripts/memory/memory73
1 files changed, 73 insertions, 0 deletions
diff --git a/_linux/i3blocks/scripts/memory/memory b/_linux/i3blocks/scripts/memory/memory
new file mode 100755
index 0000000..3f093c4
--- /dev/null
+++ b/_linux/i3blocks/scripts/memory/memory
@@ -0,0 +1,73 @@
+#!/usr/bin/env sh
+# Copyright (C) 2014 Julien Bonjean <[email protected]>
+
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+
+# You should have received a copy of the GNU General Public License
+# along with this program. If not, see <http://www.gnu.org/licenses/>.
+
+TYPE="${BLOCK_INSTANCE:-mem}"
+PERCENT="${PERCENT:-true}"
+
+awk -v type=$TYPE -v percent=$PERCENT '
+/^MemTotal:/ {
+ mem_total=$2
+}
+/^MemFree:/ {
+ mem_free=$2
+}
+/^Buffers:/ {
+ mem_free+=$2
+}
+/^Cached:/ {
+ mem_free+=$2
+}
+/^SwapTotal:/ {
+ swap_total=$2
+}
+/^SwapFree:/ {
+ swap_free=$2
+}
+END {
+ if (type == "swap") {
+ free=swap_free/1024/1024
+ used=(swap_total-swap_free)/1024/1024
+ total=swap_total/1024/1024
+ } else {
+ free=mem_free/1024/1024
+ used=(mem_total-mem_free)/1024/1024
+ total=mem_total/1024/1024
+ }
+
+ pct=0
+ if (total > 0) {
+ pct=used/total*100
+ }
+
+ # full text
+ if (percent == "true" ) {
+ printf("%.1fG/%.1fG (%.f%%)\n", used, total, pct)
+ } else {
+ printf("%.1fG/%.1fG\n", used, total)
+ }
+ # short text
+ printf("%.f%%\n", pct)
+
+ # color
+ # if (pct > 90) {
+ # print("#FF0000")
+ # } else if (pct > 80) {
+ # print("#FFAE00")
+ # } else if (pct > 70) {
+ # print("#FFF600")
+ # }
+}
+' /proc/meminfo