diff options
| author | rustysec <russ@infocyte.com> | 2024-05-16 14:30:52 -0700 |
|---|---|---|
| committer | Ivan Molodetskikh <yalterz@gmail.com> | 2024-05-17 10:33:00 +0300 |
| commit | 36d3e70f11bde96eb67d157b22ebcdf4767af0c2 (patch) | |
| tree | f03cad743d95094e0d3eb37b26568006c5298806 /src/ipc/server.rs | |
| parent | a2f74c9bff953c9f3318cb642785f02c6f5fe5d3 (diff) | |
| download | niri-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.rs | 10 |
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) |
