aboutsummaryrefslogtreecommitdiff
path: root/home-manager/modules/programs/vscode.nix
diff options
context:
space:
mode:
authorKatharina Fey <kookie@spacekookie.de>2020-02-03 10:05:30 +0100
committerKatharina Fey <kookie@spacekookie.de>2020-02-03 10:05:30 +0100
commitc488527c95c874d3b8743c915173ad7bfb05d5af (patch)
tree2b874dc5606a9dff44096a5e8557f00dc52ac2b6 /home-manager/modules/programs/vscode.nix
parent899a451e08f7d6d2c8214d119c2a0316849a0ed4 (diff)
parent6cc4fd6ede4909226cb81d3475834251ed1b7210 (diff)
Merge commit '6cc4fd6ede4909226cb81d3475834251ed1b7210'
Diffstat (limited to 'home-manager/modules/programs/vscode.nix')
-rw-r--r--home-manager/modules/programs/vscode.nix30
1 files changed, 21 insertions, 9 deletions
diff --git a/home-manager/modules/programs/vscode.nix b/home-manager/modules/programs/vscode.nix
index fdaea0ba4fe..cf7ac722210 100644
--- a/home-manager/modules/programs/vscode.nix
+++ b/home-manager/modules/programs/vscode.nix
@@ -11,7 +11,13 @@ let
configDir = {
"vscode" = "Code";
"vscode-insiders" = "Code - Insiders";
- "vscodium" = "Codium";
+ "vscodium" = "VSCodium";
+ }.${vscodePname};
+
+ extensionDir = {
+ "vscode" = "vscode";
+ "vscode-insiders" = "vscode-insiders";
+ "vscodium" = "vscode-oss";
}.${vscodePname};
configFilePath =
@@ -21,7 +27,7 @@ let
"${config.xdg.configHome}/${configDir}/User/settings.json";
# TODO: On Darwin where are the extensions?
- extensionPath = ".${vscodePname}/extensions";
+ extensionPath = ".${extensionDir}/extensions";
in
{
@@ -71,18 +77,24 @@ in
# Adapted from https://discourse.nixos.org/t/vscode-extensions-setup/1801/2
home.file =
let
- toPaths = p:
- # Links every dir in p to the extension path.
- mapAttrsToList (k: v:
- {
- "${extensionPath}/${k}".source = "${p}/${k}";
- }) (builtins.readDir p);
+ toPaths = path:
+ let
+ p = "${path}/share/vscode/extensions";
+ in
+ # Links every dir in p to the extension path.
+ mapAttrsToList (k: v:
+ {
+ "${extensionPath}/${k}".source = "${p}/${k}";
+ }) (builtins.readDir p);
toSymlink = concatMap toPaths cfg.extensions;
in
foldr
(a: b: a // b)
{
- "${configFilePath}".text = builtins.toJSON cfg.userSettings;
+ "${configFilePath}" =
+ mkIf (cfg.userSettings != {}) {
+ text = builtins.toJSON cfg.userSettings;
+ };
}
toSymlink;
};