dotfiles/nixos/default.nix

114 lines
2.1 KiB
Nix
Raw Normal View History

2024-10-06 15:25:05 -05:00
let
modulesPath = ./modules;
2025-01-18 03:50:54 -06:00
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;
in
{
flake.nixosModules = {
personal = {
imports = builtins.attrValues {
2025-01-16 16:14:09 -06:00
inherit (modules)
2025-01-18 03:50:54 -06:00
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)
2025-01-18 03:50:54 -06:00
syncthing
ollama
;
};
};
fallaryn = {
imports = builtins.attrValues {
inherit (modules)
tablet
plasma
sddm
2025-01-18 03:50:54 -06:00
;
2024-12-24 20:09:31 -06:00
};
};
2025-01-08 01:05:45 -06:00
hyprland = {
2025-01-19 02:31:05 -06:00
imports = builtins.attrValues {
inherit (modules)
hyprland
;
};
};
2025-01-18 03:50:54 -06:00
server = {
2025-01-19 02:31:05 -06:00
imports = builtins.attrValues {
inherit (modules)
services
;
};
2025-01-18 03:50:54 -06:00
};
shared = {
imports = builtins.attrValues {
2025-01-16 16:14:09 -06:00
inherit (modules)
2025-01-18 03:50:54 -06:00
accounts
doas
environment
gvfs
home-manager
locale
nh
nix
rsyncd
sops
ssh
system
xserver
;
};
2024-10-06 15:25:05 -05:00
};
};
}