{ inputs, self, ... }: { flake.nixosModules.niri = { config, pkgs, inputs, lib, ... }: { imports = with self.nixosModules; [ nautilus ]; environment.systemPackages = with pkgs; [ xdg-desktop-portal-gnome wl-clipboard libsecret cage wev qalculate-qt ]; 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; }; } )); }; }; flake.homeModules.niri = { lib, osConfig, ... }: { home.activation.symlinkNiriConfig = lib.hm.dag.entryAfter ["writeBoundary"] '' #!/bin/bash if [ -f /home/grey/.config/niri/config.kdl ]; then rm /home/grey/.config/niri/config.kdl fi ln -s ${osConfig.info.rootPath}/dotfiles/${osConfig.networking.hostName}/niri.kdl /home/grey/.config/niri/config.kdl ''; }; }