dotfiles-nix/modules/shell.nix

72 lines
1.4 KiB
Nix

{ config, lib, pkgs, userVars, ... }:
let
cfg = config.dotfiles.shell;
in
{
options.dotfiles.shell = {
enable = lib.mkEnableOption "Shell, Git, GPG, and CLI environment";
};
config = lib.mkIf cfg.enable {
environment.systemPackages = with pkgs; [
git
wget
tree
tealdeer
gnupg
pass
p7zip
btop
helix
opencode
];
home-manager.users."${userVars.username}" = {
programs.git = {
enable = true;
settings = {
user = {
name = userVars.fullName;
email = userVars.email;
};
commit.gpgsign = true;
gpg.program = "gpg";
};
signing = {
key = userVars.gpgKey;
signByDefault = true;
};
};
services.gpg-agent = {
enable = true;
defaultCacheTtl = 1800;
enableSshSupport = true;
pinentry.package = pkgs.pinentry-curses;
};
programs.bash = {
enable = true;
shellAliases = {
ll = "ls -lha";
};
};
programs.fzf = {
enable = true;
enableBashIntegration = true;
};
programs.helix = {
enable = true;
settings = {
editor = {
line-numbers = "relative";
lsp.display-messages = true;
};
};
};
};
};
}