From d7755de116850c4864613029abd15931471b66ea Mon Sep 17 00:00:00 2001 From: Robert Helgesson Date: Thu, 4 Jan 2018 16:11:23 +0100 Subject: [PATCH] pam: add option `pam.sessionVariables` --- modules/misc/pam.nix | 24 +++++++++++++++++++++--- 1 file changed, 21 insertions(+), 3 deletions(-) diff --git a/modules/misc/pam.nix b/modules/misc/pam.nix index 3bd0f2925..dfeaf2f33 100644 --- a/modules/misc/pam.nix +++ b/modules/misc/pam.nix @@ -6,17 +6,35 @@ let homeCfg = config.home; + vars = + optionalAttrs (homeCfg.sessionVariableSetter == "pam") homeCfg.sessionVariables + // config.pam.sessionVariables; + in { meta.maintainers = [ maintainers.rycee ]; - options = {}; + options = { + pam.sessionVariables = mkOption { + default = {}; + type = types.attrs; + example = { EDITOR = "vim"; }; + description = '' + Environment variables that will be set for the PAM session. + The variable values must be as described in + + pam_env.conf + 5 + . + ''; + }; + }; - config = mkIf (homeCfg.sessionVariableSetter == "pam") { + config = mkIf (vars != {}) { home.file.".pam_environment".text = concatStringsSep "\n" ( - mapAttrsToList (n: v: "${n} OVERRIDE=${v}") homeCfg.sessionVariables + mapAttrsToList (n: v: "${n} OVERRIDE=${toString v}") vars ) + "\n"; }; }