{ 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; uwsmEnabled = config.modules.services.uwsm.enable; 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 = if uwsmEnabled then "${getExe config.programs.uwsm.package} start Hyprland" else "Hyprland"; }; }; config = mkIf cfg.enable { services.greetd = let session = { # command = '' # ${pkgs.greetd.tuigreet}/bin/tuigreet \ # -c \"${cfg.session}\" \ # -r # -t --time-format "DD.MM.YYYY" # --asteriks''; command = "${getExe config.programs.uwsm.package} start hyprland-uwsm.desktop"; user = username; }; in { enable = true; package = pkgs.greetd; vt = 7; settings = { default_session = session; initial_session = session; }; }; }; }