Add basic scripting utilities

- Install ripgrep
- Setup ripgrep aliases
- Install programs such as jq or lnav
- Use zoxide for getting around instead of cd
diff --git a/modules/ripgrep.nix b/modules/ripgrep.nix
new file mode 100644
index 0000000..8acb597
--- /dev/null
+++ b/modules/ripgrep.nix
@@ -0,0 +1,6 @@
+{pkgs, ...}: {
+  home.home = {
+    packages = [pkgs.ripgrep];
+    shellAliases.rg = "${pkgs.ripgrep}/bin/rg --smart-case --pretty --multiline-dotall";
+  };
+}
diff --git a/modules/utilities.nix b/modules/utilities.nix
new file mode 100644
index 0000000..48a09aa
--- /dev/null
+++ b/modules/utilities.nix
@@ -0,0 +1,8 @@
+{pkgs, ...}: {
+  # Basic shell scripting utilities, they don't deserve their own file but I use
+  # them
+  config.environment.systemPackages = with pkgs; [
+    jq
+    lnav
+  ];
+}
diff --git a/modules/zoxide.nix b/modules/zoxide.nix
new file mode 100644
index 0000000..8de356f
--- /dev/null
+++ b/modules/zoxide.nix
@@ -0,0 +1,8 @@
+{username, ...}: {
+  home.programs.zoxide = {
+    enable = true;
+    options = ["--cmd=cd"];
+  };
+  config.environment.persistence."/nix/persist".users.${username}.directories = [".local/share/zoxide"];
+  # Zoxide overwrites its db file, so we can't just use .files here
+}