configs

configs
git clone https://git.prime8.dev/configs.git
Log | Files | Refs | README

commit c6d648a6ae1c2197ef1a080694f843fc28d3e8c3
parent e25f74fa290cf82c02d156897080c07e17d9e94d
Author: Damian Myrda <damian@prime8.dev>
Date:   Fri, 23 Jan 2026 18:24:43 -0600

refactor zed config: convert to jsonc, reorganize, and add UI customizations

Diffstat:
Mlink.sh | 4++--
Dprograms/zed/keymap.json | 120-------------------------------------------------------------------------------
Aprograms/zed/keymap.jsonc | 120+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Dprograms/zed/settings.json | 88-------------------------------------------------------------------------------
Aprograms/zed/settings.jsonc | 140+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
5 files changed, 262 insertions(+), 210 deletions(-)

diff --git a/link.sh b/link.sh @@ -52,8 +52,8 @@ link_config "$PROGRAMS_DIR/karabiner/karabiner.json" "$CONFIG_DIR/karabiner/kara link_config "$PROGRAMS_DIR/karabiner/assets" "$CONFIG_DIR/karabiner/assets" # Zed -link_config "$PROGRAMS_DIR/zed/settings.json" "$HOME/.var/app/dev.zed.Zed/config/zed/settings.json" -link_config "$PROGRAMS_DIR/zed/keymap.json" "$HOME/.var/app/dev.zed.Zed/config/zed/keymap.json" +link_config "$PROGRAMS_DIR/zed/settings.jsonc" "$HOME/.var/app/dev.zed.Zed/config/zed/settings.json" +link_config "$PROGRAMS_DIR/zed/keymap.jsonc" "$HOME/.var/app/dev.zed.Zed/config/zed/keymap.json" # Systemd user services link_config "$PROGRAMS_DIR/systemd/user/g14-volume-sync.service" "$CONFIG_DIR/systemd/user/g14-volume-sync.service" diff --git a/programs/zed/keymap.json b/programs/zed/keymap.json @@ -1,120 +0,0 @@ -[ - // Global bindings - { - "bindings": { - "ctrl-o": "pane::ReopenClosedItem", - }, - }, - // Workspace bindings (no editor focused) - { - "context": "Workspace && !Editor && !Terminal && !Picker && !TabSwitcher && !FileFinder && !AgentPanel", - "bindings": { - // Panels - "space e": "workspace::ToggleLeftDock", - "space t": "terminal_panel::ToggleFocus", - "space d": "diagnostics::Deploy", - // Navigation - "space f": "file_finder::Toggle", - "space p": "projects::OpenRecent", - "space b": "tab_switcher::Toggle", - "space B": "git::Branch", - "space g": "project_symbols::Toggle", - // Actions - "space o": "workspace::ToggleRightDock", - "space shift-o": [ - "agent::NewExternalAgentThread", - { - "agent": { - "custom": { - "name": "OpenCode", - }, - }, - }, - ], - "space T": "task::Spawn", - // Debugger - "space D s": "debugger::Start", - "space D q": "debugger::Stop", - "space D r": "debugger::Rerun", - "space D c": "debugger::Continue", - "space D p": "debugger::Pause", - "space D v": "debugger::FocusVariables", - "space D f": "debugger::FocusFrames", - "space D l": "debugger::FocusConsole", - }, - }, - // Editor bindings (in normal/visual mode) - { - "context": "VimControl && !Terminal && !Picker && !TabSwitcher && !FileFinder && !AgentPanel", - "bindings": { - // Panels - "space e": "workspace::ToggleLeftDock", - "space t": "terminal_panel::ToggleFocus", - "space d": "diagnostics::Deploy", - // Navigation - "space f": "file_finder::Toggle", - "space p": "projects::OpenRecent", - "space b": "tab_switcher::Toggle", - "space B": "git::Branch", - "space g": "project_symbols::Toggle", - // Actions - "space o": "workspace::ToggleRightDock", - "space shift-o": [ - "agent::NewExternalAgentThread", - { - "agent": { - "custom": { - "name": "OpenCode", - }, - }, - }, - ], - "space T": "task::Spawn", - // Debugger - "space D s": "debugger::Start", - "space D q": "debugger::Stop", - "space D r": "debugger::Rerun", - "space D c": "debugger::Continue", - "space D p": "debugger::Pause", - "space D v": "debugger::FocusVariables", - "space D f": "debugger::FocusFrames", - "space D l": "debugger::FocusConsole", - }, - }, - // Editor-only bindings (require an open editor in normal/visual mode) - { - "context": "VimControl && Editor && !Terminal && !Picker && !TabSwitcher && !FileFinder && !AgentPanel", - "bindings": { - // Editor-specific actions - "space s": "outline::Toggle", - "space g": "project_symbols::Toggle", - "space c": "pane::CloseActiveItem", - "space w": "workspace::Save", - // LSP - "space r": "editor::Rename", - "space R": "editor::FindAllReferences", - "space space": "editor::Hover", - "space a": "editor::ToggleCodeActions", - "g i": "editor::GoToImplementation", - // Debugger (editor-specific) - "space D n": "debugger::StepOver", - "space D i": "debugger::StepInto", - "space D o": "debugger::StepOut", - "space D b": "editor::ToggleBreakpoint", - "space D B": "debugger::ClearAllBreakpoints", - }, - }, - // Debug panel specific bindings - { - "context": "DebugPanel", - "bindings": { - "c": "debugger::Continue", - "p": "debugger::Pause", - "n": "debugger::StepOver", - "i": "debugger::StepInto", - "o": "debugger::StepOut", - "q": "debugger::Stop", - "r": "debugger::Rerun", - }, - }, -] diff --git a/programs/zed/keymap.jsonc b/programs/zed/keymap.jsonc @@ -0,0 +1,120 @@ +[ + // Global + { + "bindings": { + "ctrl-o": "pane::ReopenClosedItem" + } + }, + + // Workspace (no editor focused) + { + "context": "Workspace && !Editor && !Terminal && !Picker && !TabSwitcher && !FileFinder && !AgentPanel", + "bindings": { + // Panels + "space e": "workspace::ToggleLeftDock", + "space o": "workspace::ToggleRightDock", + "space t": "terminal_panel::ToggleFocus", + "space d": "diagnostics::Deploy", + + // Navigation + "space f": "file_finder::Toggle", + "space p": "projects::OpenRecent", + "space b": "tab_switcher::Toggle", + "space B": "git::Branch", + "space g": "project_symbols::Toggle", + + // Actions + "space T": "task::Spawn", + "space shift-o": [ + "agent::NewExternalAgentThread", + { "agent": { "custom": { "name": "OpenCode" } } } + ], + + // Debugger + "space D s": "debugger::Start", + "space D q": "debugger::Stop", + "space D r": "debugger::Rerun", + "space D c": "debugger::Continue", + "space D p": "debugger::Pause", + "space D v": "debugger::FocusVariables", + "space D f": "debugger::FocusFrames", + "space D l": "debugger::FocusConsole" + } + }, + + // Vim (normal/visual mode) + { + "context": "VimControl && !Terminal && !Picker && !TabSwitcher && !FileFinder && !AgentPanel", + "bindings": { + // Panels + "space e": "workspace::ToggleLeftDock", + "space o": "workspace::ToggleRightDock", + "space t": "terminal_panel::ToggleFocus", + "space d": "diagnostics::Deploy", + + // Navigation + "space f": "file_finder::Toggle", + "space p": "projects::OpenRecent", + "space b": "tab_switcher::Toggle", + "space B": "git::Branch", + "space g": "project_symbols::Toggle", + + // Actions + "space T": "task::Spawn", + "space shift-o": [ + "agent::NewExternalAgentThread", + { "agent": { "custom": { "name": "OpenCode" } } } + ], + + // Debugger + "space D s": "debugger::Start", + "space D q": "debugger::Stop", + "space D r": "debugger::Rerun", + "space D c": "debugger::Continue", + "space D p": "debugger::Pause", + "space D v": "debugger::FocusVariables", + "space D f": "debugger::FocusFrames", + "space D l": "debugger::FocusConsole" + } + }, + + // Editor (vim normal/visual mode) + { + "context": "VimControl && Editor && !Terminal && !Picker && !TabSwitcher && !FileFinder && !AgentPanel", + "bindings": { + // Actions + "space s": "outline::Toggle", + "space g": "project_symbols::Toggle", + "space c": "pane::CloseActiveItem", + "space w": "workspace::Save", + + // LSP + "space space": "editor::Hover", + "space r": "editor::Rename", + "space R": "editor::FindAllReferences", + "space a": "editor::ToggleCodeActions", + "g i": "editor::GoToImplementation", + + // Debugger + "space D n": "debugger::StepOver", + "space D i": "debugger::StepInto", + "space D o": "debugger::StepOut", + "space D b": "editor::ToggleBreakpoint", + "space D B": "debugger::ClearAllBreakpoints" + } + }, + + // Debug Panel + { + "context": "DebugPanel", + "bindings": { + "c": "debugger::Continue", + "p": "debugger::Pause", + "n": "debugger::StepOver", + "i": "debugger::StepInto", + "o": "debugger::StepOut", + "q": "debugger::Stop", + "r": "debugger::Rerun" + } + } +] diff --git a/programs/zed/settings.json b/programs/zed/settings.json @@ -1,88 +0,0 @@ -{ - // Editor - "buffer_font_family": "JetBrainsMono Nerd Font", - "lsp": { - "vtsls": { - "settings": { - "typescript": { - "updateImportsOnFileMove": { - "enabled": "always", - }, - }, - "javascript": { - "updateImportsOnFileMove": { - "enabled": "always", - }, - }, - }, - "enable_lsp_tasks": true, - }, - }, - "tasks": { - "prefer_lsp": true, - }, - "vim_mode": true, - "relative_line_numbers": "enabled", - "hard_tabs": false, - "indent_guides": { - "line_width": 1, - }, - // Font - "ui_font_size": 12, - "buffer_font_size": 12, - // Theme - "theme": { - "mode": "system", - "light": "Gruvbox Light", - "dark": "Gruvbox Dark Hard", - }, - // Terminal - "terminal": { - "font_family": "JetBrainsMono Nerd Font", - "dock": "bottom", - "default_width": 480, - "scroll_multiplier": 1.0, - "shell": { - "program": "fish", - }, - }, - // AI - "features": { - "edit_prediction_provider": "supermaven", - }, - "agent": { - "default_model": { - "provider": "groq", - "model": "kimi-k2-instruct-0905", - }, - }, - "agent_servers": { - "OpenCode": { - "type": "custom", - "command": "opencode", - "args": ["acp"], - }, - }, - // Privacy - "telemetry": { - "diagnostics": false, - "metrics": false, - }, - // Session - "session": { - "trust_all_worktrees": true, - }, - "restore_on_startup": "launchpad", - // Linting - "languages": { - "JavaScript": { - "language_servers": ["vtsls"], - }, - "TypeScript": { - "language_servers": ["vtsls"], - }, - "TSX": { - "language_servers": ["vtsls"], - }, - }, -} diff --git a/programs/zed/settings.jsonc b/programs/zed/settings.jsonc @@ -0,0 +1,140 @@ +{ + // Theme + "theme": { + "mode": "system", + "light": "Gruvbox Light", + "dark": "Graphene" + }, + // Font + "ui_font_size": 14.0, + "buffer_font_family": "JetBrainsMono Nerd Font", + "buffer_font_size": 14.0, + "buffer_line_height": { + "custom": 1.5 + }, + // Editor + "vim_mode": true, + "relative_line_numbers": "enabled", + "hard_tabs": false, + "indent_guides": { + "line_width": 1 + }, + "scrollbar": { + "show": "never" + }, + "gutter": { + "min_line_number_digits": 0, + "folds": false, + "runnables": false + }, + // UI + "title_bar": { + "show_onboarding_banner": false + }, + "tab_bar": { + "show": false + }, + "toolbar": { + "quick_actions": false + }, + "status_bar": { + "experimental.show": false + }, + "file_finder": { + "modal_max_width": "large" + }, + "project_panel": { + "dock": "right", + "default_width": 320, + "hide_root": true, + "auto_fold_dirs": false, + "starts_open": false, + "sticky_scroll": false, + "scrollbar": { + "show": "never" + } + }, + "outline_panel": { + "default_width": 300, + "scrollbar": { + "show": "never" + } + }, + // Terminal + "terminal": { + "font_family": "JetBrainsMono Nerd Font", + "dock": "bottom", + "default_width": 480, + "scroll_multiplier": 1.0, + "shell": { + "program": "fish" + } + }, + // LSP + "lsp": { + "vtsls": { + "settings": { + "typescript": { + "updateImportsOnFileMove": { + "enabled": "always" + } + }, + "javascript": { + "updateImportsOnFileMove": { + "enabled": "always" + } + } + }, + "enable_lsp_tasks": true + } + }, + "tasks": { + "prefer_lsp": true + }, + "languages": { + "JavaScript": { + "language_servers": [ + "vtsls" + ] + }, + "TypeScript": { + "language_servers": [ + "vtsls" + ] + }, + "TSX": { + "language_servers": [ + "vtsls" + ] + } + }, + // AI + "features": { + "edit_prediction_provider": "supermaven" + }, + "agent": { + "default_model": { + "provider": "groq", + "model": "kimi-k2-instruct-0905" + } + }, + "agent_servers": { + "OpenCode": { + "type": "custom", + "command": "opencode", + "args": [ + "acp" + ] + } + }, + // Session + "session": { + "trust_all_worktrees": true + }, + "restore_on_startup": "launchpad", + // Privacy + "telemetry": { + "diagnostics": false, + "metrics": false + } +}