dotfiles/modules/home/default.nix

50 lines
1.1 KiB
Nix
Raw Normal View History

2023-03-12 03:59:11 +00:00
{
options,
config,
pkgs,
lib,
inputs,
...
}:
with lib; let
cfg = config.aa.home;
in {
imports = with inputs; [
home-manager.nixosModules.home-manager
];
options.aa.home = with types; {
file = mkOption {
type = attrs;
default = {};
description = "A set of files to be manged by home-manager's <option>home.file</option> option.";
};
configFile = mkOption {
type = attrs;
default = {};
2023-03-19 15:16:10 +00:00
description = "A set of files to be managed by home-manager's <option>xdg.configFile</option>.";
2023-03-12 03:59:11 +00:00
};
extraOptions = mkOption {
type = attrs;
default = {};
description = "Options to pass directly to home-manager.";
};
};
config = {
aa.home.extraOptions = {
home.stateVersion = config.system.stateVersion;
home.file = mkAliasDefinitions options.aa.home.file;
xdg.enable = true;
xdg.configFile = mkAliasDefinitions options.aa.home.configFile;
};
home-manager = {
useUserPackages = true;
users.${config.aa.user.name} =
mkAliasDefinitions options.aa.home.extraOptions;
};
};
}