zaphyra's git: nixfiles

zaphyra's nixfiles

1 
2 
3 
4 
5 
6 
7 
8 
9 
10 
11 
12 
13 
14 
15 
16 
17 
18 
19 
20 
21 
22 
23 
24 
25 
26 
27 
28 
29 
30 
31 
32 
33 
34 
35 
36 
37 
38 
39 
40 
41 
42 
43 
44 
45 
46 
47 
48 
49 
50 
51 
52 
53 
54 
55 
56 
57 
58 
59 
60 
61 
62 
63 
64 
65 
66 
{
  config,
  systemConfig,
  lib,
  pkgs,
  ...
}:

{

  options.zaphyra.programs.git.enable = lib.mkOption {
    type = lib.types.bool;
    default = systemConfig.modules.presets.graphical.enable;
  };

  config = lib.mkIf config.zaphyra.programs.git.enable {
    home.packages = [ pkgs.gitui ];
    home.shellAliases = {
      reinitgit = "rm -rf .git && git init && git add -A && git commit -m 'init'";
    };

    programs.lazygit = {
      enable = true;
      settings = {
        disableStartupPopups = true;
        gui.nerdFontsVersion = "3";
        git.overrideGpg = true;
        os.editPreset = "micro";
      };
    };

    programs.difftastic = {
      enable = true;
      git.enable = true;
      git.diffToolMode = true;
    };

    programs.git = {
      enable = true;

      package = pkgs.gitFull;

      ignores = [
        ".DS_Store"
        "*.swp"
      ];

      settings = {
        user.name = "Katja Ramona Sophie Kwast (zaphyra)";
        user.email = "git@zaphyra.eu";

        aliases = {
          log-gpg = "log --show-signature";
          pfusch = "push -f";
        };

        extraConfig = {
          features.manyFiles = true;
          pull.rebase = false;
          init.defaultBranch = "main";
        };
      };
    };
  };

}