35 lines
		
	
	
		
			602 B
		
	
	
	
		
			Nix
		
	
	
	
	
	
			
		
		
	
	
			35 lines
		
	
	
		
			602 B
		
	
	
	
		
			Nix
		
	
	
	
	
	
{ config, lib, ... }:
 | 
						|
 | 
						|
let
 | 
						|
  inherit (lib) mkOption mkIf types mapAttrsToList;
 | 
						|
  cfg = config.programs.dconf;
 | 
						|
 | 
						|
  mkDconfProfile = name: path:
 | 
						|
    { source = path; target = "dconf/profile/${name}"; };
 | 
						|
 | 
						|
in
 | 
						|
{
 | 
						|
  ###### interface
 | 
						|
 | 
						|
  options = {
 | 
						|
    programs.dconf = {
 | 
						|
 | 
						|
      profiles = mkOption {
 | 
						|
        type = types.attrsOf types.path;
 | 
						|
        default = {};
 | 
						|
        description = "Set of dconf profile files.";
 | 
						|
        internal = true;
 | 
						|
      };
 | 
						|
 | 
						|
    };
 | 
						|
  };
 | 
						|
 | 
						|
  ###### implementation
 | 
						|
 | 
						|
  config = mkIf (cfg.profiles != {}) {
 | 
						|
    environment.etc =
 | 
						|
      (mapAttrsToList mkDconfProfile cfg.profiles);
 | 
						|
  };
 | 
						|
 | 
						|
}
 |