From f0dee85621f85acf4b26b927cdeb2a320d37c160 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 | 1 + home/modules/zed.nix | 93 +++++++++++++++++++ .../fabian@posixlycorrect/default.nix | 1 + 3 files changed, 95 insertions(+) create mode 100644 home/modules/zed.nix diff --git a/home/modules/default.nix b/home/modules/default.nix index 91159d6..5b58b8e 100644 --- a/home/modules/default.nix +++ b/home/modules/default.nix @@ -19,5 +19,6 @@ ./syncthing.nix ./deepState.nix ./mapping.nix + ./zed.nix ]; } diff --git a/home/modules/zed.nix b/home/modules/zed.nix new file mode 100644 index 0000000..ff80633 --- /dev/null +++ b/home/modules/zed.nix @@ -0,0 +1,93 @@ +{ + config, + lib, + pkgs, + ... +}: +with lib; let + cfg = config.local.apps.zed; +in { + options.local.apps.zed.enable = mkEnableOption "zed editor settings"; + config = mkIf cfg.enable { + 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/fabian@posixlycorrect/default.nix b/home/platforms/fabian@posixlycorrect/default.nix index 876820e..10c8e02 100644 --- a/home/platforms/fabian@posixlycorrect/default.nix +++ b/home/platforms/fabian@posixlycorrect/default.nix @@ -46,6 +46,7 @@ defaultDesktopPack.enable = true; firefox.enable = true; mapping.enable = true; + zed.enable = true; }; gui = {