{ pkgs, lib, config, inputs, ... }: let tuigreet = "${pkgs.greetd.tuigreet}/bin/tuigreet"; in { options.greeter = { session = lib.mkOption { type = lib.types.str; description = "Path to the session binary"; }; }; config = { environment.etc.session.text = toString config.greeter.session; services.greetd = { enable = true; settings = { default_session = { command = "${tuigreet} --time --remember --remember-session --sessions ${config.greeter.session}/bin/niri-session"; user = "greeter"; }; }; }; systemd.services.greetd.serviceConfig = { Type = "idle"; StandardInput = "tty"; StandardOutput = "tty"; StandardError = "journal"; TTYReset = true; TTYVHangup = true; TTYVDisallocate = true; }; }; }