aboutsummaryrefslogtreecommitdiff
path: root/niri-ipc/src/lib.rs
diff options
context:
space:
mode:
authorsodiboo <37938646+sodiboo@users.noreply.github.com>2024-04-19 15:02:32 +0200
committerGitHub <noreply@github.com>2024-04-19 13:02:32 +0000
commitb5f7e4bd83dbfc77e0c8b973bc217c9a4cb3f364 (patch)
treedbe59c9a19f2e7d94086e9fbb1c28a43e062e16b /niri-ipc/src/lib.rs
parentb98b95883def5cd726c1e96a006f9cd7498d1730 (diff)
downloadniri-b5f7e4bd83dbfc77e0c8b973bc217c9a4cb3f364.tar.gz
niri-b5f7e4bd83dbfc77e0c8b973bc217c9a4cb3f364.tar.bz2
niri-b5f7e4bd83dbfc77e0c8b973bc217c9a4cb3f364.zip
`niri_ipc::Socket`; `niri msg version`; version checking on IPC (#278)
* Implement version checking in IPC implement version checking; streamed IPC streamed IPC will allow multiple requests per connection add nonsense request change inline struct to json macro only check version if request actually fails fix usage of inspect_err (MSRV 1.72.0; stabilized 1.76.0) "nonsense request" -> "return error" oneshot connections * Change some things around * Unqualify niri_ipc::Transform --------- Co-authored-by: Ivan Molodetskikh <yalterz@gmail.com>
Diffstat (limited to 'niri-ipc/src/lib.rs')
-rw-r--r--niri-ipc/src/lib.rs10
1 files changed, 8 insertions, 2 deletions
diff --git a/niri-ipc/src/lib.rs b/niri-ipc/src/lib.rs
index 33d25f2d..26b89283 100644
--- a/niri-ipc/src/lib.rs
+++ b/niri-ipc/src/lib.rs
@@ -6,18 +6,22 @@ use std::str::FromStr;
use serde::{Deserialize, Serialize};
-/// Name of the environment variable containing the niri IPC socket path.
-pub const SOCKET_PATH_ENV: &str = "NIRI_SOCKET";
+mod socket;
+pub use socket::{Socket, SOCKET_PATH_ENV};
/// Request from client to niri.
#[derive(Debug, Serialize, Deserialize, Clone)]
pub enum Request {
+ /// Request the version string for the running niri instance.
+ Version,
/// Request information about connected outputs.
Outputs,
/// Request information about the focused window.
FocusedWindow,
/// Perform an action.
Action(Action),
+ /// Respond with an error (for testing error handling).
+ ReturnError,
}
/// Reply from niri to client.
@@ -35,6 +39,8 @@ pub type Reply = Result<Response, String>;
pub enum Response {
/// A request that does not need a response was handled successfully.
Handled,
+ /// The version string for the running niri instance.
+ Version(String),
/// Information about connected outputs.
///
/// Map from connector name to output info.