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}