{ config, lib, pkgs, self, ... }: let cfg = config.profiles.development; in { options.profiles.development = { enable = lib.mkEnableOption "A profile that enables the system to be used for developing programs"; }; config = lib.mkIf cfg.enable { programs.gh.enable = true; programs.gpg.enable = true; programs.git = { enable = true; package = pkgs.gitFull; userName = "Zack A"; userEmail = "hi@boopy.dev"; signing = { key = null; signByDefault = true; }; aliases = { graph = "log --graph --abbrev-commit --decorate --date=relative --format=format:'%C(bold yellow)%h%C(reset) - %C(green)(%ar)%C(reset)%C(bold yellow)%d%C(reset)%n %C(normal)%s%C(reset) %C(blue)- %an%C(reset)' --all"; co = "checkout"; br = "branch"; st = "status"; ps = "push"; pl = "pull"; root = "rev-parse --show-toplevel"; }; delta = { enable = true; options = { dark = true; conflictstyle = "diff3"; side-by-side = true; syntax-theme = "ansi"; }; }; extraConfig = { init.defaultBranch = "main"; pull.rebase = true; }; ignores = [ # IntelliJ files and folders ".idea/" "*.iml" # backupfiles and shadow copies done by editors "*~" "\\#*\\#" ".#*" # Elixir language server "/.elixir_ls" # MyPy Cache ".mypy_cache" # Visual Studio Code project configuration "/.vscode" # Result folder for nix builds "result" "result-*" # direnv caches ".direnv/" # emacs/python stuff "flycheck_*.py" ]; }; home.packages = [ pkgs.bfg-repo-cleaner pkgs.diffoscopeMinimal pkgs.du-dust # Fix gpg not recognizing foot terminfo pkgs.foot.terminfo pkgs.hexyl pkgs.hyperfine pkgs.jq pkgs.skim pkgs.tokei pkgs.nixpkgs-fmt pkgs.nixpkgs-review pkgs.nmap pkgs.ripgrep pkgs.rust-analyzer pkgs.tig pkgs.xh ]; services.gpg-agent = { enable = true; pinentryFlavor = "curses"; }; }; }