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

@@ -330,6 +330,10 @@ session_log = .local/state/ly-session.log
# Setup command # Setup command
setup_cmd = $CONFIG_DIRECTORY/ly/setup.sh setup_cmd = $CONFIG_DIRECTORY/ly/setup.sh
# Show the shell session in the session list
# If false, the shell session will be hidden
shell = true
# Specifies the key combination used for showing the password # Specifies the key combination used for showing the password
show_password_key = F7 show_password_key = F7

View File

@@ -83,6 +83,7 @@ save: bool = true,
service_name: [:0]const u8 = "ly", service_name: [:0]const u8 = "ly",
session_log: ?[]const u8 = "ly-session.log", session_log: ?[]const u8 = "ly-session.log",
setup_cmd: []const u8 = build_options.config_directory ++ "/ly/setup.sh", setup_cmd: []const u8 = build_options.config_directory ++ "/ly/setup.sh",
shell: bool = true,
show_password_key: []const u8 = "F7", show_password_key: []const u8 = "F7",
show_tty: bool = false, show_tty: bool = false,
shutdown_cmd: []const u8 = "/sbin/shutdown -a now", shutdown_cmd: []const u8 = "/sbin/shutdown -a now",

View File

@@ -737,6 +737,7 @@ pub fn main() !void {
try state.buffer.registerKeybind(&state.login.label.keybinds, "H", &viGoLeft, &state); try state.buffer.registerKeybind(&state.login.label.keybinds, "H", &viGoLeft, &state);
try state.buffer.registerKeybind(&state.login.label.keybinds, "L", &viGoRight, &state); try state.buffer.registerKeybind(&state.login.label.keybinds, "L", &viGoRight, &state);
if (state.config.shell) {
addOtherEnvironment(&state.session, state.lang, .shell, null) catch |err| { addOtherEnvironment(&state.session, state.lang, .shell, null) catch |err| {
try state.info_line.addMessage( try state.info_line.addMessage(
state.lang.err_alloc, state.lang.err_alloc,
@@ -749,6 +750,7 @@ pub fn main() !void {
.{@errorName(err)}, .{@errorName(err)},
); );
}; };
}
if (build_options.enable_x11_support) { if (build_options.enable_x11_support) {
if (state.config.xinitrc) |xinitrc_cmd| { if (state.config.xinitrc) |xinitrc_cmd| {