dotfiles/modules/home/home/default.nix

61 lines
1.3 KiB
Nix

{
config,
lib,
osConfig ? {},
namespace,
...
}: {
options.${namespace} = {
isHeadless = lib.mkOption {
type = lib.types.bool;
default = true;
description = "If true, graphical applications (e.g. firefox, sway, etc) won't be installed.";
};
installDefaults = lib.mkOption {
type = lib.types.bool;
default = true;
description = "If true, a default set of packages will be installed.";
};
};
config = lib.mkMerge [
(
lib.mkIf (!config.${namespace}.isHeadless) {
${namespace} = {
programs.firefox.enable = true;
windowManagers.sway.enable = true;
};
}
)
(lib.mkIf (config.${namespace}.installDefaults) {
${namespace} = {
apps = {
bat.enable = true;
btop.enable = true;
tmux.enable = true;
};
programs = {
fzf.enable = true;
gpg.enable = true;
kitty.enable = true;
neovim.enable = true;
yazi.enable = true;
zoxide.enable = true;
};
tools = {
direnv.enable = true;
eza.enable = true;
git.enable = true;
zsh.enable = true;
};
};
})
{
home.stateVersion = lib.mkDefault (osConfig.system.stateVersion or "24.05");
}
];
}