dotfiles/nixos/default.nix

53 lines
1.5 KiB
Nix
Raw Normal View History

2024-10-06 15:25:05 -05:00
let
modulesPath = ./modules;
2024-11-23 20:45:46 -06:00
moduleImport = path: nameTransform:
2025-01-16 16:14:09 -06:00
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;
2024-11-23 20:45:46 -06:00
value = import (path + "/${name}");
2025-01-16 16:14:09 -06:00
}) (builtins.filter (name: (builtins.readDir path).${name} == "directory")
(builtins.attrNames (builtins.readDir path))))) modulesPath;
2024-10-06 15:25:05 -05:00
in {
flake.nixosModules = {
personal = {
imports = builtins.attrValues {
2025-01-16 16:14:09 -06:00
inherit (modules)
android audio bluetooth corectrl dconf disks firejail flatpak fonts
printing steam sysstat virtualization;
};
};
desktop = {
imports = builtins.attrValues {
2025-01-16 16:14:09 -06:00
inherit (modules)
syncthing ollama
2025-01-10 17:35:00 -06:00
# plasma
2025-01-08 01:05:45 -06:00
# sddm
2025-01-16 16:14:09 -06:00
;
2024-12-24 20:09:31 -06:00
};
};
2025-01-08 01:05:45 -06:00
hyprland = {
2025-01-16 16:14:09 -06:00
imports = builtins.attrValues { inherit (modules) hyprland; };
};
2025-01-16 16:14:09 -06:00
server = { imports = builtins.attrValues { inherit (modules) services; }; };
shared = {
imports = builtins.attrValues {
2025-01-16 16:14:09 -06:00
inherit (modules)
accounts doas environment gvfs home-manager locale nh nix rsyncd sops
ssh system xserver;
};
2024-10-06 15:25:05 -05:00
};
};
}