main
 1{den, ...}: {
 2  den.aspects.dev.includes = [den.aspects.dev.xdg];
 3  den.aspects.dev.xdg = {
 4    includes = with den.aspects.dev.xdg; [
 5      go
 6      npm
 7    ];
 8
 9    go = {
10      nixos.environment.variables = {
11        GOPATH = "\${XDG_DATA_HOME:-$HOME/.local/share}/go";
12      };
13    };
14
15    npm = {
16      nixos = {
17        environment.variables = {
18          NPM_CONFIG_CACHE = "\${XDG_CACHE_HOME:-$HOME/.cache}/npm";
19          NPM_CONFIG_TMP = "$XDG_RUNTIME_DIR/npm";
20          NPM_CONFIG_USERCONFIG = "\${XDG_CONFIG_HOME:-$HOME/.config}/npm/config";
21        };
22        environment.etc."npmrc".text = ''
23          prefix=''${XDG_DATA_HOME:-$HOME/.local/share}/npm
24          cache=''${XDG_CACHE_HOME:-$HOME/.cache}/npm
25          tmp=$XDG_RUNTIME_DIR/npm
26          init-module=''${XDG_CONFIG_HOME:-$HOME/.config}/npm/config/npm-init.js
27        '';
28      };
29    };
30  };
31}