{ config, lib, pkgs, ... }: let inherit (lib.modules) mkForce mkIf; inherit (lib.options) mkEnableOption; cfg = config.modules.desktops.niri; in { options.modules.desktops.niri.enable = mkEnableOption "Niri, a scolling tiling wayland compositor"; config = mkIf cfg.enable { programs.niri = { enable = true; package = pkgs.niri; }; # The niri module auto enables the gnome keyring, # which is something I direly want to avoid. services.gnome.gnome-keyring.enable = mkForce false; # set niri's config location to /etc/niri/config.kdl. environment.etc."niri/config.kdl".source = ./config.kdl; environment.systemPackages = builtins.attrValues { inherit (pkgs) xwayland-satellite avizo; }; xdg.portal = { enable = true; xdgOpenUsePortal = true; extraPortals = [ pkgs.xdg-desktop-portal-gtk ]; config = { common.default = ["*"]; hyprland.default = ["gtk"]; }; }; }; }