From 25612fc232562d0978787b0d64de21b0d443e78f Mon Sep 17 00:00:00 2001 From: Jason Hilder Date: Tue, 23 Jun 2026 08:34:58 +0200 Subject: [PATCH] Zed editor settings and symlinks. --- config/zed/keymap.json | 113 +++++++++++++++++++++++++-------------- config/zed/settings.json | 100 +++++++++++++++++++--------------- install.sh | 2 + 3 files changed, 130 insertions(+), 85 deletions(-) diff --git a/config/zed/keymap.json b/config/zed/keymap.json index 0237081..378f17a 100644 --- a/config/zed/keymap.json +++ b/config/zed/keymap.json @@ -2,38 +2,34 @@ // ─── UNBINDS ──────────────────────────────────────────────────────────────── { "context": "Editor && vim_mode == insert", - "bindings": { "ctrl-l": null, "ctrl-h": null } + "bindings": { "ctrl-l": null, "ctrl-h": null }, }, { "context": "FileFinder || FileFinder > Picker > Editor || FileFinder > Picker > menu", - "bindings": { "ctrl-l": null, "ctrl-h": null } + "bindings": { "ctrl-l": null, "ctrl-h": null }, }, { "context": "BufferSearchBar", - "bindings": { "ctrl-l": null, "ctrl-h": null } + "bindings": { "ctrl-l": null, "ctrl-h": null }, }, { "context": "vim_mode == literal", - "bindings": { "ctrl-l": null } + "bindings": { "ctrl-l": null, "ctrl-h": null }, }, { "context": "VimControl && !menu", - "bindings": { "ctrl-b": null, "ctrl-o": null } + "bindings": { "ctrl-b": null, "ctrl-o": null, "ctrl-h": null, "ctrl-j": null, "ctrl-k": null, "ctrl-l": null }, }, { "context": "Workspace", - "bindings": { "ctrl-b": null} + "bindings": { "ctrl-b": null, "ctrl-h": null, "ctrl-j": null, "ctrl-k": null, "ctrl-l": null }, }, { - "unbind": { "ctrl-o": "workspace::OpenFiles" } + "context": "Editor", + "bindings": { "ctrl-h": null, "ctrl-j": null, "ctrl-k": null, "ctrl-l": null }, }, - // ─── PANE NAVIGATION ──────────────────────────────────────────────────────── { - "context": "Editor && vim_mode == normal", - "bindings": { - "ctrl-h": "pane::ActivatePreviousItem", - "ctrl-l": "pane::ActivateNextItem" - } + "unbind": { "ctrl-o": "workspace::OpenFiles" }, }, // ─── EDITOR ───────────────────────────────────────────────────────────────── { @@ -42,29 +38,29 @@ "ctrl-e": "project_panel::Toggle", "ctrl-f": "pane::DeploySearch", "ctrl-o": "terminal_panel::Toggle", - "ctrl-m": "tab_switcher::ToggleAll" - } + "ctrl-m": "tab_switcher::ToggleAll", + }, }, // ─── BUFFER SEARCH BAR ────────────────────────────────────────────────────── { "context": "BufferSearchBar", "bindings": { - "ctrl-r": "search::ToggleReplace" - } + "ctrl-r": "search::ToggleReplace", + }, }, // ─── PROJECT SEARCH BAR ───────────────────────────────────────────────────── { "context": "ProjectSearchBar", "bindings": { - "ctrl-r": "search::ToggleReplace" - } + "ctrl-r": "search::ToggleReplace", + }, }, // ─── PROJECT SEARCH RESULTS ────────────────────────────────────────────────── { "context": "VimControl && !menu", "bindings": { - "enter": "editor::OpenExcerpts" - } + "enter": "editor::OpenExcerpts", + }, }, // ─── PROJECT PANEL (FILE TREE) ─────────────────────────────────────────────── { @@ -73,65 +69,100 @@ "ctrl-e": "project_panel::Toggle", "a": "project_panel::NewFile", "d": "project_panel::Delete", - "r": "project_panel::Rename" - } + "r": "project_panel::Rename", + }, }, // ─── TERMINAL ─────────────────────────────────────────────────────────────── { "context": "Terminal", "bindings": { "ctrl-o": "terminal_panel::Toggle", - "ctrl-h": "pane::ActivatePreviousItem", - "ctrl-l": "pane::ActivateNextItem", "ctrl-q": "pane::CloseActiveItem", - "ctrl-j": "terminal::Clear" - } + }, + }, + // ─── PANE NAVIGATION (vim-style) ──────────────────────────────────────────── + { + "context": "VimControl && vim_mode == normal && !menu", + "bindings": { + "ctrl-h": "workspace::ActivatePaneLeft", + "ctrl-l": "workspace::ActivatePaneRight", + "ctrl-k": "workspace::ActivatePaneUp", + "ctrl-j": "workspace::ActivatePaneDown", + }, + }, + { + "context": "Pane && not_editing", + "bindings": { + "ctrl-h": "workspace::ActivatePaneLeft", + "ctrl-l": "workspace::ActivatePaneRight", + "ctrl-k": "workspace::ActivatePaneUp", + "ctrl-j": "workspace::ActivatePaneDown", + }, + }, + { + "context": "Terminal", + "bindings": { + "ctrl-h": "workspace::ActivatePaneLeft", + "ctrl-l": "workspace::ActivatePaneRight", + "ctrl-k": "workspace::ActivatePaneUp", + "ctrl-j": "workspace::ActivatePaneDown", + }, + }, + { + "context": "ProjectPanel", + "bindings": { + "ctrl-h": "workspace::ActivatePaneLeft", + "ctrl-l": "workspace::ActivatePaneRight", + "ctrl-k": "workspace::ActivatePaneUp", + "ctrl-j": "workspace::ActivatePaneDown", + }, }, // ─── WORKSPACE ────────────────────────────────────────────────────────────── { "context": "Workspace", "bindings": { + "ctrl-e": "project_panel::Toggle", "ctrl-o": "terminal_panel::Toggle", - "ctrl-p": "file_finder::Toggle" - } + "ctrl-p": "file_finder::Toggle", + }, }, // ─── CTRL-W CLOSE → CTRL-W Q ──────────────────────────────────────────────── { "context": "Pane", - "bindings": { "ctrl-w": null } + "bindings": { "ctrl-w": null }, }, { "context": "Workspace", - "bindings": { "ctrl-w": null } + "bindings": { "ctrl-w": null }, }, { "context": "SettingsWindow", - "bindings": { "ctrl-w": null } + "bindings": { "ctrl-w": null }, }, { "context": "Pane", - "bindings": { "ctrl-w q": "pane::CloseActiveItem" } + "bindings": { "ctrl-w q": "pane::CloseActiveItem" }, }, { "context": "SettingsWindow", - "bindings": { "ctrl-w q": "workspace::CloseWindow" } + "bindings": { "ctrl-w q": "workspace::CloseWindow" }, }, { "context": "Workspace", "unbind": { - "ctrl-`": "terminal_panel::Toggle" - } + "ctrl-`": "terminal_panel::Toggle", + }, }, { "context": "Workspace", "bindings": { - "ctrl-`": "projects::OpenRecent" - } + "ctrl-`": "projects::OpenRecent", + }, }, { "context": "Workspace", "unbind": { - "ctrl-r": "projects::OpenRecent" - } - } + "ctrl-r": "projects::OpenRecent", + }, + }, ] diff --git a/config/zed/settings.json b/config/zed/settings.json index ac2dc37..b3d97c9 100644 --- a/config/zed/settings.json +++ b/config/zed/settings.json @@ -1,15 +1,14 @@ { + "use_system_window_tabs": false, + "window_decorations": "server", // ─── CORE BEHAVIOR ─────────────────────────────────────────────────────────── - "gutter": { - "bookmarks": false, - "runnables": false - }, + "show_wrap_guides": false, "which_key": { "enabled": true }, "cursor_shape": "block", "vim_mode": true, "base_keymap": "VSCode", "restore_on_startup": "last_workspace", - "disable_ai": false, + "disable_ai": true, "session": { "trust_all_worktrees": true }, "telemetry": { "diagnostics": false, "metrics": false }, // ─── EDITOR BEHAVIOR ───────────────────────────────────────────────────────── @@ -21,25 +20,27 @@ "use_on_type_format": true, "centered_layout": { "left_padding": 0.15, - "right_padding": 0.15 + "right_padding": 0.15, }, "indent_guides": { "coloring": "fixed", "line_width": 1, - "active_line_width": 2 + "active_line_width": 2, + }, + "gutter": { + "bookmarks": false, + "runnables": false, }, // ─── FONTS & TEXT RENDERING ────────────────────────────────────────────────── - "buffer_font_family": "Consolas", - "buffer_font_size": 14.5, + "buffer_font_family": "JetBrainsMono Nerd Font Mono", + "buffer_font_size": 15.7, "buffer_font_features": { "liga": false }, "buffer_line_height": { "custom": 2.2 }, - "ui_font_size": 14, + "ui_font_family": "Inter Display", + "ui_font_size": 16.5, // ─── THEME & APPEARANCE ────────────────────────────────────────────────────── - "theme": { - "mode": "system", - "light": "One Light", - "dark": "VSCode Dark Modern" - }, + "icon_theme": "Warm Charmed Icons", + "theme": "Kanagawa Wave - No Italics", "theme_overrides": { "VSCode Dark Modern": { "border": "#1e1e1e", @@ -48,43 +49,42 @@ "panel.background": "#1e1e1e", "panel.focused_border": "#bbbbbb", "editor.document_highlight.read_background": "#00000000", - "editor.document_highlight.write_background": "#00000000" - } + "editor.document_highlight.write_background": "#00000000", + }, }, - "icon_theme": { - "mode": "light", - "light": "Warm Charmed Icons", - "dark": "Warm Charmed Icons" - }, - "scrollbar": { "selected_symbol": true, - "show": "never" }, + "scrollbar": { "selected_symbol": true, "show": "never" }, // ─── TAB BAR & TABS ────────────────────────────────────────────────────────── "tab_bar": { - "show": true, + "show": false, "show_nav_history_buttons": false, - "show_tab_bar_buttons": false + "show_tab_bar_buttons": false, }, "tabs": { "close_position": "left", "file_icons": false, - "git_status": false + "git_status": false, }, // ─── TOOLBAR & STATUS BAR ──────────────────────────────────────────────────── "toolbar": { "breadcrumbs": false, "quick_actions": false, "selections_menu": false, - "agent_review": false + "agent_review": false, }, "status_bar": { "cursor_position_button": true, - "active_language_button": true + "active_language_button": true, }, "title_bar": { - "show_branch_name": true, + "show_menus": false, + "button_layout": "platform_default", + "show_onboarding_banner": false, + "show_project_items": false, + "show_branch_status_icon": false, + "show_branch_name": false, "show_user_picture": false, "show_user_menu": false, - "show_sign_in": false + "show_sign_in": false, }, // ─── PANELS & DOCKS ────────────────────────────────────────────────────────── "project_panel": { @@ -92,7 +92,7 @@ "starts_open": false, "hide_root": true, "bold_folder_labels": true, - "button": false + "button": false, }, "outline_panel": { "button": true, "dock": "left" }, "git_panel": { "dock": "left" }, @@ -104,12 +104,24 @@ "agent": { "dock": "right", "favorite_models": [], - "model_parameters": [] + "model_parameters": [], }, // ─── BUTTONS ───────────────────────────────────────────────────────────────── "search": { "button": true }, "debugger": { "button": false }, "diagnostics": { "button": false }, + // ─── GIT INTEGRATION ─────────────────────────────────────────────────────── + "git": { + "blame": { + "show_avatar": false + }, + "inline_blame": { + "enabled": false + }, + "git_gutter": "tracked_files", + "enable_diff": true, + "enable_status": true + }, // ─── LANGUAGE SERVERS ──────────────────────────────────────────────────────── "languages": { "PHP": { @@ -119,31 +131,31 @@ "!phptools", "!outsourced", "tailwindcss-language-server", - "..." - ] + "...", + ], }, "HTML": { - "language_servers": ["!tailwindcss-language-server", "..."] + "language_servers": ["!tailwindcss-language-server", "..."], }, "CSS": { - "language_servers": ["!tailwindcss-language-server", "..."] + "language_servers": ["!tailwindcss-language-server", "..."], }, "JavaScript": { - "language_servers": ["!tailwindcss-language-server", "..."] + "language_servers": ["!tailwindcss-language-server", "..."], }, "TypeScript": { - "language_servers": ["!tailwindcss-language-server", "..."] + "language_servers": ["!tailwindcss-language-server", "..."], }, "JSON": { - "language_servers": ["!json-language-server", "..."] + "language_servers": ["!json-language-server", "..."], }, "Markdown": { "language_servers": [ "markdown-oxide", "!tailwindcss-language-server", "!json-language-server", - "..." - ] - } - } + "...", + ], + }, + }, } diff --git a/install.sh b/install.sh index 30357c4..9f09288 100755 --- a/install.sh +++ b/install.sh @@ -88,6 +88,8 @@ if [ "$DO_LINKS" = true ]; then link_file "$DOTFILES_DIR/config/fish" "$HOME/.config/fish" link_file "$DOTFILES_DIR/config/alacritty" "$HOME/.config/alacritty" link_file "$DOTFILES_DIR/config/nvim" "$HOME/.config/nvim" + link_file "$DOTFILES_DIR/config/zed/keymap.json" "$HOME/.config/zed/keymap.json" + link_file "$DOTFILES_DIR/config/zed/settings.json" "$HOME/.config/zed/settings.json" link_file "$DOTFILES_DIR/config/lf" "$HOME/.config/lf" link_file "$DOTFILES_DIR/config/polybar" "$HOME/.config/polybar" link_file "$DOTFILES_DIR/config/rofi" "$HOME/.config/rofi"