diff --git a/libs/enigo/src/linux.rs b/libs/enigo/src/linux.rs index 456c207ec..1cca91c87 100644 --- a/libs/enigo/src/linux.rs +++ b/libs/enigo/src/linux.rs @@ -510,6 +510,7 @@ fn start_pynput_service(rx: mpsc::Receiver<(PyMsg, bool)>) { } status = std::process::Command::new("sudo") .args(vec![ + "-E", &format!("XDG_RUNTIME_DIR=/run/user/{}", userid) as &str, "-u", &username, diff --git a/src/platform/linux.rs b/src/platform/linux.rs index f10e1205a..b468060d5 100644 --- a/src/platform/linux.rs +++ b/src/platform/linux.rs @@ -533,8 +533,10 @@ pub fn is_root() -> bool { pub fn run_as_user(arg: &str) -> ResultType> { let uid = get_active_userid(); let cmd = std::env::current_exe()?; + // -E required for opensuse let task = std::process::Command::new("sudo") .args(vec![ + "-E", &format!("XDG_RUNTIME_DIR=/run/user/{}", uid) as &str, "-u", &get_active_username(),