{ inputs, self, ... }: { flake.nixosModules.graphics = { config, pkgs, inputs, lib, ... }: { config = lib.mkIf ((config.components.windowManagers == "niri")||(builtins.elem "niri" config.components.windowManagers)) { environment.systemPackages = with pkgs; [ xdg-desktop-portal-gnome wl-clipboard libsecret cage wev qalculate-qt ]; features.applications.gui.nautilus.enable = true; services.upower.enable = true; services.udisks2.enable = true; programs.niri = { enable = true; useNautilus = true; # override niri source to use https://github.com/niri-wm/niri/pull/3642 package = (pkgs.niri.overrideAttrs (finalAttrs: prevAttrs: { cargoHash = "sha256-HypBB3PL4nVFMNH2+jEK0+dG9dJ920nHi8GwRoeH/v4="; src = pkgs.fetchFromGitHub { owner = "niri-wm"; repo = "niri"; rev = "cb41d54703eef73883bb2be58e19bcf3715d777c"; sha256 = "sha256-cLzTeMcCdQJ+kHGcOposjeheFyEG/tGOA1jFAORMHjI="; }; cargoDeps = pkgs.rustPlatform.fetchCargoVendor { inherit (finalAttrs) pname src version; hash = finalAttrs.cargoHash; }; } )); }; home-manager.users.grey = lib.mkIf (config.features.nixos.home-manager.enable) ({ lib, config, ... }: { home.activation.symlinkNiriConfig = lib.hm.dag.entryAfter ["writeBoundary"] (inputs.helpers.mkSymlinkActivationScript { target = "${config.users.grey.homeDir}/.config/niri/config.kdl"; source = "${config.info.rootPath}/dotfiles/${config.info.hostName}/niri.kdl"; }); }); }; }; }