{ self, ... }: { perSystem = { self', pkgs, system, ... }: { packages = { aurora-greeter = pkgs.writeShellScriptBin "aurora-greeter" '' ${pkgs.quickshell}/bin/quickshell -p ${self'.packages.aurora-greeter-dots}/share/shell.qml ''; aurora-greeter-dots = pkgs.stdenv.mkDerivation { name = "aurora-greeter-dots"; src = ./.; buildInputs = []; buildPhase = '' ''; installPhase = '' mkdir -p $out/share cp -r $src/* $out/share ''; }; aurora-greeter-hypr-conf = pkgs.writeText "greeter-conf" '' exec-once=${self.packages.${system}.aurora-greeter}/bin/aurora-greeter ''; }; }; flake.nixosModules.default = { config, lib, pkgs, ... }: { options.services.aurora-greeter = with lib; { enable = mkEnableOption "aurora-greeter"; }; config = let cfg = config.services.aurora-greeter; system = pkgs.stdenv.hostPlatform.system; in { environment.systemPackages = [ self.packages.${system}.aurora-greeter self.packages.${system}.aurora-greeter-hypr-conf ]; services.greetd = { enable = cfg.enable; settings = { default_session = { command = "Hyprland -c ${self.packages.${system}.aurora-greeter-hypr-conf}/greeter-conf"; #user = "greeter"; }; }; }; }; }; }