git.lucas.co / cce-display-manager
login greeter
git clone https://git.lucas.co/cce-display-manager.git

commitc7e22eb96c0fc9f0afa2e8037ba51b432e7603ef
parent1a9ebcd55f
authorLucas Galante <[email protected]>
date2026-05-28 21:25
debug: redirect user session output to /tmp/clear-display-manager-session.log

 src/main.rs | 14 ++++++++++----
 1 file changed, 10 insertions(+), 4 deletions(-)

diff --git a/src/main.rs b/src/main.rs
index 8378b37..b00d1fc 100644
--- a/src/main.rs
+++ b/src/main.rs
@@ -1571,10 +1571,16 @@ fn run_daemon() {
                 .env("PATH", "/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin")
                 .env("XDG_RUNTIME_DIR", &user_runtime_dir)
                 .env("XDG_SESSION_TYPE", if is_wayland { "wayland" } else { "x11" })
-                .env("XDG_SESSION_CLASS", "user")
-                .stdin(std::process::Stdio::inherit())
-                .stdout(std::process::Stdio::inherit())
-                .stderr(std::process::Stdio::inherit());
+                .env("XDG_SESSION_CLASS", "user");
+            let log_file = std::fs::File::create("/tmp/clear-display-manager-session.log");
+            if let Ok(ref f) = log_file {
+                session_cmd.stdout(std::process::Stdio::from(f.try_clone().unwrap()));
+                session_cmd.stderr(std::process::Stdio::from(f.try_clone().unwrap()));
+            } else {
+                session_cmd.stdout(std::process::Stdio::inherit());
+                session_cmd.stderr(std::process::Stdio::inherit());
+            }
+            session_cmd.stdin(std::process::Stdio::null());
 
             // Filter out sudo env vars so they don't leak into the user session
             for key in &["SUDO_USER", "SUDO_UID", "SUDO_GID", "SUDO_COMMAND"] {