about summary refs log tree commit diff stats
path: root/pkgs/by-name/ya/yambar-modules/src/memory.rs
diff options
context:
space:
mode:
Diffstat (limited to 'pkgs/by-name/ya/yambar-modules/src/memory.rs')
-rw-r--r--pkgs/by-name/ya/yambar-modules/src/memory.rs29
1 files changed, 29 insertions, 0 deletions
diff --git a/pkgs/by-name/ya/yambar-modules/src/memory.rs b/pkgs/by-name/ya/yambar-modules/src/memory.rs
new file mode 100644
index 00000000..6da714cc
--- /dev/null
+++ b/pkgs/by-name/ya/yambar-modules/src/memory.rs
@@ -0,0 +1,29 @@
+use std::{thread, time::Duration};
+
+use sysinfo::{System, SystemExt};
+
+pub fn memory() {
+    let mut sys = System::new();
+
+    loop {
+        sys.refresh_memory();
+
+        let memory_percentage: f64 =
+            100 as f64 * (sys.used_memory() as f64 / sys.total_memory() as f64);
+
+        println!("memperc|string|{:.0}", memory_percentage);
+        if sys.total_swap() > 0 {
+            let swap_percentage: f64 =
+                100 as f64 * (sys.used_swap() as f64 / sys.total_swap() as f64);
+            println!("swapperc|string|{:.0}", swap_percentage);
+            println!("swapstate|bool|true");
+        } else {
+            println!("swapstate|bool|false");
+        }
+        println!("");
+
+        // Sleeping to give the system time to run for long
+        // enough to have useful information.
+        thread::sleep(Duration::from_secs(3));
+    }
+}