{ inputs, lib, config, pkgs, system, dots, ... }: { imports = [ ./email ./emacs ./git.nix ./gui.nix ./latex.nix ./ssh ./shell ./neovim ]; config = { home.packages = with pkgs; [ fd fx jq sd ugrep unzip fastfetch # gpclient openconnect fd ripgrep yazi tree gnumake texinfo devenv fontconfig pandoc duckdb (pkgs.python311.withPackages (ppkgs: [ ppkgs.numpy ])) ] ++ lib.optionals pkgs.stdenv.isDarwin [ coreutils ] ++ (lib.attrValues config.custom.shell.packages); services = { gpg-agent = { enable = true; # enableSshSupport = true; }; }; fonts.fontconfig.enable = true; programs = { nh = { enable = true; # package = pkgs.custom.nh; clean.enable = true; clean.extraArgs = "--keep-since 4d --keep 3"; flake = dots; }; home-manager.enable = true; bash = { enable = true; enableVteIntegration = true; }; direnv = { enable = true; enableBashIntegration = config.programs.bash.enable; enableFishIntegration = config.programs.fish.enable; enableZshIntegration = config.programs.zsh.enable; }; zsh = { enable = true; enableVteIntegration = true; }; gpg = { enable = true; }; bat = { enable = true; extraPackages = [ (pkgs.symlinkJoin { name = "batman"; paths = [ pkgs.bat-extras.batman ]; postBuild = '' mkdir -p $out/share/bash-completion/completions echo 'complete -F _comp_cmd_man batman' > $out/share/bash-completion/completions/batman mkdir -p $out/share/fish/vendor_completions.d echo 'complete batman --wraps man' > $out/share/fish/vendor_completions.d/batman.fish mkdir -p $out/share/zsh/site-functions cat << EOF > $out/share/zsh/site-functions/_batman #compdef batman _man "$@" EOF ''; meta.mainProgram = "batman"; }) ]; }; fzf = { enable = true; enableBashIntegration = config.programs.bash.enable; enableFishIntegration = config.programs.fish.enable; enableZshIntegration = config.programs.zsh.enable; }; }; systemd.user.sessionVariables = config.home.sessionVariables; # https://nixos.wiki/wiki/FAQ/When_do_I_update_stateVersion home.stateVersion = "25.05"; }; }