Home

dotnix @main - refs - log -
-
https://git.jolheiser.com/dotnix.git
My nix dotfiles
tree log patch
feat: zed FHS Signed-off-by: jolheiser <git@jolheiser.com>
Signature
-----BEGIN SSH SIGNATURE----- U1NIU0lHAAAAAQAAADMAAAALc3NoLWVkMjU1MTkAAAAgBTEvCQk6VqUAdN2RuH6bj1dNkY oOpbPWj+jw4ua1B1cAAAADZ2l0AAAAAAAAAAZzaGE1MTIAAABTAAAAC3NzaC1lZDI1NTE5 AAAAQIiTjMskbTHnYSNJN67A1v/2Qz+5Uyioq6krFHxxq2p3iKFiTe4ATC39KL7XDUInm5 /GOZYxqyF7ZZoGRl/Mpw0= -----END SSH SIGNATURE-----
jolheiser <git@jolheiser.com>
10 months ago
1 changed files, 109 additions(+), 20 deletions(-)
apps/gui/zed.nix
M apps/gui/zed.nixapps/gui/zed.nix
  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
diff --git a/apps/gui/zed.nix b/apps/gui/zed.nix
index d6b5ba2a0836dedf78083f6eab2ef0e79d5456a3..6f52f48c43af68996748c0f9af98e75770860ff4 100644
--- a/apps/gui/zed.nix
+++ b/apps/gui/zed.nix
@@ -1,26 +1,115 @@
 { pkgs, ... }:
+let
+  zed-fhs = pkgs.buildFHSUserEnv {
+    name = "zed";
+    targetPkgs = pkgs: [ pkgs.zed-editor ];
+    runScript = "zed";
+  };
+in
 {
-  home.packages = [ pkgs.zed-editor ];
-  xdg.configFile."zed/settings.json".text = builtins.toJSON {
-    buffer_font_family = "Monaspace Neon";
-    buffer_font_size = 16;
-    soft_wrap = "editor_width";
-    telemetry = {
-      diagnostics = false;
-      metrics = false;
-    };
-    terminal = {
-      font_family = "Monaspace Neon";
-      shell = {
-        program = "nu";
+  home.packages = [ zed-fhs ];
+  xdg.configFile = {
+    "zed/settings.json".text = builtins.toJSON {
+      buffer_font_family = "Monaspace Neon";
+      buffer_font_size = 16;
+      soft_wrap = "editor_width";
+      telemetry = {
+        diagnostics = false;
+        metrics = false;
+      };
+      terminal = {
+        font_family = "Monaspace Neon";
+        shell = {
+          program = "nu";
+        };
+      };
+      theme = "Catppuccin Mocha";
+      ui_font_size = 16;
+      vim_mode = true;
+      relative_line_numbers = true;
+      vim = {
+        use_system_clipboard = "always";
+        use_multiline_find = true;
+      };
+      tab_bar.show = false;
+      toolbar = {
+        breadcrumbs = true;
+        quick_actions = false;
+      };
+      assistant = {
+        version = "1";
+        provider.name = "anthropic";
       };
     };
-    theme = "Catppuccin Mocha";
-    ui_font_size = 16;
-    vim_mode = false;
-    assistant = {
-      version = "1";
-      provider.name = "anthropic";
-    };
+    "zed/keymap.json".text =
+      let
+        leader = "space";
+      in
+      builtins.toJSON [
+        {
+          "context" = "Dock || Terminal || Editor";
+          "bindings" = {
+            "ctrl-h" = [
+              "workspace::ActivatePaneInDirection"
+              "Left"
+            ];
+            "ctrl-l" = [
+              "workspace::ActivatePaneInDirection"
+              "Right"
+            ];
+            "ctrl-k" = [
+              "workspace::ActivatePaneInDirection"
+              "Up"
+            ];
+            "ctrl-j" = [
+              "workspace::ActivatePaneInDirection"
+              "Down"
+            ];
+          };
+        }
+        {
+          "context" = "Editor && VimControl && !VimWaiting && !menu";
+          "bindings" = {
+            "${leader} b" = "editor::ToggleGitBlame";
+            "${leader} k" = "editor::Hover";
+            "${leader} a" = "editor::ToggleCodeActions";
+            "${leader} l f" = "editor::Format";
+            "${leader} d" = "diagnostics::Deploy";
+            "${leader} f" = "file_finder::Toggle";
+            "${leader} o" = "tab_switcher::Toggle";
+            "${leader} e" = "workspace::ToggleLeftDock";
+            "${leader} /" = "workspace::NewSearch";
+            "n" = "search::SelectNextMatch";
+            "shift-n" = "search::SelectPrevMatch";
+            "${leader} t" = "workspace::NewCenterTerminal";
+            "${leader} c" = "editor::ToggleComments";
+            "${leader} w" = "workspace::Save";
+          };
+        }
+        {
+          "context" = "Editor && vim_mode == visual && !VimWaiting && !VimObject";
+          "bindings" = {
+            "shift-j" = "editor::MoveLineDown";
+            "shift-k" = "editor::MoveLineUp";
+          };
+        }
+        {
+          "context" = "Workspace";
+          "bindings" = {
+            "ctrl-z" = "workspace::ToggleZoom";
+            "cmd-k" = [
+              "projects::OpenRecent"
+              { "create_new_window" = false; }
+            ];
+            "ctrl-x" = "tab_switcher::CloseSelectedItem";
+          };
+        }
+        {
+          "context" = "Terminal";
+          "bindings" = {
+            "cmd-t" = "workspace::NewTerminal";
+          };
+        }
+      ];
   };
 }