about summary refs log tree commit diff
path: root/home/modules/profiles/development
diff options
context:
space:
mode:
authorsefidel <contact@sefidel.net>2021-12-28 01:11:25 +0900
committersefidel <contact@sefidel.net>2021-12-28 01:12:48 +0900
commit56992b8c945d497a623fe693847c91235be1ae02 (patch)
tree102ff8c8872d7e14ce3e3dba69bf16685374504e /home/modules/profiles/development
downloadnixrc-56992b8c945d497a623fe693847c91235be1ae02.tar.gz
nixrc-56992b8c945d497a623fe693847c91235be1ae02.zip
initial commit
Diffstat (limited to 'home/modules/profiles/development')
-rw-r--r--home/modules/profiles/development/default.nix78
1 files changed, 78 insertions, 0 deletions
diff --git a/home/modules/profiles/development/default.nix b/home/modules/profiles/development/default.nix
new file mode 100644
index 0000000..d85e796
--- /dev/null
+++ b/home/modules/profiles/development/default.nix
@@ -0,0 +1,78 @@
+{ config, lib, pkgs, ... }:
+
+let
+  cfg = config.profiles.development;
+in
+  {
+    options.profiles.development = {
+      enable = lib.mkEnableOption
+        "A profile that enables the system to be used for developing programs";
+      };
+
+      config = lib.mkIf cfg.enable {
+        programs.gh.enable = true;
+        programs.git = {
+          enable = true;
+          package = pkgs.gitFull;
+
+          userName = "Zack A";
+          userEmail = "hi@boopy.dev";
+
+          signing = {
+            key = null;
+            signByDefault = true;
+          };
+
+          aliases = {
+            graph =
+              "log --graph --abbrev-commit --decorate --date=relative --format=format:'%C(bold cyan)%h%C(reset) - %C(green)(%ar)%C(reset)%C(bold yellow)%d%C(reset)%n %C(white)%s%C(reset) %C(dim white)- %an%C(reset)' --all";
+            co = "checkout";
+            br = "branch";
+            st = "status";
+            ps = "push";
+            pl = "pull";
+            root = "rev-parse --show-toplevel";
+          };
+
+          extraConfig = {
+            init.defaultBranch = "main";
+            pull.rebase = true;
+          };
+
+          ignores = [
+            # IntelliJ files and folders
+            ".idea/"
+            "*.iml"
+            # backupfiles and shadow copies done by editors
+            "*~"
+            "\\#*\\#"
+            ".#*"
+            # Elixir language server
+            "/.elixir_ls"
+            # MyPy Cache
+            ".mypy_cache"
+            # Visual Studio Code project configuration
+            "/.vscode"
+            # Result folder for nix builds
+            "result"
+            "result-*"
+            # direnv caches
+            ".direnv/"
+            # emacs/python stuff
+            "flycheck_*.py"
+          ];
+        };
+
+        home.packages = [ pkgs.ripgrep pkgs.rust-analyzer pkgs.gnupg ];
+
+        services.gpg-agent = {
+          enable = true;
+          enableExtraSocket = true;
+          defaultCacheTtl = 34560000;
+          defaultCacheTtlSsh = 34560000;
+          maxCacheTtl = 34560000;
+          maxCacheTtlSsh = 34560000;
+        };
+      };
+  }
+