all repos — nixfiles @ a71323da9caaca0c8428e474c75230e498fd7cdc

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

add settings for zed

Alan Pearce
commit

a71323da9caaca0c8428e474c75230e498fd7cdc

parent

3166bdc3ec4db020a8321b6a0d25fe48b67673aa

1 file changed, 178 insertions(+), 0 deletions(-)

changed files
A user/settings/zed.nix
@@ -0,0 +1,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"; + }; + } + ]; + }; +}