{ config, pkgs, lib, user, flakeRoot, ... }: let hyprlandConfigDir = "${config.home-manager.users.${user.username}.xdg.configHome}/hypr"; # Dynamically read all files in assets/hyprland/conf/ hyprlandConfs = lib.genAttrs (builtins.attrNames (builtins.readDir "${flakeRoot}/assets/hyprland/conf")) ( name: "hypr/${name}" # Prepend "hypr/" to deploy files to ~/.config/hypr/ ); in { # NixOS: Enable Hyprland (optional, if you want to set it as the default session) programs.hyprland = { enable = true; }; # Hyprland-specific Home Manager configurations home-manager.users.${user.username} = { home.stateVersion = userConfig.stateVersion; home.username = userConfig.username; home.homeDirectory = userConfig.homeDirectory; xdg.configFile."hypr/hyprland.conf".text = hyprlandConf; wayland.windowManager.hyprland = { enable = true; }; # Dynamically deploy all Hyprland config files xdg.configFile = lib.genAttrs hyprlandConfs (path: { text = builtins.readFile "${flakeRoot}/assets/hyprland/conf/${lib.stringReplace "hypr/" "" path}"; }); }; }