Files
nixos/Droidnix/generated/hosts/traveldroid/host.nix
T
2026-03-27 08:42:39 +00:00

62 lines
1.6 KiB
Nix

{ lib, config, pkgs, flakeRoot, import-tree, home-manager, ... }:
let
hostname = "traveldroid";
modulesPath = "${flakeRoot}/generated/modules/${hostname}";
usersPath = "${flakeRoot}/generated/users";
hostModulesRaw = import-tree modulesPath;
globalUsersRaw = import-tree usersPath;
# Evaluate functions from import-tree
evalModule = m:
if lib.isFunction m then
m { lib = lib; pkgs = pkgs; config = config; flakeRoot = flakeRoot; home-manager = home-manager; }
else
m;
hostModules = lib.mapAttrs (_: mod: evalModule mod) hostModulesRaw;
globalUsers = lib.mapAttrs (_: mod: evalModule mod) globalUsersRaw;
allModules = hostModules ++ globalUsers;
# Flatten modules for imports
flattenModules = lib.flatten (lib.map (m: [ m ]) allModules);
# Merge all _module.args.hmUsers safely
allHmUsers = lib.foldl' (acc: m:
let
hmUsers = if (builtins.hasAttr "_module" m) &&
(builtins.hasAttr "args" m._module) &&
(builtins.hasAttr "hmUsers" m._module.args)
then m._module.args.hmUsers
else {};
in acc // hmUsers
) {} allModules;
in
{
networking.hostName = hostname;
system.stateVersion = "26.05";
# Use flattened module list in imports
imports =
flattenModules
++ [
./boot.nix
./hardware-configuration.nix
home-manager.nixosModules.home-manager
];
home-manager.useGlobalPkgs = true;
home-manager.useUserPackages = true;
home-manager.users = allHmUsers;
environment.systemPackages = [
pkgs.dconf
];
programs.dconf.enable = true;
}