about summary refs log tree commit diff
path: root/home/profiles/development
diff options
context:
space:
mode:
authorsefidel <contact@sefidel.net>2023-08-21 19:28:42 +0900
committersefidel <contact@sefidel.net>2023-08-21 19:28:42 +0900
commit5f310a704312058aa4cf1ee57359fe036a60fea5 (patch)
treeb1a9de0f8ae009855e744cc9a63c9a7a97a31872 /home/profiles/development
parentbc4039ae8c86f794cece9d9ceb43b838e61cf445 (diff)
downloadnixrc-5f310a704312058aa4cf1ee57359fe036a60fea5.tar.gz
nixrc-5f310a704312058aa4cf1ee57359fe036a60fea5.zip
chore(home): base/helix -> development/helix
Diffstat (limited to 'home/profiles/development')
-rw-r--r--home/profiles/development/default.nix70
1 files changed, 70 insertions, 0 deletions
diff --git a/home/profiles/development/default.nix b/home/profiles/development/default.nix
index 3f42416..0e3c049 100644
--- a/home/profiles/development/default.nix
+++ b/home/profiles/development/default.nix
@@ -107,6 +107,76 @@ in
         IdentitiesOnly true
     '';
 
+    programs.helix = {
+      enable = true;
+      settings = {
+        theme = "rasmus-ext";
+
+        editor = {
+          statusline = {
+            left = [ "mode" "spinner" "file-name" "position" "separator" "spacer" "diagnostics" "file-modification-indicator" ];
+            center = [ "version-control" ];
+            right = [ "selections" "file-encoding" "file-line-ending" "file-type" ];
+            mode.normal = "NORMAL";
+            mode.insert = "INSERT";
+            mode.select = "SELECT";
+          };
+
+          cursor-shape = {
+            insert = "bar";
+            normal = "block";
+            select = "underline";
+          };
+
+          # lsp = {
+          #   display-inlay-hints = true;
+          # };
+
+          line-number = "relative";
+          color-modes = true;
+          bufferline = "multiple";
+        };
+
+        keys.normal = {
+          space = {
+            q = ":buffer-previous";
+            e = ":buffer-next";
+            u = ":buffer-close";
+            o = ":new";
+            ";" = "command_mode";
+            "/" = "toggle_comments";
+          };
+          A-r = [ "extend_to_line_bounds" "delete_selection" "paste_after" ];
+          A-e = [ "extend_to_line_bounds" "delete_selection" "move_line_up" "paste_before" ];
+        };
+      };
+      themes = {
+        rasmus-ext = {
+          inherits = "rasmus";
+
+          # Transparent background
+          # "ui.background" = {};
+          # Bar cursor
+          "ui.virtual" = { fg = "white"; };
+          # lightened ui.cursor.{normal,insert,select}
+          "ui.cursor.primary.normal" = { bg = "gray045"; };
+          "ui.cursor.primary.insert" = { bg = "white"; };
+          "ui.cursor.primary.select" = { bg = "gray035"; };
+          # TODO: Use proper search group after
+          # https://github.com/helix-editor/helix/pull/5702
+          # "ui.selection" = { /* fg = "accent01"; */ bg = "accent02"; };
+          # "ui.selection.primary" = { /* fg = "accent01"; */ bg = "accent02"; };
+
+          palette = {
+            gray035 = "#4b4b49";
+            gray045 = "#525250";
+            accent01 = "#f0a0c0";
+            accent02 = "#302028";
+          };
+        };
+      };
+    };
+
     home.packages = [
       pkgs.bfg-repo-cleaner
       pkgs.diffoscopeMinimal