{ config, lib, ... }: let cfg = config.hm.conf.git; in { options.hm.conf.git.enable = lib.mkEnableOption "enables git vcs"; config = lib.mkIf cfg.enable { programs.git = { enable = true; lfs.enable = true; signing = { format = "ssh"; key = "~/.ssh/main_id_ed25519.pub"; signByDefault = true; }; settings = { user = { name = "adikro"; email = "adikro@disroot.org"; }; gpg.format = "openpgp"; init.defaultBranch = "main"; push.autoSetupRemote = true; pull.rebase = true; "url \"git@codeberg.org:\"".insteadOf = "https://codeberg.org/"; }; ignores = [ "*.swp" "result" ".direnv/" "secrets/*.tmp" ]; extraConfig = { gpg.ssh.program = "ssh-keygen"; }; }; }; }