Эх сурвалжийг харах

Start lemonbar within panel

Thomas Dy 9 жил өмнө
parent
commit
68bf3a85c4
1 өөрчлөгдсөн 14 нэмэгдсэн , 2 устгасан
  1. 14 2
      src/main.rs

+ 14 - 2
src/main.rs

@@ -6,10 +6,12 @@ mod external;
 
 use comm::{Channel, Message};
 use config::Config;
+use std::io::Write;
 use std::collections::HashMap;
 use std::sync::Arc;
 use std::sync::mpsc;
 use std::thread;
+use std::process;
 
 fn main() {
     let cfg = config::load("./panel.toml");
@@ -20,6 +22,16 @@ fn main() {
     make_thread(&tx, &cfg, sensors::sensors);
     make_thread(&tx, &cfg, netspeed::netspeed);
 
+    let bar = process::Command::new("lemonbar")
+        .arg("-f")
+        .arg("Inconsolatazi4:size=12")
+        .stdin(process::Stdio::piped())
+        .spawn()
+        .ok()
+        .expect("Failed to start lemonbar");
+
+    let mut output = bar.stdin.unwrap();
+
     let mut data = HashMap::new();
 
     loop {
@@ -28,11 +40,11 @@ fn main() {
         match msg {
             Message { kind, text } => data.insert(kind, text),
         };
-        println!("{}%{{r}}{} | {}",
+        writeln!(&mut output, "{}%{{r}}{} | {}",
             data.get("title").unwrap_or(&empty),
             data.get("netspeed").unwrap_or(&empty),
             data.get("sensors").unwrap_or(&empty)
-        );
+        ).ok();
     }
 }