{ config, lib, ... }: let cfg = config.xyno.git; in { options.xyno.git.enable = lib.mkEnableOption "xynos git config"; config = lib.mkIf cfg.enable { programs.git = { enable = true; difftastic.enable = true; lfs.enable = true; # Default configs extraConfig = { commit.gpgSign = true; gpg.format = "ssh"; user.name = "Lucy Hochkamp"; user.email = "git@xyno.systems"; user.signingKey = # TODO: don't hardcode a computer "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAID/oMAi5jyQsNohfhcSH2ItisTpBGB0WtYTVxJYKKqhj"; # theseus # Set default "git pull" behaviour so it doesn't try to default to # either "git fetch; git merge" (default) or "git fetch; git rebase". pull.ff = "only"; }; }; }; }