From a42505b7b129d48c08de2e5428abca003ec7ad01 Mon Sep 17 00:00:00 2001
From: notohh <github@notohh.dev>
Date: Thu, 6 Feb 2025 21:03:17 -0500
Subject: [PATCH] editors: add zed

---
 home/programs/editors/zed/default.nix      | 22 +++++++++
 home/programs/editors/zed/userkeymap.nix   | 15 ++++++
 home/programs/editors/zed/usersettings.nix | 54 ++++++++++++++++++++++
 3 files changed, 91 insertions(+)
 create mode 100644 home/programs/editors/zed/default.nix
 create mode 100644 home/programs/editors/zed/userkeymap.nix
 create mode 100644 home/programs/editors/zed/usersettings.nix

diff --git a/home/programs/editors/zed/default.nix b/home/programs/editors/zed/default.nix
new file mode 100644
index 0000000..2080f30
--- /dev/null
+++ b/home/programs/editors/zed/default.nix
@@ -0,0 +1,22 @@
+{pkgs, ...}: {
+  imports = [./usersettings.nix ./userkeymap.nix];
+  programs.zed-editor = {
+    enable = false;
+    package = pkgs.zed-editor.fhsWithPackages (pkgs: [pkgs.zlib pkgs.openssl]);
+    extensions = [
+      "html"
+      "catppuccin"
+      "toml"
+      "git-firefly"
+      "latex"
+      "svelte"
+      "scss"
+      "nix"
+      "env"
+      "discord-presence"
+      "wakatime"
+      "nu"
+      "gosum"
+    ];
+  };
+}
diff --git a/home/programs/editors/zed/userkeymap.nix b/home/programs/editors/zed/userkeymap.nix
new file mode 100644
index 0000000..3a75e29
--- /dev/null
+++ b/home/programs/editors/zed/userkeymap.nix
@@ -0,0 +1,15 @@
+_: {
+  programs.zed-editor.userKeymaps = [
+    {
+      context = "Workspace";
+      bindings = {
+        ctrl-shift-t = "workspace::NewTerminal";
+      };
+    }
+    {
+      context = "Editor";
+      bindings = {
+      };
+    }
+  ];
+}
diff --git a/home/programs/editors/zed/usersettings.nix b/home/programs/editors/zed/usersettings.nix
new file mode 100644
index 0000000..eb38820
--- /dev/null
+++ b/home/programs/editors/zed/usersettings.nix
@@ -0,0 +1,54 @@
+_: {
+  programs.zed-editor.userSettings = {
+    ui_font_size = 16;
+    ui_font_family = "JetBrainsMono Nerd Font";
+    buffer_font_size = 16;
+    buffer_font_family = "JetBrainsMono Nerd Font";
+    relative_line_numbers = true;
+    hour_format = "hour24";
+    shell = "nu";
+    tabs = {
+      file_icons = true;
+      git_status = true;
+    };
+    indent_guides = {
+      enable = true;
+    };
+    inlay_hints = {
+      enable = true;
+    };
+    telemetry = {
+      diagnostics = false;
+      metrics = false;
+    };
+    assistant = {
+      default_model = {
+        provider = "copilot_chat";
+        model = "gpt-4o";
+      };
+      version = "2";
+    };
+    languages = {
+      Nix = {
+        language_servers = ["nil"];
+        formatter = {
+          external = {
+            command = "alejandra";
+            arguments = ["--quiet" "--"];
+          };
+        };
+      };
+      lsp = {
+        discord_presence = {
+          initialization_options = {
+            git_integration = false;
+            rules = {
+              mode = "blacklist";
+              paths = ["/home/notoh/dev/ec" "/home/notoh/dev/yamilol"];
+            };
+          };
+        };
+      };
+    };
+  };
+}