{ config, pkgs, lib, ... }: let cfg = config.features.services.extra.greetd; in { options.features.services.extra.greetd = { enable = lib.mkEnableOption "greetd"; }; config = lib.mkIf cfg.enable { environment.variables = { LIBSEAT_BACKEND = "logind"; }; services.greetd = { enable = true; settings = { default_session = { command = lib.mkForce "${pkgs.dbus}/bin/dbus-run-session ${pkgs.cage}/bin/cage -s -- ${pkgs.regreet}/bin/regreet -L off"; }; }; }; programs.regreet = { enable = true; }; boot = { consoleLogLevel = 0; initrd.verbose = false; kernelParams = [ "quiet" "splash" "boot.shell_on_fail" "loglevel=3" "rd.systemd.show_status=false" "rd.udev.log_level=3" "udev.log_priority=3" ]; # Hide the OS choice for bootloaders. # It's still possible to open the bootloader list by pressing any key # It will just not appear on screen unless a key is pressed loader.timeout = 0; }; }; }