aboutsummaryrefslogtreecommitdiff
path: root/modules/misc/pam.nix
blob: f54f4b95089ca4169f1301ce290d2b7473462ae5 (plain)
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
{ config, lib, pkgs, ... }:

with lib;

let

  vars = config.pam.sessionVariables;

in {
  meta.maintainers = [ maintainers.rycee ];

  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
        <citerefentry>
          <refentrytitle>pam_env.conf</refentrytitle>
          <manvolnum>5</manvolnum>
        </citerefentry>.
      '';
    };
  };

  config = mkIf (vars != { }) {
    home.file.".pam_environment".text = concatStringsSep "\n"
      (mapAttrsToList (n: v: ''${n} OVERRIDE="${toString v}"'') vars) + "\n";
  };
}