Enable direnv under the tools configuration with a commented-out git tool. Disable the ollama service, changing its enable flag from true to false.
		
			
				
	
	
		
			73 lines
		
	
	
	
		
			1.9 KiB
		
	
	
	
		
			Nix
		
	
	
	
	
	
			
		
		
	
	
			73 lines
		
	
	
	
		
			1.9 KiB
		
	
	
	
		
			Nix
		
	
	
	
	
	
{
 | 
						|
  options,
 | 
						|
  config,
 | 
						|
  pkgs,
 | 
						|
  lib,
 | 
						|
  ...
 | 
						|
}:
 | 
						|
 | 
						|
with lib;
 | 
						|
with lib.metacfg;
 | 
						|
let
 | 
						|
  cfg = config.metacfg.tools.git;
 | 
						|
  gpg = config.metacfg.security.gpg;
 | 
						|
  user = config.metacfg.user;
 | 
						|
in
 | 
						|
{
 | 
						|
  options.metacfg.tools.git = with types; {
 | 
						|
    enable = mkBoolOpt false "Whether or not to install and configure git.";
 | 
						|
    userName = mkOpt types.str user.fullName "The name to configure git with.";
 | 
						|
    userEmail = mkOpt types.str user.email "The email to configure git with.";
 | 
						|
    signingKey = mkOpt types.str "9762169A1B35EA68" "The key ID to sign commits with.";
 | 
						|
  };
 | 
						|
 | 
						|
  config = mkIf cfg.enable {
 | 
						|
    environment.systemPackages = with pkgs; [ git ];
 | 
						|
 | 
						|
    metacfg.home.extraOptions = {
 | 
						|
      programs.git = {
 | 
						|
        enable = true;
 | 
						|
        inherit (cfg) userName userEmail;
 | 
						|
        lfs = enabled;
 | 
						|
        signing = {
 | 
						|
          key = cfg.signingKey;
 | 
						|
          signByDefault = mkIf gpg.enable true;
 | 
						|
        };
 | 
						|
        extraConfig = {
 | 
						|
          init = {
 | 
						|
            defaultBranch = "main";
 | 
						|
          };
 | 
						|
          pull = {
 | 
						|
            rebase = true;
 | 
						|
          };
 | 
						|
          push = {
 | 
						|
            autoSetupRemote = true;
 | 
						|
          };
 | 
						|
          core = {
 | 
						|
            whitespace = "trailing-space,space-before-tab";
 | 
						|
          };
 | 
						|
          "credential \"https://github.com\"" = {
 | 
						|
            helper = "!gh auth git-credential";
 | 
						|
          };
 | 
						|
          alias = {
 | 
						|
            co = "checkout";
 | 
						|
            ci = "commit --signoff";
 | 
						|
          };
 | 
						|
          pull.ff = "only";
 | 
						|
          core.pager = "${pkgs.delta}/bin/delta";
 | 
						|
          delta = {
 | 
						|
            features = "decorations";
 | 
						|
            syntax-theme = "DarkNeon";
 | 
						|
            light = "false";
 | 
						|
            navigate = "true";
 | 
						|
          };
 | 
						|
          interactive.diffFilter = "${pkgs.delta}/bin/delta --color-only";
 | 
						|
          merge.conflictStyle = "diff3";
 | 
						|
          diff.colorMoved = "default";
 | 
						|
          http.sslCAinfo = "/etc/ssl/certs/ca-certificates.crt";
 | 
						|
          submodule.recurse = true;
 | 
						|
        };
 | 
						|
      };
 | 
						|
    };
 | 
						|
  };
 | 
						|
}
 |