sneeuwvlok/modules/home/shell/default.nix
2025-07-30 21:38:15 +02:00

45 lines
1.1 KiB
Nix

{ config, lib, pkgs, namespace, ... }:
let
inherit (lib) attrValues mkIf mkMerge mkOption mkEnableOption mkDefault;
inherit (lib.types) nullOr enum;
cfg = config.${namespace}.shell;
in
{
options.${namespace}.shell = {
corePkgs.enable = mkEnableOption "core shell packages";
};
config = mkMerge [
(mkIf (cfg.corePkgs.enable) {
${namespace}.shell.toolset = mkDefault {
bat.enable = true;
btop.enable = true;
eza.enable = true;
fzf.enable = true;
git.enable = true;
starship.enable = true;
tmux.enable = true;
yazi.enable = true;
zoxide.enable = true;
};
})
({
home.packages = with pkgs; [ any-nix-shell pwgen yt-dlp ripdrag fd (ripgrep.override {withPCRE2 = true;}) ];
programs = {
direnv = {
enable = true;
config.global = {
load_dotenv = true;
strict_env = true;
hide_env_diff = true;
};
nix-direnv.enable = true;
config.whitelist.prefix = ["/home"];
};
};
})
];
}