pantheon/modules/hm/default.nix

66 lines
1.5 KiB
Nix

{
inputs,
config,
specialArgs,
lib,
...
}:
let
moduleName = "hmModules";
cfg = config."${moduleName}";
username = config.nixosModules.mainUser;
in
{
imports = [
inputs.home-manager.nixosModules.home-manager
./hardware.nix
./programs/default.nix
./programs/editor.nix
./programs/de.nix
];
options = {
"${moduleName}" = {
enable = lib.mkEnableOption "Enable ${moduleName}.";
mainApps = {
terminal = lib.mkOption {
type = lib.types.str;
default = "kitty";
example = "kitty";
description = "What terminal is the default.";
};
browser = lib.mkOption {
type = lib.types.str;
default = "firefox";
example = "firefox";
description = "What browser is the default.";
};
editor = lib.mkOption {
type = lib.types.str;
default = "nvf";
example = "nvf";
description = "What editor is the default.";
};
launcher = lib.mkOption {
type = lib.types.str;
default = "fuzzel";
example = "fuzzel";
description = "What launcher is the default.";
};
};
};
};
config = lib.mkIf cfg.enable {
home-manager = {
useGlobalPkgs = true;
useUserPackages = true;
extraSpecialArgs = specialArgs;
users."${username}".home = {
username = username;
homeDirectory = "/home/${username}";
stateVersion = "25.05";
};
};
};
}