{ inputs, config, lib, pkgs, ... }: let cfg = config.samfelag.modules.desktop.tools.greetd; in { options.samfelag.modules.desktop.tools.greetd = with lib; { enable = mkEnableOption "Greetd based greeter"; wm_cmd = lib.my.mkOpt' types.str "" "Window manager command"; }; config = lib.mkIf cfg.enable { environment.systemPackages = with pkgs; [ greetd.gtkgreet cage ]; services.greetd = { enable = true; settings = { default_session = { command = "${pkgs.cage}/bin/cage -d -s ${pkgs.greetd.gtkgreet}/bin/gtkgreet -- -c ${cfg.wm_cmd} -s /etc/greetd/greetd.css"; user = config.user.name; }; }; }; environment.etc."greetd/environments".text = '' ${cfg.wm_cmd} ''; environment.etc."greetd/greetd.css".text = '' window { background-image: url("file://${config.samfelag.modules.desktop.wallpaper}"); background-size: cover; background-position: center; font-family: Iosevka; color: #${config.colorScheme.palette.base00}; } box#body { background-color: #${config.colorScheme.palette.base06}; opacity: 0.75; border-radius: 10px; padding: 50px; } ''; }; }