{ config, lib, pkgs, ... }: let inherit (lib.meta) getExe getExe'; inherit (lib.modules) mkIf; inherit (lib.options) mkOption mkEnableOption; inherit (lib.types) str listOf; inherit (config.meta.mainUser) username; cfg = config.modules.services.greetd; in { options.modules.services.greetd = { enable = mkEnableOption "greetd"; greeter = mkOption { description = "greetd frontend to use"; type = str; }; launchOptions = mkOption { description = "/etc/greetd/environments as list of strings"; type = listOf str; }; session = mkOption { description = "Which login session to start"; type = str; default = "niri"; }; }; config = mkIf cfg.enable { services.greetd = let session = { command = '' ${getExe pkgs.greetd.tuigreet} \ -c \"${cfg.session}\" \ -r -t --time-format "DD.MM.YYYY" --asteriks''; user = "greeter"; }; in { enable = true; vt = 7; settings = { default_session = session; initial_session = session; }; }; }; }