{ config, lib, pkgs, ... }: { imports = [ ]; options.me = { git.config = lib.mkOption { type = lib.types.nullOr lib.types.path; default = null; example = ./files/gitconfig_home; description = "A git config file."; }; }; config = lib.mkMerge [ { environment.systemPackages = with pkgs; [ git ]; } (lib.mkIf (config.me.git.config != null) { home-manager.users.talexander = { pkgs, ... }: { home.file.".gitconfig" = { source = config.me.git.config; }; }; }) # (lib.mkIf (config.me.graphical) { # nixpkgs.overlays = [ # (final: prev: { # git = pkgs.buildEnv { # name = prev.git.name; # paths = [ # prev.git # ]; # extraOutputsToInstall = [ # "man" # "doc" # "info" # ]; # buildInputs = [ final.makeWrapper ]; # postBuild = '' # wrapProgram $out/bin/git --prefix PATH : ${ # lib.makeBinPath [ # final.meld # ] # } # ''; # }; # }) # ]; # }) # (lib.mkIf (!config.me.graphical) { # nixpkgs.overlays = [ # (final: prev: { # git = pkgs.buildEnv { # name = prev.git.name; # paths = [ # prev.git # ]; # extraOutputsToInstall = [ # "man" # "doc" # "info" # ]; # buildInputs = [ final.makeWrapper ]; # postBuild = '' # wrapProgram $out/bin/git --prefix PATH : ${ # lib.makeBinPath [ # ] # } # ''; # }; # }) # ]; # }) ]; }