update bar-ws-monitor to work again

This commit is contained in:
Schrottkatze 2025-06-24 17:13:43 +02:00
parent 7f8869f14a
commit b5da9c89ad
Signed by: schrottkatze
SSH key fingerprint: SHA256:FPOYVeBy3QP20FEM42uWF1Wa/Qhlk+L3S2+Wuau/Auo
3 changed files with 20 additions and 9 deletions

4
Cargo.lock generated
View file

@ -689,9 +689,9 @@ dependencies = [
[[package]] [[package]]
name = "niri-ipc" name = "niri-ipc"
version = "25.2.0" version = "25.5.1"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "01515d0a7e73f1f3bd0347100542c4c3f6ebc280688add12e7ed2af4c35af4fb" checksum = "dc3e165f7854b2f83054a2e8f7024baa49666ad25cdb95b8fb9fd17c48045605"
dependencies = [ dependencies = [
"serde", "serde",
"serde_json", "serde_json",

View file

@ -6,4 +6,4 @@ edition = "2021"
[dependencies] [dependencies]
serde = { version = "1.0.209", features = [ "derive" ] } serde = { version = "1.0.209", features = [ "derive" ] }
serde_json = "1.0.127" serde_json = "1.0.127"
niri-ipc = "25.2.0" niri-ipc = "25.5.1"

View file

@ -21,13 +21,24 @@ const COLORS: [[&str; 2]; 7] = [
fn main() -> Result<(), std::io::Error> { fn main() -> Result<(), std::io::Error> {
let mut state = EventStreamState::default(); let mut state = EventStreamState::default();
let sock = Socket::connect()?; let mut sock = Socket::connect()?;
let mut func = sock.send(Request::EventStream).and_then(|it| match it { // let mut func = sock.send(Request::EventStream).and_then(|it| match it {
(Ok(Response::Handled), func) => Ok(func), // (Ok(Response::Handled), func) => Ok(func),
_ => unreachable!(), // _ => 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 // check only relevant later, only done here to avoid a clone
let ev_is_ws_related = matches!( let ev_is_ws_related = matches!(
&ev, &ev,