{ config, lib, ... }:

let
  inherit (lib) mkIf mkEnableOption;

  cfg = config.snowhawk.niri;
in
{
  options.snowhawk.niri = {
    enable = mkEnableOption "niri nixos module";
  };

  config = mkIf cfg.enable {
    programs.niri.enable = true;

    environment.sessionVariables.NIXOS_OZONE_WL = "1";

    services.displayManager = {
      defaultSession = "niri";
      enable = true;
      sddm.enable = true;
      sddm.wayland.enable = true;
    };

    home-manager.sharedModules = [
      ./home/niri.nix
      { snowhawk.niri.enable = lib.mkDefault true; }
    ];
  };
}