dotfiles-nix/modules/shell/default.nix

71 lines
1.5 KiB
Nix

{ config, lib, pkgs, userVars, ... }:
let
cfg = config.dotfiles.shell;
shellDir = ./.;
otherShellFiles = builtins.filter
(name: name != "default.nix" && lib.strings.hasSuffix ".nix" name)
(builtins.attrNames (builtins.readDir shellDir));
importedModules = map (file: shellDir + "/${file}") otherShellFiles;
in
{
imports = importedModules;
options.dotfiles.shell = {
enable = lib.mkEnableOption "Shell, Git, GPG, and CLI environment";
};
config = lib.mkIf cfg.enable {
environment.systemPackages = with pkgs; [
git
wget
tealdeer
gnupg
pass
p7zip
btop
helix
opencode
fd
ripgrep
];
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-qt;
};
programs.helix = {
enable = true;
defaultEditor = true;
settings = {
theme = "ayu_dark";
editor = {
line-number = "relative";
lsp.display-messages = true;
};
};
};
};
};
}