{ config, inputs, lib, perSystem, pkgs, ... }: with lib; let cfg = config.desktop.dms; in { imports = with inputs; [ dankMaterialShell.nixosModules.dankMaterialShell dankMaterialShell.nixosModules.greeter niri-flake.nixosModules.niri ]; options = { desktop.dms.enable = mkEnableOption "enable DankMaterialShell"; }; config = mkIf cfg.enable { xdg.portal = { enable = true; extraPortals = with pkgs; [xdg-desktop-portal-gnome xdg-desktop-portal-gtk]; config.niri.default = ["gnome" "gtk"]; }; module.desktop.gnome-keyring.enable = true; sound.pipewire.enable = true; programs.niri = { enable = true; package = perSystem.niri.niri; }; systemd.user.services.niri-flake-polkit.enable = false; programs.dankMaterialShell = { enable = true; greeter = { enable = true; compositor.name = "niri"; }; }; }; }