ReGreet
ReGreet copied to clipboard
SESSION_DIRS does not work
First of all thank you for this nice greeter, I have ported it to PCLinuxOS to have properly functioning Wayland sessions and it works very nicely.
However, I have an issue where SESSION_DIRS seems to not work. On PCLinuxOS, X11 sessions are stored in /etc/X11/dm/Sessions and there is no /usr/share/xsessions. I figured out that its still pointing towards /usr/share/xsessions by symlinking /etc/11/dm/Sessions to /usr/share/xsessions and now you can see X11 sessions in ReGreet. But by default, even with SESSION_DIRS set to SESSION_DIRS=/etc/X11/dm/Sessions:/usr/share/wayland-sessions when building, it only sees Wayland sessions.
Does the greeter have permissions to read /etc/X11/dm/Session? Also, could you include the logs?
Does the greeter have permissions to read
/etc/X11/dm/Session? Also, could you include the logs?
It should. /etc/X11/dm/Sessions is drwxr-xr-x
2025-05-24T11:19:07.321860402-05:00 INFO regreet::tomlutils: Loaded TOML file: /etc/greetd/regreet.toml
2025-05-24T11:19:07.321962454-05:00 WARN regreet::sysutil: Failed to read login.defs from '/etc/login.defs', using default values: Permission denied (os error 13)
2025-05-24T11:19:07.321970423-05:00 DEBUG regreet::sysutil: NormalUser { uid_min: 1000, uid_max: 60000 }
2025-05-24T11:19:07.322019449-05:00 DEBUG regreet::sysutil: Found user 'hunter' with UID '1000' and full name: Hunter
2025-05-24T11:19:07.322028521-05:00 DEBUG regreet::sysutil: Found XDG env var XDG_DATA_DIRS: /usr/local/share:/usr/share:/var/lib/greetd/.local/share/flatpak/exports/share:/var/lib/flatpak/exports/share
2025-05-24T11:19:07.322031969-05:00 DEBUG regreet::sysutil: Checking session directory: /usr/local/share/xsessions
2025-05-24T11:19:07.322052247-05:00 DEBUG regreet::sysutil: Checking session directory: /usr/local/share/wayland-sessions
2025-05-24T11:19:07.322069649-05:00 DEBUG regreet::sysutil: Checking session directory: /usr/share/xsessions
2025-05-24T11:19:07.32208301-05:00 DEBUG regreet::sysutil: Checking session directory: /usr/share/wayland-sessions
2025-05-24T11:19:07.322104491-05:00 INFO regreet::sysutil: Now scanning session file: /usr/share/wayland-sessions/labwc.desktop
2025-05-24T11:19:07.32268083-05:00 DEBUG regreet::sysutil: Found name 'labwc' for session '/usr/share/wayland-sessions/labwc.desktop' with command '["ck-launch-session", "dbus-run-session", "labwc"]'
2025-05-24T11:19:07.322694352-05:00 INFO regreet::sysutil: Now scanning session file: /usr/share/wayland-sessions/plasmawayland.desktop
2025-05-24T11:19:07.322877447-05:00 DEBUG regreet::sysutil: Found name 'Plasma (Wayland)' for session '/usr/share/wayland-sessions/plasmawayland.desktop' with command '["/usr/bin/startwayland"]'
2025-05-24T11:19:07.322886598-05:00 DEBUG regreet::sysutil: Checking session directory: /var/lib/greetd/.local/share/flatpak/exports/share/xsessions
2025-05-24T11:19:07.322905313-05:00 DEBUG regreet::sysutil: Checking session directory: /var/lib/greetd/.local/share/flatpak/exports/share/wayland-sessions
2025-05-24T11:19:07.32292104-05:00 DEBUG regreet::sysutil: Checking session directory: /var/lib/flatpak/exports/share/xsessions
2025-05-24T11:19:07.322938361-05:00 DEBUG regreet::sysutil: Checking session directory: /var/lib/flatpak/exports/share/wayland-sessions
2025-05-24T11:19:07.322956053-05:00 WARN regreet::tomlutils: Missing TOML file: /var/lib/regreet/state.toml
2025-05-24T11:19:07.354391694-05:00 INFO regreet::client: Cancelling greetd session
2025-05-24T11:19:10.39187618-05:00 DEBUG regreet::gui::component: Setting dark theme: true
2025-05-24T11:19:10.402831031-05:00 DEBUG regreet::gui::component: Setting cursor theme: PolarCursorTheme
2025-05-24T11:19:10.402871287-05:00 DEBUG regreet::gui::component: Setting font: OpenSans 15
2025-05-24T11:19:10.402893299-05:00 DEBUG regreet::gui::component: Setting icon theme: Adwaita
2025-05-24T11:19:10.402896306-05:00 DEBUG regreet::gui::component: Setting theme: Adwaita
2025-05-24T11:19:10.413567003-05:00 DEBUG regreet::gui::component: Found user: Hunter
2025-05-24T11:19:10.413718683-05:00 DEBUG regreet::gui::component: Found session: labwc
2025-05-24T11:19:10.413764963-05:00 DEBUG regreet::gui::component: Found session: Plasma (Wayland)
2025-05-24T11:19:10.41379351-05:00 INFO regreet::gui::component: Using first found user 'hunter' as initial user
2025-05-24T11:19:10.41382703-05:00 DEBUG update_with_view{input=UserChanged(UserSessInfo { user_id: Some("hunter"), user_text: "", sess_id: None, sess_text: "" }) component="regreet::gui::model::Greeter" id="0x7ffcc4e2ba60"}: regreet::gui::component: Got input message: UserChanged(UserSessInfo { user_id: Some("hunter"), user_text: "", sess_id: None, sess_text: "" })
2025-05-24T11:19:10.413831521-05:00 DEBUG update_with_view{input=UserChanged(UserSessInfo { user_id: Some("hunter"), user_text: "", sess_id: None, sess_text: "" }) component="regreet::gui::model::Greeter" id="0x7ffcc4e2ba60"}:user_change_handler: regreet::gui::model: Retrieved username 'hunter' from options
2025-05-24T11:19:10.413833245-05:00 INFO update_with_view{input=UserChanged(UserSessInfo { user_id: Some("hunter"), user_text: "", sess_id: None, sess_text: "" }) component="regreet::gui::model::Greeter" id="0x7ffcc4e2ba60"}:user_change_handler: regreet::gui::model: Last session for user 'hunter' missing
2025-05-24T11:20:14.867671971-05:00 DEBUG update_with_view{input=Login { info: UserSessInfo { user_id: Some("hunter"), user_text: "", sess_id: Some("Plasma (Wayland)"), sess_text: "" } } component="regreet::gui::model::Greeter" id="0x7ffcc4e2ba60"}: regreet::gui::component: Got input message: Login { info: UserSessInfo { user_id: Some("hunter"), user_text: "", sess_id: Some("Plasma (Wayland)"), sess_text: "" } }
2025-05-24T11:20:14.867685353-05:00 DEBUG update_with_view{input=Login { info: UserSessInfo { user_id: Some("hunter"), user_text: "", sess_id: Some("Plasma (Wayland)"), sess_text: "" } } component="regreet::gui::model::Greeter" id="0x7ffcc4e2ba60"}:login_click_handler: regreet::gui::model: Retrieved username 'hunter' from options
2025-05-24T11:20:14.867687568-05:00 INFO update_with_view{input=Login { info: UserSessInfo { user_id: Some("hunter"), user_text: "", sess_id: Some("Plasma (Wayland)"), sess_text: "" } } component="regreet::gui::model::Greeter" id="0x7ffcc4e2ba60"}:login_click_handler: regreet::gui::model: Creating session for user: hunter
2025-05-24T11:20:14.867689383-05:00 INFO update_with_view{input=Login { info: UserSessInfo { user_id: Some("hunter"), user_text: "", sess_id: Some("Plasma (Wayland)"), sess_text: "" } } component="regreet::gui::model::Greeter" id="0x7ffcc4e2ba60"}:login_click_handler: regreet::client: Creating session for username: hunter
2025-05-24T11:20:14.870952892-05:00 INFO update_with_view{input=Login { info: UserSessInfo { user_id: Some("hunter"), user_text: "", sess_id: Some("Plasma (Wayland)"), sess_text: "" } } component="regreet::gui::model::Greeter" id="0x7ffcc4e2ba60"}:login_click_handler: regreet::gui::model: greetd asks for a secret auth input: Password:
2025-05-24T11:20:16.344533239-05:00 DEBUG update_with_view{input=Login { info: UserSessInfo { user_id: Some("hunter"), user_text: "", sess_id: Some("Plasma (Wayland)"), sess_text: "" } } component="regreet::gui::model::Greeter" id="0x7ffcc4e2ba60"}: regreet::gui::component: Got input message: Login { info: UserSessInfo { user_id: Some("hunter"), user_text: "", sess_id: Some("Plasma (Wayland)"), sess_text: "" } }
2025-05-24T11:20:16.344546701-05:00 INFO update_with_view{input=Login { info: UserSessInfo { user_id: Some("hunter"), user_text: "", sess_id: Some("Plasma (Wayland)"), sess_text: "" } } component="regreet::gui::model::Greeter" id="0x7ffcc4e2ba60"}:login_click_handler: regreet::client: Sending password to greetd
2025-05-24T11:20:16.347742209-05:00 INFO update_with_view{input=Login { info: UserSessInfo { user_id: Some("hunter"), user_text: "", sess_id: Some("Plasma (Wayland)"), sess_text: "" } } component="regreet::gui::model::Greeter" id="0x7ffcc4e2ba60"}:login_click_handler: regreet::gui::model: Successfully logged in; starting session
2025-05-24T11:20:16.347747611-05:00 DEBUG update_with_view{input=Login { info: UserSessInfo { user_id: Some("hunter"), user_text: "", sess_id: Some("Plasma (Wayland)"), sess_text: "" } } component="regreet::gui::model::Greeter" id="0x7ffcc4e2ba60"}:login_click_handler: regreet::gui::model: Retrieved current session: Plasma (Wayland)
2025-05-24T11:20:16.347751551-05:00 DEBUG update_with_view{input=Login { info: UserSessInfo { user_id: Some("hunter"), user_text: "", sess_id: Some("Plasma (Wayland)"), sess_text: "" } } component="regreet::gui::model::Greeter" id="0x7ffcc4e2ba60"}:login_click_handler: regreet::gui::model: Retrieved username 'hunter' from options
2025-05-24T11:20:16.347754347-05:00 DEBUG update_with_view{input=Login { info: UserSessInfo { user_id: Some("hunter"), user_text: "", sess_id: Some("Plasma (Wayland)"), sess_text: "" } } component="regreet::gui::model::Greeter" id="0x7ffcc4e2ba60"}:login_click_handler: regreet::gui::model: Updated cache with current user: hunter
2025-05-24T11:20:16.347755751-05:00 INFO update_with_view{input=Login { info: UserSessInfo { user_id: Some("hunter"), user_text: "", sess_id: Some("Plasma (Wayland)"), sess_text: "" } } component="regreet::gui::model::Greeter" id="0x7ffcc4e2ba60"}:login_click_handler: regreet::gui::model: Saving cache to disk
2025-05-24T11:20:16.347760432-05:00 INFO update_with_view{input=Login { info: UserSessInfo { user_id: Some("hunter"), user_text: "", sess_id: Some("Plasma (Wayland)"), sess_text: "" } } component="regreet::gui::model::Greeter" id="0x7ffcc4e2ba60"}:login_click_handler: regreet::cache: Creating missing cache directory: /var/lib/regreet
2025-05-24T11:20:16.347767859-05:00 ERROR update_with_view{input=Login { info: UserSessInfo { user_id: Some("hunter"), user_text: "", sess_id: Some("Plasma (Wayland)"), sess_text: "" } } component="regreet::gui::model::Greeter" id="0x7ffcc4e2ba60"}:login_click_handler: regreet::gui::model: Error saving cache to disk: I/O error
2025-05-24T11:20:16.347769684-05:00 INFO update_with_view{input=Login { info: UserSessInfo { user_id: Some("hunter"), user_text: "", sess_id: Some("Plasma (Wayland)"), sess_text: "" } } component="regreet::gui::model::Greeter" id="0x7ffcc4e2ba60"}:login_click_handler: regreet::client: Starting greetd session with command: ["/usr/bin/startwayland"]
2025-05-24T11:20:16.347837154-05:00 INFO update_with_view{input=Login { info: UserSessInfo { user_id: Some("hunter"), user_text: "", sess_id: Some("Plasma (Wayland)"), sess_text: "" } } component="regreet::gui::model::Greeter" id="0x7ffcc4e2ba60"}:login_click_handler: regreet::gui::model: Session successfully started
We started using this patch to get it to work specifically for us on PCLinuxOS.
--- src/sysutil.rs 2025-01-06 11:47:51.000000000 -0600
+++ src/sysutil.rs 2025-05-25 11:04:59.962653512 -0500
@@ -147,7 +147,7 @@
debug!("Found XDG env var {XDG_DIR_ENV_VAR}: {sess_parent_dirs}");
match sess_parent_dirs
.split(':')
- .map(|parent_dir| format!("{parent_dir}/xsessions:{parent_dir}/wayland-sessions"))
+ .map(|parent_dir| format!("/etc/X11/dm/Sessions:{parent_dir}/wayland-sessions"))
.reduce(|a, b| a + ":" + &b)
{
None => SESSION_DIRS.to_string(),
@@ -167,7 +167,7 @@
};
let is_x11 = if let Some(name) = sess_dir_path.file_name() {
- name == "xsessions"
+ name == "Sessions"
} else {
false
};
hmm seems like u also have to unset XDG_DATA_DIRS to override where it looks for session files a bit weird ngl - id rather just set SESSION_DIRS or a cmdline flag to override it