{ config, pkgs, lib, ... }: with lib; let cfg = config.desktop.niri; in { imports = [./misc/sound.nix ./misc/regreet.nix]; options = { desktop.niri.enable = mkEnableOption "enable niri desktop"; }; config = mkIf cfg.enable { environment.systemPackages = with pkgs; [ brightnessctl gcr_4 ]; fonts.fontDir.enable = true; security.pam = { services.hyprlock = {}; loginLimits = [ { domain = "@users"; item = "rtprio"; type = "-"; value = 1; } ]; }; services = { gnome.gnome-keyring.enable = true; udisks2.enable = true; dbus = { apparmor = "enabled"; implementation = "broker"; }; }; programs = { dconf.enable = true; seahorse.enable = true; }; xdg.portal = { enable = true; extraPortals = with pkgs; [ xdg-desktop-portal-gnome xdg-desktop-portal-gtk ]; config.common.default = [ "gnome" "gtk" ]; }; services.greetd.settings.initial_session = { user = "user"; command = "${pkgs.niri}/bin/niri-session"; }; }; }