diff options
| author | Ivan Molodetskikh <yalterz@gmail.com> | 2024-05-05 12:50:18 +0400 |
|---|---|---|
| committer | Ivan Molodetskikh <yalterz@gmail.com> | 2024-05-05 12:50:18 +0400 |
| commit | ea590918696709b0586eb1941b4829ffc5a46e94 (patch) | |
| tree | 3432d7e56a5beeb7d5c5213f747633906c3f6e70 /src/ipc | |
| parent | 2e4a2e13b175fcbb0fef58214f7de5b60775214a (diff) | |
| download | niri-ea590918696709b0586eb1941b4829ffc5a46e94.tar.gz niri-ea590918696709b0586eb1941b4829ffc5a46e94.tar.bz2 niri-ea590918696709b0586eb1941b4829ffc5a46e94.zip | |
Print message when output was not found
Diffstat (limited to 'src/ipc')
| -rw-r--r-- | src/ipc/client.rs | 15 | ||||
| -rw-r--r-- | src/ipc/server.rs | 13 |
2 files changed, 22 insertions, 6 deletions
diff --git a/src/ipc/client.rs b/src/ipc/client.rs index 3aa5eb22..4709f57a 100644 --- a/src/ipc/client.rs +++ b/src/ipc/client.rs @@ -1,5 +1,7 @@ use anyhow::{anyhow, bail, Context}; -use niri_ipc::{LogicalOutput, Mode, Output, Request, Response, Socket, Transform}; +use niri_ipc::{ + LogicalOutput, Mode, Output, OutputConfigChanged, Request, Response, Socket, Transform, +}; use serde_json::json; use crate::cli::Msg; @@ -241,10 +243,15 @@ pub fn handle_msg(msg: Msg, json: bool) -> anyhow::Result<()> { bail!("unexpected response: expected Handled, got {response:?}"); }; } - Msg::Output { .. } => { - let Response::Handled = response else { - bail!("unexpected response: expected Handled, got {response:?}"); + Msg::Output { output, .. } => { + let Response::OutputConfigChanged(response) = response else { + bail!("unexpected response: expected OutputConfigChanged, got {response:?}"); }; + + if response == OutputConfigChanged::OutputWasMissing { + println!("Output \"{output}\" is not connected."); + println!("The change will apply when it is connected."); + } } } diff --git a/src/ipc/server.rs b/src/ipc/server.rs index 59f929d8..251f70bc 100644 --- a/src/ipc/server.rs +++ b/src/ipc/server.rs @@ -8,7 +8,7 @@ use calloop::io::Async; use directories::BaseDirs; use futures_util::io::{AsyncReadExt, BufReader}; use futures_util::{AsyncBufReadExt, AsyncWriteExt}; -use niri_ipc::{Reply, Request, Response}; +use niri_ipc::{OutputConfigChanged, Reply, Request, Response}; use smithay::desktop::Window; use smithay::reexports::calloop::generic::Generic; use smithay::reexports::calloop::{Interest, LoopHandle, Mode, PostAction}; @@ -170,10 +170,19 @@ fn process(ctx: &ClientCtx, request: Request) -> Reply { Response::Handled } Request::Output { output, action } => { + let ipc_outputs = ctx.ipc_outputs.lock().unwrap(); + let response = if ipc_outputs.contains_key(&output) { + OutputConfigChanged::Applied + } else { + OutputConfigChanged::OutputWasMissing + }; + drop(ipc_outputs); + ctx.event_loop.insert_idle(move |state| { state.apply_transient_output_config(&output, action); }); - Response::Handled + + Response::OutputConfigChanged(response) } }; |
