aboutsummaryrefslogtreecommitdiffstats
path: root/users/hanna/configs/zed.nix
blob: fccc7c989173b2fb858b30453261cc1b0422c77d (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
{ config, profile, pkgs, ... }:

let
  extensions =
    if profile == "darwin"
    then "Library/Application Support/Zed/extensions/installed"
    else ".local/share/zed/extensions/installed";
in
{
  files."${extensions}/flow-icons".source = pkgs.flow-icons;

  xdg.config.files."zed/settings.json".text = builtins.toJSON {
    # Appearance Settings ------------------------------------------------------

    theme = "Carbonfox";
    icon_theme = "Flow Dim";

    buffer_font_family = "Berkeley Mono";
    buffer_font_fallbacks = [ "Symbols Nerd Font Mono" ];
    buffer_font_features = { calt = true; };
    buffer_line_height = { custom = 1.5; };
    buffer_font_size = 12;

    ui_font_family = "Inter";
    ui_font_weight = 500;
    ui_font_size = 14;

    unnecessary_code_fade = 0.25;
    active_pane_modifiers = { inactive_opacity = 0.75; };
    collaboration_panel = { button = false; };
    image_viewer = { unit = "decimal"; };
    show_call_status_icon = false;

    toolbar = {
      code_actions = true;
      agent_review = false;
    };

    title_bar = {
      show_branch_status_icon = true;
      show_onboarding_banner = false;
      show_user_picture = false;
      show_user_menu = false;
      show_sign_in = false;
    };

    project_panel = {
      default_width = 300;
      entry_spacing = "standard";
      indent_guides = { show = "never"; };
      dock = "left";
    };

    outline_panel = {
      default_width = 300;
      folder_icons = false;
      file_icons = false;
      git_status = false;
      dock = "left";
    };

    git_panel = {
      default_width = 300;
      folder_icons = false;
      dock = "left";
    };

    tabs = {
      file_icons = true;
      git_status = false;
      show_diagnostics = "all";
    };

    terminal = {
      cursor_shape = "bar";
      scrollbar = { show = "auto"; };
      toolbar = { breadcrumbs = false; };
      env = { TERM = "xterm-256color"; };
    };

    # Editor Settings ----------------------------------------------------------

    use_smartcase_search = true;
    close_on_file_delete = true;
    default_open_behavior = "existing_window";
    cli_default_open_behavior = "new_window";
    when_closing_with_no_tabs = "keep_window_open";
    minimum_contrast_for_highlights = 50;
    on_last_window_closed = "quit_app";
    allow_rewrap = "in_selections";
    fast_scroll_sensitivity = 2.0;
    snippet_sort_order = "bottom";
    semantic_tokens = "combined";
    lsp_highlight_debounce = 60;
    inline_code_actions = false;
    autosave = "on_focus_change";
    wrap_guides = [ 80 ];

    auto_install_extensions = {
      git-firefly = true;
      carbonfox = true;
      html = true;
      toml = true;
      nix = true;
    };

    search = {
      center_on_match = true;
      regex = true;
    };

    # Agent Settings -----------------------------------------------------------

    agent = {
      dock = "right";
      default_width = 325;
      max_content_width = 650;
      enable_feedback = false;
      play_sound_when_agent_done = "always";
      notify_when_agent_waiting = "all_screens";
    };

    # Telemetry Settings -------------------------------------------------------

    telemetry = {
      anthropic_retention = false;
      diagnostics = false;
      metrics = false;
    };
  };
}