From 40c85da102054caeb86b7905cd27c69e392c8f92 Mon Sep 17 00:00:00 2001 From: Ivan Molodetskikh Date: Wed, 17 Jan 2024 10:38:32 +0400 Subject: Add an IPC socket and a niri msg outputs subcommand --- src/niri.rs | 13 +++++++++++++ 1 file changed, 13 insertions(+) (limited to 'src/niri.rs') diff --git a/src/niri.rs b/src/niri.rs index f22612ed..d0a7490f 100644 --- a/src/niri.rs +++ b/src/niri.rs @@ -98,6 +98,7 @@ use crate::dbus::mutter_screen_cast::{self, ScreenCastToNiri}; use crate::frame_clock::FrameClock; use crate::handlers::configure_lock_surface; use crate::input::{apply_libinput_settings, TabletData}; +use crate::ipc::server::IpcServer; use crate::layout::{Layout, MonitorRenderElement}; use crate::pw_utils::{Cast, PipeWire}; use crate::render_helpers::{NiriRenderer, PrimaryGpuTextureRenderElement}; @@ -190,6 +191,8 @@ pub struct Niri { #[cfg(feature = "dbus")] pub inhibit_power_key_fd: Option, + pub ipc_server: Option, + // Casts are dropped before PipeWire to prevent a double-free (yay). pub casts: Vec, pub pipewire: Option, @@ -865,6 +868,14 @@ impl Niri { }) .unwrap(); + let ipc_server = match IpcServer::start(&event_loop, &socket_name.to_string_lossy()) { + Ok(server) => Some(server), + Err(err) => { + warn!("error starting IPC server: {err:?}"); + None + } + }; + let pipewire = match PipeWire::new(&event_loop) { Ok(pipewire) => Some(pipewire), Err(err) => { @@ -949,6 +960,8 @@ impl Niri { #[cfg(feature = "dbus")] inhibit_power_key_fd: None, + ipc_server, + pipewire, casts: vec![], } -- cgit