7904dc9b3d
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent) Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
58 lines
1.7 KiB
Diff
58 lines
1.7 KiB
Diff
diff --git a/orbutils/src/orblogin/keymap.rs b/orbutils/src/orblogin/keymap.rs
|
|
index 8d5d8cf0..8ef61992 100644
|
|
--- a/orbutils/src/orblogin/keymap.rs
|
|
+++ b/orbutils/src/orblogin/keymap.rs
|
|
@@
|
|
-use std::{fs, path::PathBuf, process::Command};
|
|
+use std::process::Command;
|
|
|
|
diff --git a/orbutils/src/orblogin/main.rs b/orbutils/src/orblogin/main.rs
|
|
index 660aa8f1..1a9ca703 100644
|
|
--- a/orbutils/src/orblogin/main.rs
|
|
+++ b/orbutils/src/orblogin/main.rs
|
|
@@
|
|
-use log::{error, info};
|
|
+use log::{error, info};
|
|
+use std::path::Path;
|
|
use std::process::Command;
|
|
use std::{env, io, str};
|
|
@@
|
|
fn normal_usernames() -> Vec<String> {
|
|
let users = match AllUsers::authenticator(Config::default()) {
|
|
Ok(ok) => ok,
|
|
Err(_) => return Vec::new(),
|
|
};
|
|
@@
|
|
usernames.sort();
|
|
usernames
|
|
}
|
|
+
|
|
+fn available_session_options(default_launcher: &str) -> Vec<(&'static str, &'static str)> {
|
|
+ let mut options = vec![("Orbital", "launcher")];
|
|
+
|
|
+ if default_launcher == "orbital-wayland" || Path::new("/usr/bin/orbital-wayland").exists() {
|
|
+ options.push(("Wayland", "orbital-wayland"));
|
|
+ }
|
|
+
|
|
+ if default_launcher == "orbital-kde" || Path::new("/usr/bin/orbital-kde").exists() {
|
|
+ options.push(("KDE", "orbital-kde"));
|
|
+ }
|
|
+
|
|
+ options
|
|
+}
|
|
@@
|
|
- let session_options = vec![
|
|
- ("Orbital", "launcher"),
|
|
- ("Wayland", "orbital-wayland"),
|
|
- ("KDE", "orbital-kde"),
|
|
- ];
|
|
+ let session_options = available_session_options(launcher_cmd);
|
|
@@
|
|
let _ =
|
|
syscall::fcntl(before_ns_fd.raw(), syscall::F_SETFD, syscall::O_CLOEXEC);
|
|
before_ns_fd
|
|
};
|
|
+ #[cfg(not(target_os = "redox"))]
|
|
+ let _ = username;
|
|
match command.spawn() {
|