main
 1{lib, ...}: {
 2  flake.modules.homeManager.dev-zed = {config, ...}: {
 3    programs.zed-editor = {
 4      userSettings.helix_mode = true;
 5
 6      userKeymaps =
 7        [
 8          {
 9            context = "((vim_mode == helix_normal || vim_mode == helix_select) && !menu)";
10            bindings = {
11              "space e" = "project_panel::ToggleFocus";
12            };
13          }
14          {
15            context = "ProjectPanel && not_editing";
16            bindings = {
17              # I prefered yazi's default keybinding
18              "a" = "project_panel::NewFile";
19              "d" = "project_panel::Delete";
20              "y" = "project_panel::Copy";
21              "x" = "project_panel::Cut";
22              "p" = "project_panel::Paste";
23              "r" = "project_panel::Rename";
24            };
25          }
26        ]
27        ++ (lib.optional (config.programs.jjui.enable) {
28          context = "Workspace";
29          bindings = {
30            "ctrl-shift-g" = [
31              "task::Spawn"
32              {
33                task_name = "JJUI";
34                reveal_target = "center";
35              }
36            ];
37          };
38        });
39    };
40  };
41}