From c11fc482efbd52e4f6bf9207b2875f1d1ce81e57 Mon Sep 17 00:00:00 2001 From: Jan-Bulthuis Date: Sat, 22 Feb 2025 03:27:35 +0100 Subject: [PATCH] Added session XDG env variables --- src/gather.rs | 15 ++++++++------- src/greetd.rs | 3 ++- src/main.rs | 1 + 3 files changed, 11 insertions(+), 8 deletions(-) diff --git a/src/gather.rs b/src/gather.rs index 111506c..380e263 100644 --- a/src/gather.rs +++ b/src/gather.rs @@ -53,6 +53,7 @@ pub fn gather_sessions(user: &User) -> Vec { false => vec![Session { name: String::from("Shell"), generation: user.shell.to_str().unwrap().to_owned(), + env: vec![], }], } } @@ -92,15 +93,15 @@ fn gather_specialisations(path: &PathBuf) -> Vec { fn gather_session_data(path: &PathBuf, reset_path: &PathBuf) -> Session { let session_path = path.join("session"); + let env_file = read_to_string(session_path.join("env")).unwrap(); let name = read_to_string(session_path.join("name")).unwrap(); - // let init = format!( - // "sh -c \"{} && {} && {}\"", - // path.join("activate").display(), - // session_path.join("init").display(), - // reset_path.join("activate").display() - // ); let generation = path.to_str().unwrap().to_owned(); + let env = env_file.lines().map(String::from).collect(); - Session { name, generation } + Session { + name, + generation, + env, + } } diff --git a/src/greetd.rs b/src/greetd.rs index 782c125..5aaa8e7 100644 --- a/src/greetd.rs +++ b/src/greetd.rs @@ -31,10 +31,11 @@ pub fn login( } else { starting = true; let cmd = vec![String::from("nixgreety session")]; - let env = vec![format!( + let mut env = vec![format!( "NIXGREETY_GENERATION={}", session.generation.clone() )]; + env.append(&mut session.env.clone()); Request::StartSession { cmd, env }.write_to(&mut stream)?; } } diff --git a/src/main.rs b/src/main.rs index cb7d17d..1e19ed7 100644 --- a/src/main.rs +++ b/src/main.rs @@ -128,6 +128,7 @@ impl Display for User { struct Session { name: String, generation: String, + env: Vec, } impl Display for Session {