From b5da9c89ad09b29664d069d06d468758bb5cecb3 Mon Sep 17 00:00:00 2001 From: Schrottkatze Date: Tue, 24 Jun 2025 17:13:43 +0200 Subject: [PATCH] update bar-ws-monitor to work again --- Cargo.lock | 4 ++-- programs/bar-ws-monitor/Cargo.toml | 2 +- programs/bar-ws-monitor/src/main.rs | 23 +++++++++++++++++------ 3 files changed, 20 insertions(+), 9 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index f1121f4..86368d2 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -689,9 +689,9 @@ dependencies = [ [[package]] name = "niri-ipc" -version = "25.2.0" +version = "25.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "01515d0a7e73f1f3bd0347100542c4c3f6ebc280688add12e7ed2af4c35af4fb" +checksum = "dc3e165f7854b2f83054a2e8f7024baa49666ad25cdb95b8fb9fd17c48045605" dependencies = [ "serde", "serde_json", diff --git a/programs/bar-ws-monitor/Cargo.toml b/programs/bar-ws-monitor/Cargo.toml index f7c7ec4..583cc4f 100644 --- a/programs/bar-ws-monitor/Cargo.toml +++ b/programs/bar-ws-monitor/Cargo.toml @@ -6,4 +6,4 @@ edition = "2021" [dependencies] serde = { version = "1.0.209", features = [ "derive" ] } serde_json = "1.0.127" -niri-ipc = "25.2.0" +niri-ipc = "25.5.1" diff --git a/programs/bar-ws-monitor/src/main.rs b/programs/bar-ws-monitor/src/main.rs index 31d7d34..28165ab 100644 --- a/programs/bar-ws-monitor/src/main.rs +++ b/programs/bar-ws-monitor/src/main.rs @@ -21,13 +21,24 @@ const COLORS: [[&str; 2]; 7] = [ fn main() -> Result<(), std::io::Error> { let mut state = EventStreamState::default(); - let sock = Socket::connect()?; - let mut func = sock.send(Request::EventStream).and_then(|it| match it { - (Ok(Response::Handled), func) => Ok(func), - _ => unreachable!(), - })?; + let mut sock = Socket::connect()?; + // let mut func = sock.send(Request::EventStream).and_then(|it| match it { + // (Ok(Response::Handled), func) => Ok(func), + // _ => unreachable!(), + // })?; + // let mut func = sock.send(Request::EventStream).and_then(|it| match it { + // Ok(Response::Handled) => {} + // Ok(_) => panic!("???"), + // Err(e) => panic!("e"), + // }); + let r = sock.send(Request::EventStream)?; + match r { + Ok(Response::Handled) => {} + e => panic!("unexpected {e:?}"), + } - while let Ok(ev) = (func)() { + let mut receiver = sock.read_events(); + while let Ok(ev) = receiver() { // check only relevant later, only done here to avoid a clone let ev_is_ws_related = matches!( &ev,