1{ lib, config, pkgs, helpers, ... } @ inputs:
2
3with lib;
4let
5 themes = (import ./theme.nix inputs);
6 cfg = config.modules.apps;
7
8 userSettings = {
9 ui_font_family = "SF Pro Text";
10 ui_font_fallbacks = [ "codicon" ];
11 ui_font_size = 14;
12 buffer_font_family = "Dank Mono";
13 buffer_font_size = 14;
14 buffer_line_height.custom = 1.2;
15 tab_size = 2;
16
17 load_direnv = "shell_hook";
18
19 theme = "System Dark";
20
21 scrollbar.show = "never";
22 tab_bar.show = false;
23 git.inline_blame.enabled = false;
24 indent_guides.enabled = false;
25 seed_search_query_from_cursor = "selection";
26 use_smartcase_search = true;
27 use_autoclose = false;
28 inline_code_actions = false;
29 cursor_blink = false;
30
31 vim_mode = true;
32
33 calls = {
34 mute_on_join = true;
35 share_on_join = false;
36 };
37
38 toolbar = {
39 breadcrumbs = false;
40 quick_actions = false;
41 selections_menu = false;
42 agent_review = false;
43 code_actions = false;
44 };
45
46 telemetry = {
47 diagnostics = false;
48 metrics = false;
49 };
50
51 language_models = {
52 ollama.api_url = "http://irnbru.fable-pancake.ts.net:11434";
53 lmstudio.api_url = "http://irnbru.fable-pancake.ts.net:1234/api/v0";
54 };
55 };
56in {
57 options.modules.apps.zed-editor = {
58 enable = mkOption {
59 default = false;
60 description = "Whether to enable Zed Editor.";
61 type = types.bool;
62 };
63 };
64
65 config = mkIf (cfg.enable && cfg.zed-editor.enable) {
66 programs.zed-editor = {
67 enable = true;
68 installRemoteServer = true;
69 inherit themes userSettings;
70 };
71 };
72}