use std::process::Command;
use std::process::Output;
use crate::window::Window;
pub(crate) fn wmctrl(args: &str) -> Output {
Command::new("sh")
.arg("-c")
.arg(format!("wmctrl {}", args))
.output()
.expect(&format!("failed to execute 'wmctrl {}'", args))
}
pub fn find_window_by_title<'a>(windows: &'a Vec<Window>, title: &str) -> Option<&'a Window> {
windows.into_iter().find(|w| {
w.title()
.to_lowercase()
.contains(title.to_lowercase().as_str())
})
}
pub fn find_window_by_title_mut<'a>(windows: &'a mut Vec<Window>, title: &str) -> Option<&'a mut Window> {
windows.into_iter().find(|w| {
w.title()
.to_lowercase()
.contains(title.to_lowercase().as_str())
})
}