dotfiles

My PC Dotfiles & Website

modules/apps/vscode/default.nix (1339B)


 1## Visual Studio Code Editor ##
 2{config, ...}: let
 3  inherit (config) util;
 4  inherit (config.flake) files;
 5in {
 6  flake.modules.homeManager.vscode = {
 7    config,
 8    lib,
 9    pkgs,
10    osConfig ? {},
11    ...
12  }: let
13    font = config.stylix.fonts.monospace.name;
14    isGnome = osConfig.services.desktopManager.gnome.enable or false;
15    isWM = (osConfig.programs.hyprland.enable or false) || (osConfig.programs.niri.enable or false);
16  in {
17    imports = [
18      (import ./_mutable.nix {
19        program = "vscode";
20        configDir = "Code";
21      })
22    ];
23    xdg.mimeApps = let
24      mime = util.build.mime {
25        code = ["code.desktop"];
26        markdown = ["code.desktop"];
27        text = ["code.desktop"];
28      };
29    in {
30      defaultApplications = mime;
31      associations.added = mime;
32    };
33
34    programs.vscode = {
35      enable = true;
36      package = pkgs.vscode.override {
37        commandLineArgs = lib.optionalString pkgs.stdenv.hostPlatform.isLinux "--password-store=gnome-libsecret";
38      };
39
40      profiles.default = import ./_profile.nix {
41        inherit lib pkgs files font isGnome isWM;
42      };
43    };
44
45    home = {
46      persist.directories = [
47        ".config/Code"
48        ".vscode"
49        ".vscode-shared"
50      ];
51      packages = with pkgs; [
52        nixd
53        alejandra
54      ];
55    };
56  };
57}