From 76489651f17d21e1123ae5e68ab4d5f61b7ef8a5 Mon Sep 17 00:00:00 2001 From: Jo Date: Sat, 24 May 2025 00:26:39 +0200 Subject: [PATCH] =?UTF-8?q?=E2=9C=A8=20(modules/home)=20Update=20default?= =?UTF-8?q?=20Zed=20module=20configuration?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- modules/home/apps/zed/default.nix | 107 ++++++++++++++++++++++++------ 1 file changed, 87 insertions(+), 20 deletions(-) diff --git a/modules/home/apps/zed/default.nix b/modules/home/apps/zed/default.nix index 9ebbebd..1c948ad 100644 --- a/modules/home/apps/zed/default.nix +++ b/modules/home/apps/zed/default.nix @@ -5,7 +5,7 @@ config, ... }: let - inherit (lib) mkEnableOption mkIf; + inherit (lib) mkEnableOption mkIf mkForce; inherit (self) namespace; cfg = config.${namespace}.apps.zed; @@ -15,51 +15,118 @@ in { }; config = mkIf cfg.enable { - home.packages = with pkgs; [ - alejandra - ]; - programs.zed-editor = { enable = true; - extensions = ["nix" "catppuccin" "wakatime" "discord_presence" "deno"]; userSettings = { - icon_theme = "Catppuccin Macchiato"; - theme = { - dark = "Catppuccin Macchiato (blue)"; - light = "Catppuccin Macchiato (blue)"; + ### Theme settings + icon_theme = mkForce { + dark = mkIf config.catppuccin.enable "Catppuccin Macchiato"; + light = mkIf config.catppuccin.enable "Catppuccin Latte"; + }; + + theme = mkForce { + dark = mkIf config.catppuccin.enable "Catppuccin Macchiato (blue)"; + light = mkIf config.catppuccin.enable "Catppuccin Latte (blue)"; }; ### Disable telemetry telemetry = { + diagnostics = false; metrics = false; }; - ### Disable certain AI features + ### Remove useless features and stuff + show_call_status_icon = false; + agent.button = false; + collaboration_panel.button = false; + chat_panel.button = false; + features = { + inline_completion_provider = "none"; + edit_prediction_provider = "none"; copilot = false; }; - formatter = { - external = { - command = "alejandra"; - arguments = ["--quiet"]; - language = ["nix"]; - }; + ### Formatting and saving settings + formatter = "language_server"; + format_on_save = "on"; + autosave.after_delay.milliseconds = 0; + + diagnostics.inline.enable = true; + + indent_guides = { + enable = true; + coloring = "indent_aware"; }; - format_on_save = "on"; + hard_tabs = true; + tab_size = 2; + soft_wrap = "preferred_line_length"; ### Language specific configurations languages = { - ### Nix language Nix = { language_servers = ["nixd" "!nil"]; + formatter = { + external = { + command = "alejandra"; + arguments = ["--quiet"]; + }; + }; }; }; + + ### Base editor configurations + auto_update = false; + auto_install_extension = { + # Web dev + html = true; + svelte = true; + ejs = true; + scss = true; + + # Languages + nix = true; + php = true; + sql = true; + toml = true; + pylsp = true; # Python + fish = true; + + # Docker + dockerfile = true; + docker-compose = true; + + # Theming + catppuccin = mkIf config.catppuccin.enable true; + catppuccin-icons = mkIf config.catppuccin.enable true; + + # Other + discord-presence = true; + git-firefly = true; + wakatime = true; + }; }; - extraPackages = with pkgs; [nixd]; + userKeymaps = [ + { + context = "Editor"; + bindings = { + # This relies on autosave being active, as it overwrites the default file save keybinding + ctrl-s = "editor::Format"; + }; + } + ]; + + extraPackages = with pkgs; [ + ### Nix + nixd + alejandra + + ### Python + python3Packages.python-lsp-server + ]; }; }; }