{ 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; }; }