mirror of
https://github.com/fairyglade/ly.git
synced 2026-05-06 15:20:36 +00:00
config: allow waylandsessions and xsessions to be set to null (#954)
`waylandsessions` and `xsessions` are currently non-optional string fields, so there is no clean way to disable session type discovery for users who do not use Wayland or X11. Setting them to a nonexistent path works but produces log errors on every startup. This change makes both fields optional (`?[]const u8`), consistent with other nullable config fields such as `xinitrc`. Setting either to `null` in `config.ini` cleanly skips crawling for that session type with no side effects. Co-authored-by: Jackson Delahunt <jackson@stemn.com> Reviewed-on: https://codeberg.org/fairyglade/ly/pulls/954 Reviewed-by: AnErrupTion <anerruption+codeberg@disroot.org> Co-authored-by: Jackson Delahunt <sabrehagen@noreply.codeberg.org> Co-committed-by: Jackson Delahunt <sabrehagen@noreply.codeberg.org>
This commit is contained in:
committed by
AnErrupTion
parent
142476041d
commit
10a873acb9
@@ -92,9 +92,9 @@ start_cmd: ?[]const u8 = null,
|
||||
text_in_center: bool = false,
|
||||
vi_default_mode: ViMode = .normal,
|
||||
vi_mode: bool = false,
|
||||
waylandsessions: []const u8 = build_options.prefix_directory ++ "/share/wayland-sessions",
|
||||
waylandsessions: ?[]const u8 = build_options.prefix_directory ++ "/share/wayland-sessions",
|
||||
x_cmd: []const u8 = build_options.prefix_directory ++ "/bin/X",
|
||||
x_vt: ?u8 = null,
|
||||
xauth_cmd: []const u8 = build_options.prefix_directory ++ "/bin/xauth",
|
||||
xinitrc: ?[]const u8 = "~/.xinitrc",
|
||||
xsessions: []const u8 = build_options.prefix_directory ++ "/share/xsessions",
|
||||
xsessions: ?[]const u8 = build_options.prefix_directory ++ "/share/xsessions",
|
||||
|
||||
38
src/main.zig
38
src/main.zig
@@ -769,32 +769,36 @@ pub fn main() !void {
|
||||
var has_crawl_error = false;
|
||||
|
||||
// Crawl session directories (Wayland, X11 and custom respectively)
|
||||
var wayland_session_dirs = std.mem.splitScalar(u8, state.config.waylandsessions, ':');
|
||||
while (wayland_session_dirs.next()) |dir| {
|
||||
crawl(&state.session, state.lang, dir, .wayland) catch |err| {
|
||||
has_crawl_error = true;
|
||||
try state.log_file.err(
|
||||
"sys",
|
||||
"failed to crawl wayland session directory '{s}': {s}",
|
||||
.{ dir, @errorName(err) },
|
||||
);
|
||||
};
|
||||
}
|
||||
|
||||
if (build_options.enable_x11_support) {
|
||||
var x_session_dirs = std.mem.splitScalar(u8, state.config.xsessions, ':');
|
||||
while (x_session_dirs.next()) |dir| {
|
||||
crawl(&state.session, state.lang, dir, .x11) catch |err| {
|
||||
if (state.config.waylandsessions) |waylandsessions| {
|
||||
var wayland_session_dirs = std.mem.splitScalar(u8, waylandsessions, ':');
|
||||
while (wayland_session_dirs.next()) |dir| {
|
||||
crawl(&state.session, state.lang, dir, .wayland) catch |err| {
|
||||
has_crawl_error = true;
|
||||
try state.log_file.err(
|
||||
"sys",
|
||||
"failed to crawl x11 session directory '{s}': {s}",
|
||||
"failed to crawl wayland session directory '{s}': {s}",
|
||||
.{ dir, @errorName(err) },
|
||||
);
|
||||
};
|
||||
}
|
||||
}
|
||||
|
||||
if (build_options.enable_x11_support) {
|
||||
if (state.config.xsessions) |xsessions| {
|
||||
var x_session_dirs = std.mem.splitScalar(u8, xsessions, ':');
|
||||
while (x_session_dirs.next()) |dir| {
|
||||
crawl(&state.session, state.lang, dir, .x11) catch |err| {
|
||||
has_crawl_error = true;
|
||||
try state.log_file.err(
|
||||
"sys",
|
||||
"failed to crawl x11 session directory '{s}': {s}",
|
||||
.{ dir, @errorName(err) },
|
||||
);
|
||||
};
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
var custom_session_dirs = std.mem.splitScalar(u8, state.config.custom_sessions, ':');
|
||||
while (custom_session_dirs.next()) |dir| {
|
||||
crawl(&state.session, state.lang, dir, .custom) catch |err| {
|
||||
|
||||
Reference in New Issue
Block a user