config: add shell option to hide the shell session (#955)

The shell session is unconditionally added to the session list with no way to hide it. This is inconsistent with `xinitrc`, which is omitted from the list when set to `null`.

This change adds a `shell` boolean config option (default `true`). Setting it to `false` hides the shell session from the list, following the same pattern as `xinitrc`.

Co-authored-by: Jackson Delahunt <jackson@stemn.com>
Reviewed-on: https://codeberg.org/fairyglade/ly/pulls/955
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:
Jackson Delahunt
2026-04-01 19:00:37 +02:00
committed by AnErrupTion
parent b8048234d9
commit eec83179b9
3 changed files with 19 additions and 12 deletions

View File

@@ -737,18 +737,20 @@ pub fn main() !void {
try state.buffer.registerKeybind(&state.login.label.keybinds, "H", &viGoLeft, &state);
try state.buffer.registerKeybind(&state.login.label.keybinds, "L", &viGoRight, &state);
addOtherEnvironment(&state.session, state.lang, .shell, null) catch |err| {
try state.info_line.addMessage(
state.lang.err_alloc,
state.config.error_bg,
state.config.error_fg,
);
try state.log_file.err(
"sys",
"failed to add shell environment: {s}",
.{@errorName(err)},
);
};
if (state.config.shell) {
addOtherEnvironment(&state.session, state.lang, .shell, null) catch |err| {
try state.info_line.addMessage(
state.lang.err_alloc,
state.config.error_bg,
state.config.error_fg,
);
try state.log_file.err(
"sys",
"failed to add shell environment: {s}",
.{@errorName(err)},
);
};
}
if (build_options.enable_x11_support) {
if (state.config.xinitrc) |xinitrc_cmd| {