From 0dedd834dc8d123ae2c4043a0df841656931df98 Mon Sep 17 00:00:00 2001 From: "Anna (navi) Figueiredo Gomes" Date: Mon, 25 Sep 2023 16:09:11 +0200 Subject: add support for multiple terminals at once Signed-off-by: Anna (navi) Figueiredo Gomes --- src/main.rs | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/src/main.rs b/src/main.rs index 3c35738..f9f3f36 100644 --- a/src/main.rs +++ b/src/main.rs @@ -3,7 +3,7 @@ use std::{env,fs::File, io::{Read, self}, num, fmt::Display}; use regex::Regex; struct WindowHider { - term: String, + term: Vec, regex: Regex, } @@ -56,7 +56,7 @@ impl WindowHider { match name { "init" => Ok(None), - _ if name == self.term && !is_root => Ok(Some(pid)), + _ if self.term.contains(&name.to_string()) && !is_root => Ok(Some(pid)), _ => self.get_parent_term_pid(ppid, false) } } @@ -84,14 +84,15 @@ fn main() -> Result<(), swayipc::Error> { // running commands. :( let mut args: Vec = env::args().collect(); + let nterms = args.len() - 1; - if args.len() < 2 { - println!("usage: swhd "); + if nterms < 1 { + println!("usage: swhd "); return Ok(()); } let wh = WindowHider { - term: args.remove(1), + term: args.drain(1..nterms).collect(), regex: Regex::new(r"\d+ \((.*)\) \w (\d+) \d+").unwrap() }; -- cgit v1.2.3