diff --git a/res/config.ini b/res/config.ini index c197fb8..53050e4 100644 --- a/res/config.ini +++ b/res/config.ini @@ -222,6 +222,8 @@ vi_default_mode = normal vi_mode = false # Wayland desktop environments +# You can specify multiple directories, +# e.g. /usr/share/wayland-sessions:/usr/local/share/wayland-sessions waylandsessions = $PREFIX_DIRECTORY/share/wayland-sessions # Xorg server command @@ -235,4 +237,6 @@ xauth_cmd = $PREFIX_DIRECTORY/bin/xauth xinitrc = ~/.xinitrc # Xorg desktop environments +# You can specify multiple directories, +# e.g. /usr/share/xsessions:/usr/local/share/xsessions xsessions = $PREFIX_DIRECTORY/share/xsessions diff --git a/src/main.zig b/src/main.zig index 569fa88..bd89b15 100644 --- a/src/main.zig +++ b/src/main.zig @@ -288,8 +288,16 @@ pub fn main() !void { try info_line.addMessage(hostname, config.bg, config.fg); } - try crawl(&session, lang, config.waylandsessions, .wayland); - if (build_options.enable_x11_support) try crawl(&session, lang, config.xsessions, .x11); + var wayland_session_dirs = std.mem.splitScalar(u8, config.waylandsessions, ':'); + while (wayland_session_dirs.next()) |dir| { + try crawl(&session, lang, dir, .wayland); + } + if (build_options.enable_x11_support) { + var x_session_dirs = std.mem.splitScalar(u8, config.xsessions, ':'); + while (x_session_dirs.next()) |dir| { + try crawl(&session, lang, dir, .x11); + } + } var login = Text.init(allocator, &buffer, false, null); defer login.deinit();