1use std::process::Command;
7
8#[derive(Debug)]
9pub struct Layout {
10 generator: String,
11 arguments: String,
12}
13impl Default for Layout {
14 fn default() -> Self {
15 Layout {
16 generator: String::from("rivertile"),
17 arguments: String::from("-view-padding 6 -outer-padding 6"),
18 }
19 }
20}
21impl Layout {
22 pub fn set_generator(&mut self, generator: &str) -> &mut Self {
23 self.generator = String::from(generator);
24 self
25 }
26
27 pub fn set_args(&mut self, args: &str) -> &mut Self {
38 self.arguments = String::from(args);
39 self
40 }
41
42 pub fn spawn(&self) {
43 let args: Vec<&str> = self.arguments.split_whitespace().collect();
44
45 Command::new("riverctl")
46 .args(["default-layout", self.generator.as_str()])
47 .spawn()
48 .expect("Can't set default layout generator")
49 .wait()
50 .unwrap();
51
52 Command::new(self.generator.as_str())
53 .args(args)
54 .spawn()
55 .expect("Can't launch layout generator")
56 .wait()
57 .unwrap();
58 }
59}