1{
2 traits,
3 lib,
4 ...
5}:
6lib.mkMerge [
7 {
8 programs.helix = {
9 enable = true;
10 languages.language = [
11 {
12 name = "yaml";
13 scope = "source.yaml";
14 indent = {
15 unit = " ";
16 tab-width = 2;
17 };
18 }
19 ];
20 };
21 }
22
23 (lib.mkIf traits.gui {
24 programs.zed-editor = {
25 enable = true;
26 userSettings = {
27 # crap disablement
28 agent = {
29 version = "1";
30 enabled = false;
31 };
32 features = {
33 edit_prediction_provider = "none"; # no copilot
34 };
35 telemetry = {
36 metrics = false;
37 };
38
39 # display
40 ui_font_size = 20;
41 buffer_font_size = 16;
42 buffer_font_family = "Fira Code";
43 buffer_font_weight = 500;
44 buffer_font_features.calt = false;
45
46 preferred_line_length = 120;
47 wrap_guides = [ 120 ];
48 show_whitespaces = "all";
49 indent_guides = {
50 enabled = true;
51 coloring = "indent_aware";
52 };
53 theme = {
54 mode = "system";
55 # light = "Catppuccin Latte";
56 dark = lib.mkForce "Catppuccin Mocha (pink)";
57 };
58 diagnostics.inline.enable = true;
59
60 # editing settings
61 base_keymap = "VSCode";
62 hard_tabs = true;
63 vim_mode = false;
64 autosave = "on_focus_change";
65
66 # nix stuff
67 load_direnv = "shell_hook";
68
69 # terminal
70 terminal.env = {
71 "TERM" = "xterm-256color"; # this is not set apparently
72 };
73 };
74 };
75 })
76]