old
1{
2 # NOTE: the args not used in this file CAN NOT be removed!
3 # Just like haumea in `/outputs`.
4 lib,
5 mylib,
6 pkgs,
7 pkgs-unstable,
8 ...
9} @ args: let
10 baseExtensions = import ../baseExtensions.nix args;
11 baseMcp = import ../baseMcp.nix;
12 profilesList =
13 (map (path: import path args) (mylib.scanModules ./.))
14 ++ [
15 {
16 default = {
17 enableUpdateCheck = false;
18 enableExtensionUpdateCheck = false;
19 userSettings = {
20 # --- Editor Settings --- #
21 "editor.fontSize" = 16;
22 "editor.fontLigatures" = true;
23 "editor.guides.bracketPairs" = true;
24 "editor.formatOnSave" = true;
25 "editor.unicodeHighlight.allowedLocales"."zh-hans" = true;
26 "editor.lineNumbers" = "relative";
27 # --- Terminal Settings --- #
28 "terminal.integrated.fontSize" = 14;
29 "terminal.integrated.defaultProfile.linux" = "fish";
30 # --- Workbench Settings --- #
31 "workbench.colorTheme" = "Catppuccin Macchiato";
32 "workbench.iconTheme" = "material-icon-theme";
33 "workbench.startupEditor" = "none";
34 # --- Extension Settings --- #
35 "git.enabled" = false; # Disable git because I use jujutsu instead
36 # "GitCommitPlugin.ShowEmoji" = false;
37 # "GitCommitPlugin.MaxSubjectCharacters" = 25;
38 "github.copilot.advanced".useLanguageServer = true;
39 "nix.enableLanguageServer" = true;
40 "nix.serverPath" = "nixd";
41 "nix.serverSettings".nixd.formatting.command = ["alejandra"];
42 "evenBetterToml.formatter.alignEntries" = true;
43 "evenBetterToml.formatter.alignComments" = true;
44 "evenBetterToml.formatter.allowedBlankLines" = 1;
45 # --- Update Settings --- #
46 "extensions.autoCheckUpdates" = false;
47 "extensions.autoUpdate" = false;
48 "update.mode" = "none";
49 # --- Other Settings --- #
50 # Settings apply to all profiles
51 "telemetry.telemetryLevel" = "off";
52 "security.workspace.trust.untrustedFiles" = "open";
53 "window.newWindowProfile" = "Default";
54 "workbench.settings.applyToAllProfiles" = [
55 # -- Normal -- #
56 "editor.fontSize"
57 "editor.fontLigatures"
58 "editor.guides.bracketPairs"
59 "editor.formatOnSave"
60 "editor.lineNumbers"
61 "terminal.integrated.fontSize"
62 "terminal.integrated.defaultProfile.linux"
63 "workbench.colorTheme"
64 "workbench.iconTheme"
65 "workbench.startupEditor"
66 # -- Extension -- #
67 "git.enabled"
68 # "GitCommitPlugin.ShowEmoji"
69 # "GitCommitPlugin.MaxSubjectCharacters"
70 "github.copilot.advanced"
71 "nix.enableLanguageServer"
72 "nix.serverPath"
73 "nix.serverSettings"
74 "evenBetterToml.formatter.alignEntries"
75 "evenBetterToml.formatter.alignComments"
76 "evenBetterToml.formatter.allowedBlankLines"
77 ];
78 };
79 };
80 }
81 ];
82 profiles =
83 lib.mapAttrs
84 (_: v: (v
85 // {
86 extensions = v.extensions or [] ++ baseExtensions;
87 userMcp = {
88 servers = lib.mergeAttrs baseMcp.servers v.userMcp.servers or {};
89 inputs = v.userMcp.inputs or [] ++ baseMcp.inputs;
90 };
91 }))
92 (lib.mergeAttrsList profilesList);
93in {
94 catppuccin.vscode.profiles.default.icons.enable = false;
95 programs.vscode.profiles = profiles;
96}