all repos — nixfiles @ a71323da9caaca0c8428e474c75230e498fd7cdc

System and user configuration, managed by nix and home-manager

user/settings/zed.nix (view raw)

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
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
{
  config,
  pkgs,
  lib,
  ...
}:
{
  programs.zed-editor = {
    enable = true;
    installRemoteServer = true;
    userSettings = {
      base_keymap = "Emacs";
      vim_mode = true;
      tab_size = 2;
      tab_bar = {
        show = true;
        show_nav_history_buttons = false;
        show_tab_bar_buttons = false;
      };
      toolbar = {
        breadcrumbs = false;
        quick_actions = false;
        selections_menu = false;
      };
      theme = {
        mode = "system";
        light = "One Light";
        dark = "One Dark";
      };
      cursor_blink = false;
      current_line_highlight = "gutter";
      indent_guides.enabled = false;
      git = {
        git_gutter = "hide";
        inline_blame.enabled = false;
      };
      gutter = {
        runnables = false;
        breakpoints = false;
        folds = false;
      };
      pane_split_direction_vertical = "right";
      use_smartcase_search = true;
      seed_search_query_from_cursor = "always";
      inlay_hints = {
        enabled = true;
        show_type_hints = true;
        show_parameter_hints = false;
      };
      file_types = {
        "Shell Script" = [ "envrc" ];
      };
      project_panel = {
        entry_spacing = "standard";
        file_icons = false;
        folder_icons = false;
        indent_size = 16;
      };
      preview_tabs.enabled = false;
      collaboration_panel.button = false;
      vim = {
        toggle_relative_line_numbers = true;
      };
    };

    userKeymaps = [
      {
        context = "VimControl && !menu";
        bindings = {
          "alt-x" = "command_palette::Toggle";
          "," = null;
          ", f f" = "file_finder::Toggle";
          ", b b" = "file_finder::Toggle";
          ", f s" = "workspace::Save";
          ", p" = "projects::OpenRecent";
          ", r" = "editor::Rename";
          ", w d" = "editor::GoToDefinitionSplit";
          ", w g d" = "editor::GoToDefinitionSplit";
          ", w shift-d" = "editor::GoToTypeDefinitionSplit";
          ", w g shift-d" = "editor::GoToTypeDefinitionSplit";
          ", w space" = "editor::OpenExcerptsSplit";
          ", w g space" = "editor::OpenExcerptsSplit";
          ", b x" = "pane::CloseActiveItem";
          ", q" = "pane::CloseActiveItem";
        };
      }
      {
        context = "ProjectPanel || CollabPanel || OutlinePanel || ChatPanel || VimControl || EmptyPane || SharedScreen || MarkdownPreview || KeyContextView";
        bindings = {
          ", w" = null;
          ", w left" = "workspace::ActivatePaneLeft";
          ", w right" = "workspace::ActivatePaneRight";
          ", w up" = "workspace::ActivatePaneUp";
          ", w down" = "workspace::ActivatePaneDown";
          ", w h" = "workspace::ActivatePaneLeft";
          ", w l" = "workspace::ActivatePaneRight";
          ", w k" = "workspace::ActivatePaneUp";
          ", w j" = "workspace::ActivatePaneDown";
          ", w ctrl-h" = "workspace::ActivatePaneLeft";
          ", w ctrl-l" = "workspace::ActivatePaneRight";
          ", w ctrl-k" = "workspace::ActivatePaneUp";
          ", w ctrl-j" = "workspace::ActivatePaneDown";
          ", w shift-left" = "workspace::SwapPaneLeft";
          ", w shift-right" = "workspace::SwapPaneRight";
          ", w shift-up" = "workspace::SwapPaneUp";
          ", w shift-down" = "workspace::SwapPaneDown";
          ", w shift-h" = "workspace::SwapPaneLeft";
          ", w shift-l" = "workspace::SwapPaneRight";
          ", w shift-k" = "workspace::SwapPaneUp";
          ", w shift-j" = "workspace::SwapPaneDown";
          ", w 1" = [
            "workspace::ActivatePane"
            0
          ];
          ", w 2" = [
            "workspace::ActivatePane"
            1
          ];
          ", w 3" = [
            "workspace::ActivatePane"
            2
          ];
          ", w 4" = [
            "workspace::ActivatePane"
            3
          ];
          ", w 5" = [
            "workspace::ActivatePane"
            4
          ];
          ", w 6" = [
            "workspace::ActivatePane"
            5
          ];
          ", w 7" = [
            "workspace::ActivatePane"
            6
          ];
          ", w 8" = [
            "workspace::ActivatePane"
            7
          ];
          ", w 9" = [
            "workspace::ActivatePane"
            8
          ];
          ", w >" = "vim::ResizePaneRight";
          ", w <" = "vim::ResizePaneLeft";
          ", w -" = "vim::ResizePaneDown";
          ", w +" = "vim::ResizePaneUp";
          ", w _" = "vim::MaximizePane";
          ", w =" = "vim::ResetPaneSizes";
          ", w g t" = "pane::ActivateNextItem";
          ", w ctrl-g t" = "pane::ActivateNextItem";
          ", w g shift-t" = "pane::ActivatePreviousItem";
          ", w ctrl-g shift-t" = "pane::ActivatePreviousItem";
          ", w w" = "workspace::ActivateNextPane";
          ", w p" = "workspace::ActivatePreviousPane";
          ", w ctrl-p" = "workspace::ActivatePreviousPane";
          ", w shift-w" = "workspace::ActivatePreviousPane";
          ", w v" = "pane::SplitVertical";
          ", w ctrl-v" = "pane::SplitVertical";
          ", w s" = "pane::SplitHorizontal";
          ", w shift-s" = "pane::SplitHorizontal";
          ", w ctrl-s" = "pane::SplitHorizontal";
          ", w c" = "pane::CloseAllItems";
          ", w ctrl-c" = "pane::CloseAllItems";
          ", w q" = "pane::CloseAllItems";
          ", w ctrl-q" = "pane::CloseAllItems";
          ", w o" = "workspace::CloseInactiveTabsAndPanes";
          ", w ctrl-o" = "workspace::CloseInactiveTabsAndPanes";
          ", w n" = "workspace::NewFileSplitHorizontal";
          ", w ctrl-n" = "workspace::NewFileSplitHorizontal";
        };
      }
    ];
  };
}