Personal-use NixOS configuration
1{
2 lib,
3 pkgs,
4 ...
5}:
6
7let
8 biomePackage = pkgs.biome;
9in
10{
11 programs.zed-editor = {
12 enable = true;
13
14 extensions = [
15 "rust"
16
17 "nix"
18 "toml"
19 "json5"
20 "env"
21
22 "biome"
23
24 "catppuccin"
25 "catppuccin-icons"
26 ];
27
28 userSettings = {
29 theme = {
30 mode = "system";
31 light = "Catpuccin Frappé";
32 dark = "Catppuccin Macchiato";
33 };
34
35 icon_theme = {
36 mode = "system";
37 light = "Catppuccin Frappé";
38 dark = "Catppuccin Macchiato";
39 };
40
41 buffer_font_family = "Jetbrains Mono";
42
43 terminal = {
44 font_family = "Jetbrains Mono";
45 };
46
47 languages = {
48 Nix = {
49 language_servers = [
50 "nil"
51 "!nixd"
52 ];
53
54 formatter.external = {
55 command = "nixfmt";
56 };
57 };
58 };
59
60 lsp = {
61 nil.settings = {
62 nix = {
63 # TODO: This is way too much
64 maxMemoryMb = 16384;
65
66 flake = {
67 autoArchive = true;
68 autoEvalInputs = true;
69 };
70 };
71 };
72
73 biome.binary = {
74 path = lib.getExe biomePackage;
75
76 arguments = [ "lsp-proxy" ];
77 };
78 };
79 };
80
81 extraPackages = with pkgs; [
82 rust-analyzer
83
84 bun
85 nodejs
86 typescript-language-server
87 package-version-server
88
89 nil
90 nixfmt-rfc-style
91
92 biomePackage
93 eslint
94 ];
95 };
96
97 home.packages = with pkgs; [
98 jetbrains-mono
99 ];
100}