dotfiles

My PC Dotfiles & Website

modules/apps/vscode/_mutable.nix (927B)


 1# https://gist.github.com/piousdeer/b29c272eaeba398b864da6abf6cb5daa
 2{
 3  program,
 4  configDir,
 5}: {
 6  config,
 7  lib,
 8  ...
 9}: let
10  userDir = "${config.xdg.configHome}/${configDir}/User";
11
12  configFilePath = "${userDir}/settings.json";
13  tasksFilePath = "${userDir}/tasks.json";
14  keybindingsFilePath = "${userDir}/keybindings.json";
15  snippetDir = "${userDir}/snippets";
16
17  cfg = config.programs.${program}.profiles.default;
18  pathsToMakeWritable = lib.flatten [
19    (lib.optional (cfg.userTasks != {}) tasksFilePath)
20    (lib.optional (cfg.userSettings != {}) configFilePath)
21    (lib.optional (cfg.keybindings != []) keybindingsFilePath)
22    (lib.optional (cfg.globalSnippets != {}) "${snippetDir}/global.code-snippets")
23    (lib.mapAttrsToList (language: _: "${snippetDir}/${language}.json") cfg.languageSnippets)
24  ];
25in {
26  home.file = lib.genAttrs pathsToMakeWritable (_: {
27    force = true;
28    mutable = true;
29  });
30}