diff --git a/nixos/default.nix b/nixos/default.nix index b0d14c8..24375aa 100755 --- a/nixos/default.nix +++ b/nixos/default.nix @@ -1,34 +1,60 @@ let modulesPath = ./modules; - moduleImport = path: nameTransform: - builtins.listToAttrs ( - map - (name: { - name = nameTransform name; - value = import (path + "/${name}"); - }) - ( - builtins.filter - (name: (builtins.readDir path).${name} == "regular" && builtins.match ".*\\.nix$" name != null) - (builtins.attrNames (builtins.readDir path)) - ) - ); + modules = - moduleImport modulesPath (name: builtins.replaceStrings [".nix"] [""] name) - // (path: - builtins.listToAttrs ( - map - (name: { - name = name; - value = import (path + "/${name}"); - }) - ( - builtins.filter - (name: (builtins.readDir path).${name} == "directory") - (builtins.attrNames (builtins.readDir path)) - ) - )) - modulesPath; + builtins.foldl' ( + emptySet: importedModules: + emptySet // importedModules + ) {} (map + (name: { + "${name}" = import (modulesPath + "/${name}"); + }) + [ + "services" + ]) + // builtins.foldl' ( + emptySet: importedModules: + emptySet // importedModules + ) {} (map + (name: { + "${name}" = import (modulesPath + "/${name}.nix"); + }) + [ + "accounts" + "android" + "audio" + "bluetooth" + "corectrl" + "dconf" + "disks" + "doas" + "environment" + "firejail" + "flatpak" + "fonts" + "gnome" + "greetd" + "gvfs" + "home-manager" + "locale" + "network" + "nix" + "nur" + "ollama" + "plasma" + "printing" + "regreet" + "rsyncd" + "sddm" + "sops" + "ssh" + "steam" + "syncthing" + "sysstat" + "system" + "virtualization" + "xserver" + ]); in { flake.nixosModules = { personal = {