feat: configure zed-editor with home-manager #27

Merged
wi11-holdsworth merged 1 commit from enhancement/25 into main 2025-10-07 23:43:56 +11:00
5 changed files with 118 additions and 1 deletions

View file

@ -9,6 +9,7 @@
# keep-sorted start
desktop.enable = true;
dev.enable = true;
# keep-sorted end
# config

View file

@ -9,6 +9,7 @@
# keep-sorted start
desktop.enable = true;
dev.enable = true;
# keep-sorted end
# config

View file

@ -0,0 +1,19 @@
{
config,
lib,
...
}:
let
feature = "dev";
in
{
config = lib.mkIf config.${feature}.enable {
# keep-sorted start
zed-editor.enable = lib.mkDefault true;
# keep-sorted end
};
imports = [ ];
options.${feature}.enable = lib.mkEnableOption "enables ${feature}";
}

View file

@ -0,0 +1,97 @@
{
config,
lib,
pkgs,
...
}:
let
feature = "zed-editor";
in
{
config = lib.mkIf config.${feature}.enable {
programs.zed-editor = {
enable = true;
package = pkgs.zed-editor-fhs;
extensions = [
# keep-sorted start
"catppuccin"
"catppuccin-icons"
"codebook"
"emmet"
"git-firefly"
"haskell"
"html"
"nix"
# keep-sorted end
];
extraPackages = with pkgs; [
# keep-sorted start
haskell-language-server
nil
nixd
package-version-server
rust-analyzer
# keep-sorted end
];
installRemoteServer = true;
userSettings = {
# keep-sorted start block=yes
base_keymap = "VSCode";
buffer_font_family = "JetBrainsMono Nerd Font";
buffer_font_size = 15;
disable_ai = true;
icon_theme = "Catppuccin Mocha";
inlay_hints = {
enabled = true;
show_value_hints = true;
show_type_hints = true;
show_parameter_hints = true;
show_other_hints = true;
show_background = false;
edit_debounce_ms = 700;
scroll_debounce_ms = 50;
toggle_on_modifiers_press = {
control = false;
alt = false;
shift = false;
platform = false;
function = false;
};
};
# https://wiki.nixos.org/wiki/Zed#rust-analyzer
lsp.rust-analyzer.binary.path = lib.getExe pkgs.rust-analyzer;
minimap = {
show = "auto";
};
preferred_line_length = 80;
relative_line_numbers = true;
soft_wrap = "preferred_line_length";
tab_bar = {
show_nav_history_buttons = false;
};
tab_size = 2;
tabs = {
file_icons = true;
git_status = true;
};
telemetry = {
diagnostics = false;
metrics = false;
};
theme = {
mode = "system";
light = "One Light";
dark = "Catppuccin Mocha";
};
ui_font_family = "JetBrainsMono Nerd Font";
ui_font_size = 16;
vim_mode = true;
# keep-sorted end
};
};
};
imports = [ ];
options.${feature}.enable = lib.mkEnableOption "enables ${feature}";
}

View file

@ -17,7 +17,6 @@ in
just
mask
rusty-man
zed-editor
# keep-sorted end
];
};