1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
{
config,
lib,
pkgs,
...
}:
let
inherit (lib) types;
cfg = config.environment;
in
{
options.environment = {
enable = lib.mkEnableOption "environment-related settings";
sessionVariables = lib.mkOption {
type = types.attrsOf types.str;
default = { };
};
};
config = lib.mkIf cfg.enable {
file.home.".profile".text = ''
source <(${pkgs.systemd}/lib/systemd/user-environment-generators/30-systemd-environment-d-generator)
'';
file.xdg_config."environment.d/60-custom-session-vars.conf".text =
let
vars = cfg.sessionVariables;
varEntries = lib.attrsets.mapAttrsToList (k: v: "${k}=${v}") vars;
varFileContent = builtins.concatStringsSep "\n" varEntries;
in
varFileContent;
};
}