From 8024a1ed64eaef5b0d79117594b8eb3705631305 Mon Sep 17 00:00:00 2001 From: Fabian Montero Date: Tue, 26 Aug 2025 19:02:42 -0600 Subject: [PATCH] config: add zed editor --- home/modules/default.nix | 2 +- home/modules/zed.nix | 97 ++++++++++++++++++++++------ home/platforms/chem@yuki/default.nix | 2 +- 3 files changed, 81 insertions(+), 20 deletions(-) diff --git a/home/modules/default.nix b/home/modules/default.nix index 3453cf7..c9a4816 100644 --- a/home/modules/default.nix +++ b/home/modules/default.nix @@ -9,11 +9,11 @@ ./neovim.nix ./baseline.nix ./gaming.nix - ./zed.nix ./firefox.nix ./gui ./zsh ./defaultDesktopPack.nix ./mapping.nix + ./zed.nix ]; } diff --git a/home/modules/zed.nix b/home/modules/zed.nix index bf3d95a..ff80633 100644 --- a/home/modules/zed.nix +++ b/home/modules/zed.nix @@ -7,26 +7,87 @@ with lib; let cfg = config.local.apps.zed; in { - options.local.apps.zed = { - enable = mkEnableOption "zed settings"; - }; - + options.local.apps.zed.enable = mkEnableOption "zed editor settings"; config = mkIf cfg.enable { - programs.zed-editor = { - enable = true; - userSettings = { - features = { - copilot = false; - }; - telemetry = { - metrics = false; - }; - vim_mode = false; - ui_font_size = 16; - buffer_font_size = 16; - base_keymap = "VSCode"; + programs.zed-editor = { + enable = true; + extensions = [ + "nix" + "codebook" + "vscode-dark-high-contrast" + "catppuccin-icons" + ]; + extraPackages = with pkgs; [ + nixd + ]; + userSettings = { + disable_ai = true; + theme = { + dark = "VSCode Dark High Contrast"; + light = "VSCode Dark High Contrast"; }; + icon_theme = { + dark = "Catppuccin Latte"; + light = "Catppuccin Latte"; + }; + file_icons = true; + rulers = [80 120]; + preferred_line_length = 120; + scroll_past_end = true; + cursor = { + blink_interval = 600; + smooth_scroll = true; + }; + autosave = "on_focus_change"; + auto_update = false; + buffer_font_family = "JetBrains Mono"; + buffer_font_size = 22; + hide_mouse = "never"; + minimap.show = "auto"; + tabs = { + file_icons = true; + git_status = true; + activate_on_close = "neighbour"; + show_close_button = "always"; + }; + toolbar = { + breadcrumbs = true; + quick_actions = true; + selections_menu = true; + agent_review = false; + code_actions = false; + }; + format_on_save = "off"; + use_autoclose = false; + git = { + git_gutter = "tracked_files"; + inline_blame = { + enabled = true; + delay_ms = 5000; + }; + }; + indent_guides = { + enabled = true; + line_width = 1; + active_line_width = 1; + coloring = "fixed"; + background_coloring = "disabled"; + }; + hour_format = "hour24"; + remove_trailing_whitespace_on_save = true; + use_smartcase_search = true; + soft_wrap = "editor_width"; + tab_size = 2; + telemetry = { + diagnostics = false; + metrics = false; + }; + auto_fold_dirs = false; + scrollbar = { + show = "always"; + }; + unnecessary_code_fade = 0.0; }; + }; }; - } diff --git a/home/platforms/chem@yuki/default.nix b/home/platforms/chem@yuki/default.nix index 92cd527..a9096ea 100644 --- a/home/platforms/chem@yuki/default.nix +++ b/home/platforms/chem@yuki/default.nix @@ -37,8 +37,8 @@ gaming.enable = true; defaultDesktopPack.enable = true; firefox.enable = true; - zed.enable = true; mapping.enable = true; + zed.enable = true; }; gui = {