From c44946be8269bf8e6979947d5c49b4b6c83919ba Mon Sep 17 00:00:00 2001 From: Victoria Brekenfeld Date: Fri, 25 Oct 2024 15:45:37 +0200 Subject: [PATCH] comp: Allow to specify different compositors --- src/comp.rs | 5 ++++- src/main.rs | 9 ++++++--- 2 files changed, 10 insertions(+), 4 deletions(-) diff --git a/src/comp.rs b/src/comp.rs index a7569ba..5982a21 100644 --- a/src/comp.rs +++ b/src/comp.rs @@ -173,6 +173,8 @@ async fn send_fd(session_tx: &mut OwnedWriteHalf, stream: Vec) -> Re pub fn run_compositor( process_manager: &ProcessManager, + exec: String, + args: Vec, _token: CancellationToken, mut socket_rx: mpsc::UnboundedReceiver>, env_tx: oneshot::Sender>, @@ -200,7 +202,8 @@ pub fn run_compositor( process_manager .start_process( Process::new() - .with_executable("cosmic-comp") + .with_executable(exec) + .with_args(args) .with_env([("COSMIC_SESSION_SOCK", comp.as_raw_fd().to_string())]) .with_on_exit(move |pman, _, err_code, _will_restart| { let session_dbus_tx = session_dbus_tx.clone(); diff --git a/src/main.rs b/src/main.rs index 3ee9d45..0fa6068 100644 --- a/src/main.rs +++ b/src/main.rs @@ -9,9 +9,7 @@ mod service; mod systemd; use std::{ - borrow::Cow, - os::fd::{AsRawFd, OwnedFd}, - sync::Arc, + borrow::Cow, env, os::fd::{AsRawFd, OwnedFd}, sync::Arc }; use async_signals::Signals; @@ -116,6 +114,9 @@ async fn start( ) -> Result { info!("Starting cosmic-session"); + let mut args = env::args().skip(1); + let (executable, args) = (args.next().unwrap_or_else(|| String::from("cosmic-comp")), args.collect::>()); + let process_manager = ProcessManager::new().await; _ = process_manager.set_max_restarts(usize::MAX).await; _ = process_manager @@ -128,6 +129,8 @@ async fn start( let (env_tx, env_rx) = oneshot::channel(); let compositor_handle = comp::run_compositor( &process_manager, + executable.clone(), + args, token.child_token(), socket_rx, env_tx,