aboutsummaryrefslogtreecommitdiff
path: root/src/ipc/server.rs
diff options
context:
space:
mode:
authorrustysec <russ@infocyte.com>2024-05-16 14:30:52 -0700
committerIvan Molodetskikh <yalterz@gmail.com>2024-05-17 10:33:00 +0300
commit36d3e70f11bde96eb67d157b22ebcdf4767af0c2 (patch)
treef03cad743d95094e0d3eb37b26568006c5298806 /src/ipc/server.rs
parenta2f74c9bff953c9f3318cb642785f02c6f5fe5d3 (diff)
downloadniri-36d3e70f11bde96eb67d157b22ebcdf4767af0c2.tar.gz
niri-36d3e70f11bde96eb67d157b22ebcdf4767af0c2.tar.bz2
niri-36d3e70f11bde96eb67d157b22ebcdf4767af0c2.zip
Implement niri msg workspaces
Diffstat (limited to 'src/ipc/server.rs')
-rw-r--r--src/ipc/server.rs10
1 files changed, 10 insertions, 0 deletions
diff --git a/src/ipc/server.rs b/src/ipc/server.rs
index 5c3f27e6..26958a7f 100644
--- a/src/ipc/server.rs
+++ b/src/ipc/server.rs
@@ -198,6 +198,16 @@ async fn process(ctx: &ClientCtx, request: Request) -> Reply {
Response::OutputConfigChanged(response)
}
+ Request::Workspaces => {
+ let (tx, rx) = async_channel::bounded(1);
+ ctx.event_loop.insert_idle(move |state| {
+ let workspaces = state.niri.layout.ipc_workspaces();
+ let _ = tx.send_blocking(workspaces);
+ });
+ let result = rx.recv().await;
+ let workspaces = result.map_err(|_| String::from("error getting workspace info"))?;
+ Response::Workspaces(workspaces)
+ }
};
Ok(response)