git.nix 2.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110
  1. { pkgs, ... }:
  2. let
  3. aesir = {
  4. core.sshCommand = "ssh -i ~/.ssh/id_aesirdev";
  5. user = {
  6. email = "[email protected]";
  7. name = "Æsir Dev";
  8. signingKey = "58145313C9636027";
  9. };
  10. commit.gpgSign = true;
  11. };
  12. control.user = {
  13. email = "[email protected]";
  14. name = "Zander Hawke";
  15. signingKey = "ED5EAAA8E895B23A";
  16. };
  17. in
  18. {
  19. home.packages = with pkgs; [
  20. gh
  21. git-crypt
  22. codeberg-cli
  23. ];
  24. programs.git = {
  25. enable = true;
  26. includes = [
  27. {
  28. condition = "gitdir/i:~/workspace/aesir/**";
  29. contents = aesir;
  30. }
  31. {
  32. condition = "gitdir/i:~/workspace/ravn/**";
  33. contents = aesir;
  34. }
  35. {
  36. condition = "gitdir/i:~/workspace/control/**";
  37. contents = control;
  38. }
  39. ];
  40. signing = {
  41. key = "ED5EAAA8E895B23A";
  42. signByDefault = true;
  43. signer = "${pkgs.gnupg}/bin/gpg";
  44. };
  45. settings = {
  46. user = {
  47. name = "Thomas Stachl";
  48. email = "[email protected]";
  49. };
  50. color = {
  51. grep = "always";
  52. pager = "true";
  53. showbranch = "auto";
  54. ui = "always";
  55. interactive = {
  56. error = "red bold";
  57. };
  58. branch = {
  59. current = "yellow reverse";
  60. local = "yellow";
  61. remote = "green";
  62. };
  63. diff = {
  64. meta = "yellow";
  65. frag = "magenta";
  66. old = "red";
  67. new = "green";
  68. whitespace = "white reverse";
  69. };
  70. status = {
  71. added = "yellow";
  72. changed = "green";
  73. untracked = "cyan";
  74. branch = "magenta";
  75. };
  76. };
  77. init.defaultBranch = "master";
  78. url = {
  79. "[email protected]:" = {
  80. insteadOf = "github:";
  81. };
  82. "[email protected]:" = {
  83. insteadOf = "codeberg:";
  84. };
  85. };
  86. branch = {
  87. master = {
  88. remote = "origin";
  89. merge = "refs/head/master";
  90. };
  91. };
  92. };
  93. };
  94. }