{ config, pkgs, lib, user, flakeRoot, ... }: let hyprlandConfigDir = "${config.home-manager.users.${user.username}.xdg.configHome}/hypr"; files = builtins.attrNames (builtins.readDir "${flakeRoot}/assets/hyprland/conf/hypr"); hyprlandConfs = lib.genAttrs files (name: { text = builtins.readFile "${flakeRoot}/assets/hyprland/conf/hypr/${name}"; }); in { # NixOS: Enable Hyprland programs.hyprland = { enable = true; }; # Home Manager: Hyprland-specific configurations home-manager.users.${user.username} = { home.stateVersion = config.home-manager.users.${user.username}.stateVersion or "25.11"; home.username = user.username; home.homeDirectory = config.home-manager.users.${user.username}.homeDirectory or "/home/${user.username}"; wayland.windowManager.hyprland = { enable = true; }; # Create symlinks in ~/.config/hypr to all the files in assets/hyprland/conf/hypr xdg.configFile = { "hypr/.keep" = { text = ""; }; } // hyprlandConfs; # Debug statements xdg.configFile."hypr/hyprland-debug.txt" = { text = '' hyprlandConfigDir: ${hyprlandConfigDir} flakeRoot: ${flakeRoot} files: ${toString files} ''; }; }; }