diff --git a/src/main.rs b/src/main.rs index abef34a..1f7eadd 100644 --- a/src/main.rs +++ b/src/main.rs @@ -183,7 +183,11 @@ fn get_outputs(stream: &UnixStream) -> Vec { Ok(msg) => msg, Err(_) => panic!("Unable to get outputs"), }; - let mut outputs: Vec = serde_json::from_str(&o).unwrap(); + let mut outputs: Vec = serde_json::from_str::>(&o) + .unwrap() + .into_iter() + .filter(|x| x.active) + .collect(); outputs.sort_by(|x, y| x.name.cmp(&y.name)); // sort_by_key doesn't work here (https://stackoverflow.com/a/47126516) outputs } @@ -559,7 +563,7 @@ fn init_workspaces(stream: &UnixStream, workspace_index: usize) { let outputs = get_outputs(stream); let cmd_prefix: String = "focus output ".to_string(); - for output in outputs.iter().filter(|x| x.active).rev() { + for output in outputs.iter().rev() { let mut cmd = cmd_prefix.clone(); cmd.push_str(output.name.as_str()); send_command(stream, &cmd);