feat(helix): Init

Helix is "a post-modern modal text editor". It's somewhat like neovim,
but has a way of editing text that's more like Kakoune. I'm currently
trying it out as my main editor.

Change-Id: I675dfd5d52016940da41460922e987a2c73a1243
diff --git a/modules/home/editor/helix/default.nix b/modules/home/editor/helix/default.nix
new file mode 100644
index 0000000..091dff2
--- /dev/null
+++ b/modules/home/editor/helix/default.nix
@@ -0,0 +1,19 @@
+{ config, lib, ... }:
+{
+  options.chimera.editor.helix = {
+    enable = lib.mkEnableOption "Enable helix editor";
+    defaultEditor = lib.mkOption {
+      type = lib.types.bool;
+      description = "Use helix as the default editor";
+      default = true;
+    };
+  };
+
+  config = lib.mkIf config.chimera.editor.helix.enable {
+    programs.helix = {
+      enable = true;
+      defaultEditor = config.chimera.editor.helix.defaultEditor;
+      settings.theme = lib.mkIf config.chimera.theme.catppuccin.enable "catppuccin_${lib.strings.toLower config.chimera.theme.catppuccin.style}";
+    };
+  };
+}
diff --git a/modules/home/users/minion/default.nix b/modules/home/users/minion/default.nix
index 3e7889c..1a62134 100644
--- a/modules/home/users/minion/default.nix
+++ b/modules/home/users/minion/default.nix
@@ -162,6 +162,11 @@
       };
 
       neovim = {
+        enable = false; # Temporary, until I've unlearned the muscle memory of typing "nvim" to everything...
+        defaultEditor = false;
+      };
+
+      helix = {
         enable = true;
         defaultEditor = true;
       };
@@ -187,5 +192,14 @@
       map kitty_mod+enter launch --cwd=current --type=window
       map kitty_mod+t     launch --cwd=current --type=tab
     '';
+
+    programs.helix.extraPackages = [
+      pkgs.clang-tools
+      pkgs.typescript-language-server
+      pkgs.python3Packages.python-lsp-server
+      pkgs.nil
+      pkgs.vscode-langservers-extracted
+      pkgs.marksman
+    ];
   });
 }