rename plusultra to metacfg
Signed-off-by: Harald Hoyer <harald@hoyer.xyz>
This commit is contained in:
		
							parent
							
								
									b22607a4df
								
							
						
					
					
						commit
						04f08d679e
					
				
					 48 changed files with 149 additions and 149 deletions
				
			
		| 
						 | 
					@ -58,11 +58,11 @@
 | 
				
			||||||
        inherit inputs;
 | 
					        inherit inputs;
 | 
				
			||||||
        src = ./.;
 | 
					        src = ./.;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        snowfall.namespace = "plusultra";
 | 
					        snowfall.namespace = "metacfg";
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        snowfall = {
 | 
					        snowfall = {
 | 
				
			||||||
          meta = {
 | 
					          meta = {
 | 
				
			||||||
            name = "plusultra";
 | 
					            name = "metacfg";
 | 
				
			||||||
            title = "Plus Ultra";
 | 
					            title = "Plus Ultra";
 | 
				
			||||||
          };
 | 
					          };
 | 
				
			||||||
        };
 | 
					        };
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -11,7 +11,7 @@
 | 
				
			||||||
    sessionPath = [ "$HOME/bin" ];
 | 
					    sessionPath = [ "$HOME/bin" ];
 | 
				
			||||||
  };
 | 
					  };
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  plusultra = {
 | 
					  metacfg = {
 | 
				
			||||||
    cli-apps = {
 | 
					    cli-apps = {
 | 
				
			||||||
      bash.enable = true;
 | 
					      bash.enable = true;
 | 
				
			||||||
      fish.enable = true;
 | 
					      fish.enable = true;
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -19,7 +19,7 @@
 | 
				
			||||||
    ];
 | 
					    ];
 | 
				
			||||||
  };
 | 
					  };
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  plusultra = {
 | 
					  metacfg = {
 | 
				
			||||||
    cli-apps = {
 | 
					    cli-apps = {
 | 
				
			||||||
      bash.enable = true;
 | 
					      bash.enable = true;
 | 
				
			||||||
      fish.enable = true;
 | 
					      fish.enable = true;
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -5,7 +5,7 @@
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
  home.sessionPath = [ "$HOME/bin" ];
 | 
					  home.sessionPath = [ "$HOME/bin" ];
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  plusultra = {
 | 
					  metacfg = {
 | 
				
			||||||
    user = {
 | 
					    user = {
 | 
				
			||||||
      enable = true;
 | 
					      enable = true;
 | 
				
			||||||
      name = config.snowfallorg.user.name;
 | 
					      name = config.snowfallorg.user.name;
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -5,7 +5,7 @@
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
  home.sessionPath = [ "$HOME/bin" ];
 | 
					  home.sessionPath = [ "$HOME/bin" ];
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  plusultra = {
 | 
					  metacfg = {
 | 
				
			||||||
    user = {
 | 
					    user = {
 | 
				
			||||||
      enable = true;
 | 
					      enable = true;
 | 
				
			||||||
      name = config.snowfallorg.user.name;
 | 
					      name = config.snowfallorg.user.name;
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -5,7 +5,7 @@
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
  home.sessionPath = [ "$HOME/bin" ];
 | 
					  home.sessionPath = [ "$HOME/bin" ];
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  plusultra = {
 | 
					  metacfg = {
 | 
				
			||||||
    user = {
 | 
					    user = {
 | 
				
			||||||
      enable = true;
 | 
					      enable = true;
 | 
				
			||||||
      name = config.snowfallorg.user.name;
 | 
					      name = config.snowfallorg.user.name;
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -5,7 +5,7 @@
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
  home.sessionPath = [ "$HOME/bin" ];
 | 
					  home.sessionPath = [ "$HOME/bin" ];
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  plusultra = {
 | 
					  metacfg = {
 | 
				
			||||||
    user = {
 | 
					    user = {
 | 
				
			||||||
      enable = true;
 | 
					      enable = true;
 | 
				
			||||||
      name = config.snowfallorg.user.name;
 | 
					      name = config.snowfallorg.user.name;
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -24,7 +24,7 @@ rec {
 | 
				
			||||||
        (result: name:
 | 
					        (result: name:
 | 
				
			||||||
          let
 | 
					          let
 | 
				
			||||||
            host = hosts.${name};
 | 
					            host = hosts.${name};
 | 
				
			||||||
            user = host.config.plusultra.user.name or null;
 | 
					            user = host.config.metacfg.user.name or null;
 | 
				
			||||||
            inherit (host.pkgs) system;
 | 
					            inherit (host.pkgs) system;
 | 
				
			||||||
          in
 | 
					          in
 | 
				
			||||||
          result // {
 | 
					          result // {
 | 
				
			||||||
| 
						 | 
					@ -37,7 +37,7 @@ rec {
 | 
				
			||||||
                  user = "root";
 | 
					                  user = "root";
 | 
				
			||||||
                  sshUser = user;
 | 
					                  sshUser = user;
 | 
				
			||||||
                } // lib.optionalAttrs
 | 
					                } // lib.optionalAttrs
 | 
				
			||||||
                  (host.config.plusultra.security.doas.enable or false)
 | 
					                  (host.config.metacfg.security.doas.enable or false)
 | 
				
			||||||
                  {
 | 
					                  {
 | 
				
			||||||
                    sudo = "doas -u";
 | 
					                    sudo = "doas -u";
 | 
				
			||||||
                  };
 | 
					                  };
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1,16 +1,16 @@
 | 
				
			||||||
{ options, config, pkgs, lib, inputs, ... }:
 | 
					{ options, config, pkgs, lib, inputs, ... }:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
with lib;
 | 
					with lib;
 | 
				
			||||||
with lib.plusultra;
 | 
					with lib.metacfg;
 | 
				
			||||||
let
 | 
					let
 | 
				
			||||||
  cfg = config.plusultra.home;
 | 
					  cfg = config.metacfg.home;
 | 
				
			||||||
in
 | 
					in
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
  # imports = with inputs; [
 | 
					  # imports = with inputs; [
 | 
				
			||||||
  #   home-manager.darwinModules.home-manager
 | 
					  #   home-manager.darwinModules.home-manager
 | 
				
			||||||
  # ];
 | 
					  # ];
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  options.plusultra.home = with types; {
 | 
					  options.metacfg.home = with types; {
 | 
				
			||||||
    file = mkOpt attrs { }
 | 
					    file = mkOpt attrs { }
 | 
				
			||||||
      "A set of files to be managed by home-manager's <option>home.file</option>.";
 | 
					      "A set of files to be managed by home-manager's <option>home.file</option>.";
 | 
				
			||||||
    configFile = mkOpt attrs { }
 | 
					    configFile = mkOpt attrs { }
 | 
				
			||||||
| 
						 | 
					@ -20,21 +20,21 @@ in
 | 
				
			||||||
  };
 | 
					  };
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  config = {
 | 
					  config = {
 | 
				
			||||||
    plusultra.home.extraOptions = {
 | 
					    metacfg.home.extraOptions = {
 | 
				
			||||||
      home.stateVersion = mkDefault "23.11";
 | 
					      home.stateVersion = mkDefault "23.11";
 | 
				
			||||||
      home.file = mkAliasDefinitions options.plusultra.home.file;
 | 
					      home.file = mkAliasDefinitions options.metacfg.home.file;
 | 
				
			||||||
      xdg.enable = true;
 | 
					      xdg.enable = true;
 | 
				
			||||||
      xdg.configFile = mkAliasDefinitions options.plusultra.home.configFile;
 | 
					      xdg.configFile = mkAliasDefinitions options.metacfg.home.configFile;
 | 
				
			||||||
    };
 | 
					    };
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    snowfallorg.users.${config.plusultra.user.name}.home.config = mkAliasDefinitions options.plusultra.home.extraOptions;
 | 
					    snowfallorg.users.${config.metacfg.user.name}.home.config = mkAliasDefinitions options.metacfg.home.extraOptions;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    home-manager = {
 | 
					    home-manager = {
 | 
				
			||||||
      useUserPackages = true;
 | 
					      useUserPackages = true;
 | 
				
			||||||
      useGlobalPkgs = true;
 | 
					      useGlobalPkgs = true;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
      # users.${config.plusultra.user.name} = args:
 | 
					      # users.${config.metacfg.user.name} = args:
 | 
				
			||||||
      #   mkAliasDefinitions options.plusultra.home.extraOptions;
 | 
					      #   mkAliasDefinitions options.metacfg.home.extraOptions;
 | 
				
			||||||
    };
 | 
					    };
 | 
				
			||||||
  };
 | 
					  };
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -5,11 +5,11 @@
 | 
				
			||||||
, ...
 | 
					, ...
 | 
				
			||||||
}:
 | 
					}:
 | 
				
			||||||
with lib;
 | 
					with lib;
 | 
				
			||||||
with lib.plusultra; let
 | 
					with lib.metacfg; let
 | 
				
			||||||
  cfg = config.plusultra.nix;
 | 
					  cfg = config.metacfg.nix;
 | 
				
			||||||
in
 | 
					in
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
  options.plusultra.nix = with types; {
 | 
					  options.metacfg.nix = with types; {
 | 
				
			||||||
    enable = mkBoolOpt true "Whether or not to manage nix configuration.";
 | 
					    enable = mkBoolOpt true "Whether or not to manage nix configuration.";
 | 
				
			||||||
    package = mkOpt package pkgs.nixUnstable "Which nix package to use.";
 | 
					    package = mkOpt package pkgs.nixUnstable "Which nix package to use.";
 | 
				
			||||||
  };
 | 
					  };
 | 
				
			||||||
| 
						 | 
					@ -24,7 +24,7 @@ in
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    nix =
 | 
					    nix =
 | 
				
			||||||
      let
 | 
					      let
 | 
				
			||||||
        users = [ "root" config.plusultra.user.name ];
 | 
					        users = [ "root" config.metacfg.user.name ];
 | 
				
			||||||
      in
 | 
					      in
 | 
				
			||||||
      {
 | 
					      {
 | 
				
			||||||
        package = cfg.package;
 | 
					        package = cfg.package;
 | 
				
			||||||
| 
						 | 
					@ -53,7 +53,7 @@ in
 | 
				
			||||||
          extra-nix-path = "nixpkgs=flake:nixpkgs";
 | 
					          extra-nix-path = "nixpkgs=flake:nixpkgs";
 | 
				
			||||||
          build-users-group = "nixbld";
 | 
					          build-users-group = "nixbld";
 | 
				
			||||||
        };
 | 
					        };
 | 
				
			||||||
        #// (lib.optionalAttrs config.plusultra.tools.direnv.enable {
 | 
					        #// (lib.optionalAttrs config.metacfg.tools.direnv.enable {
 | 
				
			||||||
        #  keep-outputs = true;
 | 
					        #  keep-outputs = true;
 | 
				
			||||||
        #  keep-derivations = true;
 | 
					        #  keep-derivations = true;
 | 
				
			||||||
        #});
 | 
					        #});
 | 
				
			||||||
| 
						 | 
					@ -62,7 +62,7 @@ in
 | 
				
			||||||
          automatic = true;
 | 
					          automatic = true;
 | 
				
			||||||
          interval = { Day = 7; };
 | 
					          interval = { Day = 7; };
 | 
				
			||||||
          options = "--delete-older-than 30d";
 | 
					          options = "--delete-older-than 30d";
 | 
				
			||||||
          user = config.plusultra.user.name;
 | 
					          user = config.metacfg.user.name;
 | 
				
			||||||
        };
 | 
					        };
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        # flake-utils-plus
 | 
					        # flake-utils-plus
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -2,11 +2,11 @@
 | 
				
			||||||
 | 
					
 | 
				
			||||||
let
 | 
					let
 | 
				
			||||||
  inherit (lib) types mkEnableOption mkIf;
 | 
					  inherit (lib) types mkEnableOption mkIf;
 | 
				
			||||||
  inherit (lib.plusultra) mkOpt;
 | 
					  inherit (lib.metacfg) mkOpt;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  cfg = config.plusultra.security.gpg;
 | 
					  cfg = config.metacfg.security.gpg;
 | 
				
			||||||
  gpg = config.plusultra.security.gpg;
 | 
					  gpg = config.metacfg.security.gpg;
 | 
				
			||||||
  user = config.plusultra.user;
 | 
					  user = config.metacfg.user;
 | 
				
			||||||
  gpgConf = "${inputs.gpg-base-conf}/gpg.conf";
 | 
					  gpgConf = "${inputs.gpg-base-conf}/gpg.conf";
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  gpgAgentConf = ''
 | 
					  gpgAgentConf = ''
 | 
				
			||||||
| 
						 | 
					@ -43,7 +43,7 @@ let
 | 
				
			||||||
  '';
 | 
					  '';
 | 
				
			||||||
in
 | 
					in
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
  options.plusultra.security.gpg = {
 | 
					  options.metacfg.security.gpg = {
 | 
				
			||||||
    enable = mkEnableOption "GPG";
 | 
					    enable = mkEnableOption "GPG";
 | 
				
			||||||
    agentTimeout = mkOpt types.int 5 "The amount of time to wait before continuing with shell init.";
 | 
					    agentTimeout = mkOpt types.int 5 "The amount of time to wait before continuing with shell init.";
 | 
				
			||||||
  };
 | 
					  };
 | 
				
			||||||
| 
						 | 
					@ -72,7 +72,7 @@ in
 | 
				
			||||||
      enableSSHSupport = true;
 | 
					      enableSSHSupport = true;
 | 
				
			||||||
    };
 | 
					    };
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    plusultra.home.file = {
 | 
					    metacfg.home.file = {
 | 
				
			||||||
      ".gnupg/.keep".text = "";
 | 
					      ".gnupg/.keep".text = "";
 | 
				
			||||||
 | 
					
 | 
				
			||||||
      ".gnupg/yubikey-guide.md".source = guide;
 | 
					      ".gnupg/yubikey-guide.md".source = guide;
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -2,12 +2,12 @@
 | 
				
			||||||
 | 
					
 | 
				
			||||||
let
 | 
					let
 | 
				
			||||||
  inherit (lib) types mkIf;
 | 
					  inherit (lib) types mkIf;
 | 
				
			||||||
  inherit (lib.plusultra) mkOpt enabled;
 | 
					  inherit (lib.metacfg) mkOpt enabled;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  cfg = config.plusultra.services.nix-daemon;
 | 
					  cfg = config.metacfg.services.nix-daemon;
 | 
				
			||||||
in
 | 
					in
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
  options.plusultra.services.nix-daemon = {
 | 
					  options.metacfg.services.nix-daemon = {
 | 
				
			||||||
    enable = mkOpt types.bool true "Whether to enable the Nix daemon.";
 | 
					    enable = mkOpt types.bool true "Whether to enable the Nix daemon.";
 | 
				
			||||||
  };
 | 
					  };
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1,19 +1,19 @@
 | 
				
			||||||
{ options, config, lib, pkgs, ... }:
 | 
					{ options, config, lib, pkgs, ... }:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
with lib;
 | 
					with lib;
 | 
				
			||||||
with lib.plusultra;
 | 
					with lib.metacfg;
 | 
				
			||||||
let
 | 
					let
 | 
				
			||||||
  cfg = config.plusultra.suites.common;
 | 
					  cfg = config.metacfg.suites.common;
 | 
				
			||||||
in
 | 
					in
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
  options.plusultra.suites.common = with types; {
 | 
					  options.metacfg.suites.common = with types; {
 | 
				
			||||||
    enable = mkBoolOpt false "Whether or not to enable common configuration.";
 | 
					    enable = mkBoolOpt false "Whether or not to enable common configuration.";
 | 
				
			||||||
  };
 | 
					  };
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  config = mkIf cfg.enable {
 | 
					  config = mkIf cfg.enable {
 | 
				
			||||||
    programs.fish = enabled;
 | 
					    programs.fish = enabled;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    plusultra = {
 | 
					    metacfg = {
 | 
				
			||||||
      nix = enabled;
 | 
					      nix = enabled;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
      system = {
 | 
					      system = {
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1,11 +1,11 @@
 | 
				
			||||||
{ options, config, pkgs, lib, ... }:
 | 
					{ options, config, pkgs, lib, ... }:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
with lib;
 | 
					with lib;
 | 
				
			||||||
with lib.plusultra;
 | 
					with lib.metacfg;
 | 
				
			||||||
let cfg = config.plusultra.system.fonts;
 | 
					let cfg = config.metacfg.system.fonts;
 | 
				
			||||||
in
 | 
					in
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
  options.plusultra.system.fonts = with types; {
 | 
					  options.metacfg.system.fonts = with types; {
 | 
				
			||||||
    enable = mkBoolOpt false "Whether or not to manage fonts.";
 | 
					    enable = mkBoolOpt false "Whether or not to manage fonts.";
 | 
				
			||||||
    fonts = mkOpt (listOf package) [ ] "Custom font packages to install.";
 | 
					    fonts = mkOpt (listOf package) [ ] "Custom font packages to install.";
 | 
				
			||||||
  };
 | 
					  };
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1,11 +1,11 @@
 | 
				
			||||||
{ options, config, pkgs, lib, ... }:
 | 
					{ options, config, pkgs, lib, ... }:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
with lib;
 | 
					with lib;
 | 
				
			||||||
with lib.plusultra;
 | 
					with lib.metacfg;
 | 
				
			||||||
let cfg = config.plusultra.system.interface;
 | 
					let cfg = config.metacfg.system.interface;
 | 
				
			||||||
in
 | 
					in
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
  options.plusultra.system.interface = with types; {
 | 
					  options.metacfg.system.interface = with types; {
 | 
				
			||||||
    enable = mkEnableOption "macOS interface";
 | 
					    enable = mkEnableOption "macOS interface";
 | 
				
			||||||
  };
 | 
					  };
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -24,6 +24,6 @@ in
 | 
				
			||||||
      };
 | 
					      };
 | 
				
			||||||
    };
 | 
					    };
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    plusultra.home.file.".hushlogin".text = "";
 | 
					    metacfg.home.file.".hushlogin".text = "";
 | 
				
			||||||
  };
 | 
					  };
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -5,15 +5,15 @@
 | 
				
			||||||
}:
 | 
					}:
 | 
				
			||||||
let
 | 
					let
 | 
				
			||||||
  inherit (lib) types mkIf mkDefault;
 | 
					  inherit (lib) types mkIf mkDefault;
 | 
				
			||||||
  inherit (lib.plusultra) mkOpt;
 | 
					  inherit (lib.metacfg) mkOpt;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  cfg = config.plusultra.user;
 | 
					  cfg = config.metacfg.user;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  is-linux = pkgs.stdenv.isLinux;
 | 
					  is-linux = pkgs.stdenv.isLinux;
 | 
				
			||||||
  is-darwin = pkgs.stdenv.isDarwin;
 | 
					  is-darwin = pkgs.stdenv.isDarwin;
 | 
				
			||||||
in
 | 
					in
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
  options.plusultra.user = {
 | 
					  options.metacfg.user = {
 | 
				
			||||||
    name = mkOpt types.str "harald" "The user account.";
 | 
					    name = mkOpt types.str "harald" "The user account.";
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    fullName = mkOpt types.str "Harald Hoyer" "The full name of the user.";
 | 
					    fullName = mkOpt types.str "Harald Hoyer" "The full name of the user.";
 | 
				
			||||||
| 
						 | 
					@ -26,11 +26,11 @@ in
 | 
				
			||||||
    users.users.${cfg.name} = {
 | 
					    users.users.${cfg.name} = {
 | 
				
			||||||
      # NOTE: Setting the uid here is required for another
 | 
					      # NOTE: Setting the uid here is required for another
 | 
				
			||||||
      # module to evaluate successfully since it reads
 | 
					      # module to evaluate successfully since it reads
 | 
				
			||||||
      # `users.users.${plusultra.user.name}.uid`.
 | 
					      # `users.users.${metacfg.user.name}.uid`.
 | 
				
			||||||
      uid = mkIf (cfg.uid != null) cfg.uid;
 | 
					      uid = mkIf (cfg.uid != null) cfg.uid;
 | 
				
			||||||
    };
 | 
					    };
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    snowfallorg.users.${config.plusultra.user.name}.home.config = {
 | 
					    snowfallorg.users.${config.metacfg.user.name}.home.config = {
 | 
				
			||||||
      home = {
 | 
					      home = {
 | 
				
			||||||
        file = {
 | 
					        file = {
 | 
				
			||||||
          ".profile".text = ''
 | 
					          ".profile".text = ''
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -6,10 +6,10 @@
 | 
				
			||||||
let
 | 
					let
 | 
				
			||||||
  inherit (lib) mkEnableOption mkIf;
 | 
					  inherit (lib) mkEnableOption mkIf;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  cfg = config.plusultra.cli-apps.bash;
 | 
					  cfg = config.metacfg.cli-apps.bash;
 | 
				
			||||||
in
 | 
					in
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
  options.plusultra.cli-apps.bash = {
 | 
					  options.metacfg.cli-apps.bash = {
 | 
				
			||||||
    enable = mkEnableOption "BASH shell";
 | 
					    enable = mkEnableOption "BASH shell";
 | 
				
			||||||
  };
 | 
					  };
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -4,11 +4,11 @@
 | 
				
			||||||
, ...
 | 
					, ...
 | 
				
			||||||
}:
 | 
					}:
 | 
				
			||||||
with lib;
 | 
					with lib;
 | 
				
			||||||
with lib.plusultra; let
 | 
					with lib.metacfg; let
 | 
				
			||||||
  cfg = config.plusultra.cli-apps.bat;
 | 
					  cfg = config.metacfg.cli-apps.bat;
 | 
				
			||||||
in
 | 
					in
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
  options.plusultra.cli-apps.bat = {
 | 
					  options.metacfg.cli-apps.bat = {
 | 
				
			||||||
    enable = mkEnableOption "bat";
 | 
					    enable = mkEnableOption "bat";
 | 
				
			||||||
  };
 | 
					  };
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -6,10 +6,10 @@
 | 
				
			||||||
let
 | 
					let
 | 
				
			||||||
  inherit (lib) mkEnableOption mkIf;
 | 
					  inherit (lib) mkEnableOption mkIf;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  cfg = config.plusultra.cli-apps.fish;
 | 
					  cfg = config.metacfg.cli-apps.fish;
 | 
				
			||||||
in
 | 
					in
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
  options.plusultra.cli-apps.fish = {
 | 
					  options.metacfg.cli-apps.fish = {
 | 
				
			||||||
    enable = mkEnableOption "FISH shell";
 | 
					    enable = mkEnableOption "FISH shell";
 | 
				
			||||||
  };
 | 
					  };
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -2,12 +2,12 @@
 | 
				
			||||||
 | 
					
 | 
				
			||||||
let
 | 
					let
 | 
				
			||||||
  inherit (lib) mkEnableOption mkIf;
 | 
					  inherit (lib) mkEnableOption mkIf;
 | 
				
			||||||
  inherit (lib.plusultra) enabled;
 | 
					  inherit (lib.metacfg) enabled;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  cfg = config.plusultra.cli-apps.home-manager;
 | 
					  cfg = config.metacfg.cli-apps.home-manager;
 | 
				
			||||||
in
 | 
					in
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
  options.plusultra.cli-apps.home-manager = {
 | 
					  options.metacfg.cli-apps.home-manager = {
 | 
				
			||||||
    enable = mkEnableOption "home-manager";
 | 
					    enable = mkEnableOption "home-manager";
 | 
				
			||||||
  };
 | 
					  };
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -3,10 +3,10 @@
 | 
				
			||||||
let
 | 
					let
 | 
				
			||||||
  inherit (lib) mkEnableOption mkIf;
 | 
					  inherit (lib) mkEnableOption mkIf;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  cfg = config.plusultra.cli-apps.neovim;
 | 
					  cfg = config.metacfg.cli-apps.neovim;
 | 
				
			||||||
in
 | 
					in
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
  options.plusultra.cli-apps.neovim = {
 | 
					  options.metacfg.cli-apps.neovim = {
 | 
				
			||||||
    enable = mkEnableOption "Neovim";
 | 
					    enable = mkEnableOption "Neovim";
 | 
				
			||||||
  };
 | 
					  };
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -6,10 +6,10 @@
 | 
				
			||||||
let
 | 
					let
 | 
				
			||||||
  inherit (lib) mkEnableOption mkIf;
 | 
					  inherit (lib) mkEnableOption mkIf;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  cfg = config.plusultra.cli-apps.starship;
 | 
					  cfg = config.metacfg.cli-apps.starship;
 | 
				
			||||||
in
 | 
					in
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
  options.plusultra.cli-apps.starship = {
 | 
					  options.metacfg.cli-apps.starship = {
 | 
				
			||||||
    enable = mkEnableOption "starship";
 | 
					    enable = mkEnableOption "starship";
 | 
				
			||||||
  };
 | 
					  };
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -4,11 +4,11 @@
 | 
				
			||||||
, ...
 | 
					, ...
 | 
				
			||||||
}:
 | 
					}:
 | 
				
			||||||
with lib;
 | 
					with lib;
 | 
				
			||||||
with lib.plusultra; let
 | 
					with lib.metacfg; let
 | 
				
			||||||
  cfg = config.plusultra.cli-apps.tmux;
 | 
					  cfg = config.metacfg.cli-apps.tmux;
 | 
				
			||||||
in
 | 
					in
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
  options.plusultra.cli-apps.tmux = {
 | 
					  options.metacfg.cli-apps.tmux = {
 | 
				
			||||||
    enable = mkEnableOption "Tmux";
 | 
					    enable = mkEnableOption "Tmux";
 | 
				
			||||||
  };
 | 
					  };
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -2,10 +2,10 @@
 | 
				
			||||||
 | 
					
 | 
				
			||||||
let
 | 
					let
 | 
				
			||||||
  inherit (lib) types;
 | 
					  inherit (lib) types;
 | 
				
			||||||
  inherit (lib.plusultra) mkOpt;
 | 
					  inherit (lib.metacfg) mkOpt;
 | 
				
			||||||
in
 | 
					in
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
  options.plusultra.host = {
 | 
					  options.metacfg.host = {
 | 
				
			||||||
    name = mkOpt (types.nullOr types.str) host "The host name.";
 | 
					    name = mkOpt (types.nullOr types.str) host "The host name.";
 | 
				
			||||||
  };
 | 
					  };
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -6,10 +6,10 @@
 | 
				
			||||||
let
 | 
					let
 | 
				
			||||||
  inherit (lib) mkEnableOption mkIf;
 | 
					  inherit (lib) mkEnableOption mkIf;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  cfg = config.plusultra.tools.alacritty;
 | 
					  cfg = config.metacfg.tools.alacritty;
 | 
				
			||||||
in
 | 
					in
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
  options.plusultra.tools.alacritty = {
 | 
					  options.metacfg.tools.alacritty = {
 | 
				
			||||||
    enable = mkEnableOption "alacritty";
 | 
					    enable = mkEnableOption "alacritty";
 | 
				
			||||||
  };
 | 
					  };
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1,11 +1,11 @@
 | 
				
			||||||
{ options, config, lib, pkgs, ... }:
 | 
					{ options, config, lib, pkgs, ... }:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
with lib;
 | 
					with lib;
 | 
				
			||||||
with lib.plusultra;
 | 
					with lib.metacfg;
 | 
				
			||||||
let cfg = config.plusultra.tools.direnv;
 | 
					let cfg = config.metacfg.tools.direnv;
 | 
				
			||||||
in
 | 
					in
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
  options.plusultra.tools.direnv = with types; {
 | 
					  options.metacfg.tools.direnv = with types; {
 | 
				
			||||||
    enable = mkBoolOpt false "Whether or not to enable direnv.";
 | 
					    enable = mkBoolOpt false "Whether or not to enable direnv.";
 | 
				
			||||||
  };
 | 
					  };
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -2,13 +2,13 @@
 | 
				
			||||||
 | 
					
 | 
				
			||||||
let
 | 
					let
 | 
				
			||||||
  inherit (lib) types mkEnableOption mkIf;
 | 
					  inherit (lib) types mkEnableOption mkIf;
 | 
				
			||||||
  inherit (lib.plusultra) mkOpt enabled;
 | 
					  inherit (lib.metacfg) mkOpt enabled;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  cfg = config.plusultra.tools.git;
 | 
					  cfg = config.metacfg.tools.git;
 | 
				
			||||||
  user = config.plusultra.user;
 | 
					  user = config.metacfg.user;
 | 
				
			||||||
in
 | 
					in
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
  options.plusultra.tools.git = {
 | 
					  options.metacfg.tools.git = {
 | 
				
			||||||
    enable = mkEnableOption "Git";
 | 
					    enable = mkEnableOption "Git";
 | 
				
			||||||
    userName = mkOpt types.str user.fullName "The name to configure git with.";
 | 
					    userName = mkOpt types.str user.fullName "The name to configure git with.";
 | 
				
			||||||
    userEmail = mkOpt types.str user.email "The email to configure git with.";
 | 
					    userEmail = mkOpt types.str user.email "The email to configure git with.";
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1,11 +1,11 @@
 | 
				
			||||||
{ options, config, lib, pkgs, ... }:
 | 
					{ options, config, lib, pkgs, ... }:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
with lib;
 | 
					with lib;
 | 
				
			||||||
with lib.plusultra;
 | 
					with lib.metacfg;
 | 
				
			||||||
let cfg = config.plusultra.tools.jetbrains;
 | 
					let cfg = config.metacfg.tools.jetbrains;
 | 
				
			||||||
in
 | 
					in
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
  options.plusultra.tools.jetbrains = with types; {
 | 
					  options.metacfg.tools.jetbrains = with types; {
 | 
				
			||||||
    enable = mkBoolOpt false "Whether or not to enable jetbrains.";
 | 
					    enable = mkBoolOpt false "Whether or not to enable jetbrains.";
 | 
				
			||||||
  };
 | 
					  };
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -2,10 +2,10 @@
 | 
				
			||||||
 | 
					
 | 
				
			||||||
let
 | 
					let
 | 
				
			||||||
  inherit (lib) types mkEnableOption mkIf;
 | 
					  inherit (lib) types mkEnableOption mkIf;
 | 
				
			||||||
  cfg = config.plusultra.tools.ssh;
 | 
					  cfg = config.metacfg.tools.ssh;
 | 
				
			||||||
in
 | 
					in
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
  options.plusultra.tools.ssh = {
 | 
					  options.metacfg.tools.ssh = {
 | 
				
			||||||
    enable = mkEnableOption "SSH";
 | 
					    enable = mkEnableOption "SSH";
 | 
				
			||||||
  };
 | 
					  };
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -2,9 +2,9 @@
 | 
				
			||||||
 | 
					
 | 
				
			||||||
let
 | 
					let
 | 
				
			||||||
  inherit (lib) types mkIf mkDefault mkMerge;
 | 
					  inherit (lib) types mkIf mkDefault mkMerge;
 | 
				
			||||||
  inherit (lib.plusultra) mkOpt;
 | 
					  inherit (lib.metacfg) mkOpt;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  cfg = config.plusultra.user;
 | 
					  cfg = config.metacfg.user;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  is-linux = pkgs.stdenv.isLinux;
 | 
					  is-linux = pkgs.stdenv.isLinux;
 | 
				
			||||||
  is-darwin = pkgs.stdenv.isDarwin;
 | 
					  is-darwin = pkgs.stdenv.isDarwin;
 | 
				
			||||||
| 
						 | 
					@ -18,7 +18,7 @@ let
 | 
				
			||||||
      "/home/${cfg.name}";
 | 
					      "/home/${cfg.name}";
 | 
				
			||||||
in
 | 
					in
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
  options.plusultra.user = {
 | 
					  options.metacfg.user = {
 | 
				
			||||||
    enable = mkOpt types.bool false "Whether to configure the user account.";
 | 
					    enable = mkOpt types.bool false "Whether to configure the user account.";
 | 
				
			||||||
    name = mkOpt (types.nullOr types.str) config.snowfallorg.user.name "The user account.";
 | 
					    name = mkOpt (types.nullOr types.str) config.snowfallorg.user.name "The user account.";
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -33,11 +33,11 @@ in
 | 
				
			||||||
      assertions = [
 | 
					      assertions = [
 | 
				
			||||||
        {
 | 
					        {
 | 
				
			||||||
          assertion = cfg.name != null;
 | 
					          assertion = cfg.name != null;
 | 
				
			||||||
          message = "plusultra.user.name must be set";
 | 
					          message = "metacfg.user.name must be set";
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
        {
 | 
					        {
 | 
				
			||||||
          assertion = cfg.home != null;
 | 
					          assertion = cfg.home != null;
 | 
				
			||||||
          message = "plusultra.user.home must be set";
 | 
					          message = "metacfg.user.home must be set";
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
      ];
 | 
					      ];
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1,11 +1,11 @@
 | 
				
			||||||
{ options, config, pkgs, lib, inputs, ... }:
 | 
					{ options, config, pkgs, lib, inputs, ... }:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
with lib;
 | 
					with lib;
 | 
				
			||||||
with lib.plusultra;
 | 
					with lib.metacfg;
 | 
				
			||||||
let cfg = config.plusultra.home;
 | 
					let cfg = config.metacfg.home;
 | 
				
			||||||
in
 | 
					in
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
  options.plusultra.home = with types; {
 | 
					  options.metacfg.home = with types; {
 | 
				
			||||||
    file = mkOpt attrs { }
 | 
					    file = mkOpt attrs { }
 | 
				
			||||||
      (mdDoc "A set of files to be managed by home-manager's `home.file`.");
 | 
					      (mdDoc "A set of files to be managed by home-manager's `home.file`.");
 | 
				
			||||||
    configFile = mkOpt attrs { }
 | 
					    configFile = mkOpt attrs { }
 | 
				
			||||||
| 
						 | 
					@ -14,19 +14,19 @@ in
 | 
				
			||||||
  };
 | 
					  };
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  config = {
 | 
					  config = {
 | 
				
			||||||
    plusultra.home.extraOptions = {
 | 
					    metacfg.home.extraOptions = {
 | 
				
			||||||
      home.stateVersion = config.system.stateVersion;
 | 
					      home.stateVersion = config.system.stateVersion;
 | 
				
			||||||
      home.file = mkAliasDefinitions options.plusultra.home.file;
 | 
					      home.file = mkAliasDefinitions options.metacfg.home.file;
 | 
				
			||||||
      xdg.enable = true;
 | 
					      xdg.enable = true;
 | 
				
			||||||
      xdg.configFile = mkAliasDefinitions options.plusultra.home.configFile;
 | 
					      xdg.configFile = mkAliasDefinitions options.metacfg.home.configFile;
 | 
				
			||||||
    };
 | 
					    };
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    home-manager = {
 | 
					    home-manager = {
 | 
				
			||||||
      useUserPackages = true;
 | 
					      useUserPackages = true;
 | 
				
			||||||
      useGlobalPkgs = true;
 | 
					      useGlobalPkgs = true;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
      users.${config.plusultra.user.name} =
 | 
					      users.${config.metacfg.user.name} =
 | 
				
			||||||
        mkAliasDefinitions options.plusultra.home.extraOptions;
 | 
					        mkAliasDefinitions options.metacfg.home.extraOptions;
 | 
				
			||||||
    };
 | 
					    };
 | 
				
			||||||
  };
 | 
					  };
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1,11 +1,11 @@
 | 
				
			||||||
{ options, config, lib, pkgs, ... }:
 | 
					{ options, config, lib, pkgs, ... }:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
with lib;
 | 
					with lib;
 | 
				
			||||||
with lib.plusultra;
 | 
					with lib.metacfg;
 | 
				
			||||||
let cfg = config.plusultra.nix-ld;
 | 
					let cfg = config.metacfg.nix-ld;
 | 
				
			||||||
in
 | 
					in
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
  options.plusultra.nix-ld = with types; {
 | 
					  options.metacfg.nix-ld = with types; {
 | 
				
			||||||
    enable = mkBoolOpt false "Whether or not to enable nix-ld.";
 | 
					    enable = mkBoolOpt false "Whether or not to enable nix-ld.";
 | 
				
			||||||
  };
 | 
					  };
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1,9 +1,9 @@
 | 
				
			||||||
{ options, config, pkgs, lib, inputs, ... }:
 | 
					{ options, config, pkgs, lib, inputs, ... }:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
with lib;
 | 
					with lib;
 | 
				
			||||||
with lib.plusultra;
 | 
					with lib.metacfg;
 | 
				
			||||||
let
 | 
					let
 | 
				
			||||||
  cfg = config.plusultra.nix;
 | 
					  cfg = config.metacfg.nix;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  substituters-submodule = types.submodule ({ name, ... }: {
 | 
					  substituters-submodule = types.submodule ({ name, ... }: {
 | 
				
			||||||
    options = with types; {
 | 
					    options = with types; {
 | 
				
			||||||
| 
						 | 
					@ -12,7 +12,7 @@ let
 | 
				
			||||||
  });
 | 
					  });
 | 
				
			||||||
in
 | 
					in
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
  options.plusultra.nix = with types; {
 | 
					  options.metacfg.nix = with types; {
 | 
				
			||||||
    enable = mkBoolOpt false "Whether or not to manage nix configuration.";
 | 
					    enable = mkBoolOpt false "Whether or not to manage nix configuration.";
 | 
				
			||||||
    package = mkOpt package pkgs.nix "Which nix package to use.";
 | 
					    package = mkOpt package pkgs.nix "Which nix package to use.";
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -28,13 +28,13 @@ in
 | 
				
			||||||
    assertions = mapAttrsToList
 | 
					    assertions = mapAttrsToList
 | 
				
			||||||
      (name: value: {
 | 
					      (name: value: {
 | 
				
			||||||
        assertion = value.key != null;
 | 
					        assertion = value.key != null;
 | 
				
			||||||
        message = "plusultra.nix.extra-substituters.${name}.key must be set";
 | 
					        message = "metacfg.nix.extra-substituters.${name}.key must be set";
 | 
				
			||||||
      })
 | 
					      })
 | 
				
			||||||
      cfg.extra-substituters;
 | 
					      cfg.extra-substituters;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    environment.systemPackages = with pkgs; [
 | 
					    environment.systemPackages = with pkgs; [
 | 
				
			||||||
      plusultra.nixos-revision
 | 
					      metacfg.nixos-revision
 | 
				
			||||||
      (plusultra.nixos-hosts.override {
 | 
					      (metacfg.nixos-hosts.override {
 | 
				
			||||||
        hosts = inputs.self.nixosConfigurations;
 | 
					        hosts = inputs.self.nixosConfigurations;
 | 
				
			||||||
      })
 | 
					      })
 | 
				
			||||||
      deploy-rs
 | 
					      deploy-rs
 | 
				
			||||||
| 
						 | 
					@ -46,7 +46,7 @@ in
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    nix =
 | 
					    nix =
 | 
				
			||||||
      let
 | 
					      let
 | 
				
			||||||
        users = [ "root" config.plusultra.user.name ] ++
 | 
					        users = [ "root" config.metacfg.user.name ] ++
 | 
				
			||||||
          optional config.services.hydra.enable "hydra";
 | 
					          optional config.services.hydra.enable "hydra";
 | 
				
			||||||
        extra-substituters = cfg.extra-substituters // {
 | 
					        extra-substituters = cfg.extra-substituters // {
 | 
				
			||||||
          "https://nixsgx.cachix.org".key = "nixsgx.cachix.org-1:tGi36DlY2joNsIXOlGnSgWW0+E094V6hW0umQRo/KoE=";
 | 
					          "https://nixsgx.cachix.org".key = "nixsgx.cachix.org-1:tGi36DlY2joNsIXOlGnSgWW0+E094V6hW0umQRo/KoE=";
 | 
				
			||||||
| 
						 | 
					@ -74,7 +74,7 @@ in
 | 
				
			||||||
              ++
 | 
					              ++
 | 
				
			||||||
              (mapAttrsToList (name: value: value.key) extra-substituters);
 | 
					              (mapAttrsToList (name: value: value.key) extra-substituters);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        } // (lib.optionalAttrs config.plusultra.tools.direnv.enable {
 | 
					        } // (lib.optionalAttrs config.metacfg.tools.direnv.enable {
 | 
				
			||||||
          keep-outputs = true;
 | 
					          keep-outputs = true;
 | 
				
			||||||
          keep-derivations = true;
 | 
					          keep-derivations = true;
 | 
				
			||||||
        });
 | 
					        });
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1,11 +1,11 @@
 | 
				
			||||||
{ options, config, lib, pkgs, ... }:
 | 
					{ options, config, lib, pkgs, ... }:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
with lib;
 | 
					with lib;
 | 
				
			||||||
with lib.plusultra;
 | 
					with lib.metacfg;
 | 
				
			||||||
let cfg = config.plusultra.base;
 | 
					let cfg = config.metacfg.base;
 | 
				
			||||||
in
 | 
					in
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
  options.plusultra.base = with types; {
 | 
					  options.metacfg.base = with types; {
 | 
				
			||||||
    enable = mkBoolOpt false "Whether or not to enable the base config.";
 | 
					    enable = mkBoolOpt false "Whether or not to enable the base config.";
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  };
 | 
					  };
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1,11 +1,11 @@
 | 
				
			||||||
{ options, config, lib, pkgs, ... }:
 | 
					{ options, config, lib, pkgs, ... }:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
with lib;
 | 
					with lib;
 | 
				
			||||||
with lib.plusultra;
 | 
					with lib.metacfg;
 | 
				
			||||||
let cfg = config.plusultra.gui;
 | 
					let cfg = config.metacfg.gui;
 | 
				
			||||||
in
 | 
					in
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
  options.plusultra.gui = with types; {
 | 
					  options.metacfg.gui = with types; {
 | 
				
			||||||
    enable = mkBoolOpt false "Whether or not to enable a GUI.";
 | 
					    enable = mkBoolOpt false "Whether or not to enable a GUI.";
 | 
				
			||||||
  };
 | 
					  };
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1,11 +1,11 @@
 | 
				
			||||||
{ options, config, lib, pkgs, ... }:
 | 
					{ options, config, lib, pkgs, ... }:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
with lib;
 | 
					with lib;
 | 
				
			||||||
with lib.plusultra;
 | 
					with lib.metacfg;
 | 
				
			||||||
let cfg = config.plusultra.podman;
 | 
					let cfg = config.metacfg.podman;
 | 
				
			||||||
in
 | 
					in
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
  options.plusultra.podman = with types; {
 | 
					  options.metacfg.podman = with types; {
 | 
				
			||||||
    enable = mkBoolOpt false "Whether or not to enable podman.";
 | 
					    enable = mkBoolOpt false "Whether or not to enable podman.";
 | 
				
			||||||
  };
 | 
					  };
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1,11 +1,11 @@
 | 
				
			||||||
{ options, config, lib, pkgs, ... }:
 | 
					{ options, config, lib, pkgs, ... }:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
with lib;
 | 
					with lib;
 | 
				
			||||||
with lib.plusultra;
 | 
					with lib.metacfg;
 | 
				
			||||||
let cfg = config.plusultra.secureboot;
 | 
					let cfg = config.metacfg.secureboot;
 | 
				
			||||||
in
 | 
					in
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
  options.plusultra.secureboot = with types; {
 | 
					  options.metacfg.secureboot = with types; {
 | 
				
			||||||
    enable = mkBoolOpt false "Whether or not to enable secureboot.";
 | 
					    enable = mkBoolOpt false "Whether or not to enable secureboot.";
 | 
				
			||||||
  };
 | 
					  };
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1,13 +1,13 @@
 | 
				
			||||||
{ options, config, lib, pkgs, ... }:
 | 
					{ options, config, lib, pkgs, ... }:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
with lib;
 | 
					with lib;
 | 
				
			||||||
with lib.plusultra;
 | 
					with lib.metacfg;
 | 
				
			||||||
let
 | 
					let
 | 
				
			||||||
  cfg = config.plusultra.pccs;
 | 
					  cfg = config.metacfg.pccs;
 | 
				
			||||||
  cfg_podman = config.plusultra.podman;
 | 
					  cfg_podman = config.metacfg.podman;
 | 
				
			||||||
in
 | 
					in
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
  options.plusultra.pccs = with types; {
 | 
					  options.metacfg.pccs = with types; {
 | 
				
			||||||
    enable = mkBoolOpt false "Whether or not to enable a SGX-DCAP.";
 | 
					    enable = mkBoolOpt false "Whether or not to enable a SGX-DCAP.";
 | 
				
			||||||
    secret = mkOption {
 | 
					    secret = mkOption {
 | 
				
			||||||
      type = with types; nullOr path;
 | 
					      type = with types; nullOr path;
 | 
				
			||||||
| 
						 | 
					@ -29,7 +29,7 @@ in
 | 
				
			||||||
      }
 | 
					      }
 | 
				
			||||||
    ];
 | 
					    ];
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    plusultra = {
 | 
					    metacfg = {
 | 
				
			||||||
      nix.extra-substituters = {
 | 
					      nix.extra-substituters = {
 | 
				
			||||||
        "https://nixsgx.cachix.org".key = "nixsgx.cachix.org-1:tGi36DlY2joNsIXOlGnSgWW0+E094V6hW0umQRo/KoE=";
 | 
					        "https://nixsgx.cachix.org".key = "nixsgx.cachix.org-1:tGi36DlY2joNsIXOlGnSgWW0+E094V6hW0umQRo/KoE=";
 | 
				
			||||||
      };
 | 
					      };
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1,16 +1,16 @@
 | 
				
			||||||
{ options, config, lib, pkgs, ... }:
 | 
					{ options, config, lib, pkgs, ... }:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
with lib;
 | 
					with lib;
 | 
				
			||||||
with lib.plusultra;
 | 
					with lib.metacfg;
 | 
				
			||||||
let cfg = config.plusultra.tools.direnv;
 | 
					let cfg = config.metacfg.tools.direnv;
 | 
				
			||||||
in
 | 
					in
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
  options.plusultra.tools.direnv = with types; {
 | 
					  options.metacfg.tools.direnv = with types; {
 | 
				
			||||||
    enable = mkBoolOpt false "Whether or not to enable direnv.";
 | 
					    enable = mkBoolOpt false "Whether or not to enable direnv.";
 | 
				
			||||||
  };
 | 
					  };
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  config = mkIf cfg.enable {
 | 
					  config = mkIf cfg.enable {
 | 
				
			||||||
    plusultra.home.extraOptions = {
 | 
					    metacfg.home.extraOptions = {
 | 
				
			||||||
      programs.direnv = {
 | 
					      programs.direnv = {
 | 
				
			||||||
        enable = true;
 | 
					        enable = true;
 | 
				
			||||||
        nix-direnv = enabled;
 | 
					        nix-direnv = enabled;
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1,14 +1,14 @@
 | 
				
			||||||
{ options, config, pkgs, lib, ... }:
 | 
					{ options, config, pkgs, lib, ... }:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
with lib;
 | 
					with lib;
 | 
				
			||||||
with lib.plusultra;
 | 
					with lib.metacfg;
 | 
				
			||||||
let
 | 
					let
 | 
				
			||||||
  cfg = config.plusultra.tools.git;
 | 
					  cfg = config.metacfg.tools.git;
 | 
				
			||||||
  gpg = config.plusultra.security.gpg;
 | 
					  gpg = config.metacfg.security.gpg;
 | 
				
			||||||
  user = config.plusultra.user;
 | 
					  user = config.metacfg.user;
 | 
				
			||||||
in
 | 
					in
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
  options.plusultra.tools.git = with types; {
 | 
					  options.metacfg.tools.git = with types; {
 | 
				
			||||||
    enable = mkBoolOpt false "Whether or not to install and configure git.";
 | 
					    enable = mkBoolOpt false "Whether or not to install and configure git.";
 | 
				
			||||||
    userName = mkOpt types.str user.fullName "The name to configure git with.";
 | 
					    userName = mkOpt types.str user.fullName "The name to configure git with.";
 | 
				
			||||||
    userEmail = mkOpt types.str user.email "The email to configure git with.";
 | 
					    userEmail = mkOpt types.str user.email "The email to configure git with.";
 | 
				
			||||||
| 
						 | 
					@ -19,7 +19,7 @@ in
 | 
				
			||||||
  config = mkIf cfg.enable {
 | 
					  config = mkIf cfg.enable {
 | 
				
			||||||
    environment.systemPackages = with pkgs; [ git ];
 | 
					    environment.systemPackages = with pkgs; [ git ];
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    plusultra.home.extraOptions = {
 | 
					    metacfg.home.extraOptions = {
 | 
				
			||||||
      programs.git = {
 | 
					      programs.git = {
 | 
				
			||||||
        enable = true;
 | 
					        enable = true;
 | 
				
			||||||
        inherit (cfg) userName userEmail;
 | 
					        inherit (cfg) userName userEmail;
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -5,8 +5,8 @@
 | 
				
			||||||
, ...
 | 
					, ...
 | 
				
			||||||
}:
 | 
					}:
 | 
				
			||||||
with lib;
 | 
					with lib;
 | 
				
			||||||
with lib.plusultra; let
 | 
					with lib.metacfg; let
 | 
				
			||||||
  cfg = config.plusultra.user;
 | 
					  cfg = config.metacfg.user;
 | 
				
			||||||
  defaultIconFileName = "profile.jpg";
 | 
					  defaultIconFileName = "profile.jpg";
 | 
				
			||||||
  defaultIcon = pkgs.stdenvNoCC.mkDerivation {
 | 
					  defaultIcon = pkgs.stdenvNoCC.mkDerivation {
 | 
				
			||||||
    name = "default-icon";
 | 
					    name = "default-icon";
 | 
				
			||||||
| 
						 | 
					@ -24,14 +24,14 @@ with lib.plusultra; let
 | 
				
			||||||
    pkgs.runCommandNoCC "propagated-icon"
 | 
					    pkgs.runCommandNoCC "propagated-icon"
 | 
				
			||||||
      { passthru = { fileName = cfg.icon.fileName; }; }
 | 
					      { passthru = { fileName = cfg.icon.fileName; }; }
 | 
				
			||||||
      ''
 | 
					      ''
 | 
				
			||||||
        local target="$out/share/plusultra-icons/user/${cfg.name}"
 | 
					        local target="$out/share/metacfg-icons/user/${cfg.name}"
 | 
				
			||||||
        mkdir -p "$target"
 | 
					        mkdir -p "$target"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        cp ${cfg.icon} "$target/${cfg.icon.fileName}"
 | 
					        cp ${cfg.icon} "$target/${cfg.icon.fileName}"
 | 
				
			||||||
      '';
 | 
					      '';
 | 
				
			||||||
in
 | 
					in
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
  options.plusultra.user = with types; {
 | 
					  options.metacfg.user = with types; {
 | 
				
			||||||
    name = mkOpt str "harald" "The name to use for the user account.";
 | 
					    name = mkOpt str "harald" "The name to use for the user account.";
 | 
				
			||||||
    fullName = mkOpt str "Harald Hoyer" "The full name of the user.";
 | 
					    fullName = mkOpt str "Harald Hoyer" "The full name of the user.";
 | 
				
			||||||
    email = mkOpt str "harald@hoyer.xyz" "The email of the user.";
 | 
					    email = mkOpt str "harald@hoyer.xyz" "The email of the user.";
 | 
				
			||||||
| 
						 | 
					@ -58,7 +58,7 @@ in
 | 
				
			||||||
    environment.systemPackages = with pkgs; [
 | 
					    environment.systemPackages = with pkgs; [
 | 
				
			||||||
    ];
 | 
					    ];
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    plusultra.home = {
 | 
					    metacfg.home = {
 | 
				
			||||||
      file = {
 | 
					      file = {
 | 
				
			||||||
        "Desktop/.keep".text = "";
 | 
					        "Desktop/.keep".text = "";
 | 
				
			||||||
        "Documents/.keep".text = "";
 | 
					        "Documents/.keep".text = "";
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -10,7 +10,7 @@
 | 
				
			||||||
 | 
					
 | 
				
			||||||
let
 | 
					let
 | 
				
			||||||
  inherit (lib) mapAttrsToList concatStringsSep;
 | 
					  inherit (lib) mapAttrsToList concatStringsSep;
 | 
				
			||||||
  inherit (lib.plusultra) override-meta;
 | 
					  inherit (lib.metacfg) override-meta;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  substitute = args: builtins.readFile (substituteAll args);
 | 
					  substitute = args: builtins.readFile (substituteAll args);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -5,7 +5,7 @@
 | 
				
			||||||
}:
 | 
					}:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
let
 | 
					let
 | 
				
			||||||
  inherit (lib.plusultra) override-meta;
 | 
					  inherit (lib.metacfg) override-meta;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  new-meta = with lib; {
 | 
					  new-meta = with lib; {
 | 
				
			||||||
    description = "A helper show the current git revision of the system configuration.";
 | 
					    description = "A helper show the current git revision of the system configuration.";
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1,8 +1,8 @@
 | 
				
			||||||
{ lib, pkgs, ... }:
 | 
					{ lib, pkgs, ... }:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
with lib.plusultra;
 | 
					with lib.metacfg;
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
  plusultra = {
 | 
					  metacfg = {
 | 
				
			||||||
    suites = {
 | 
					    suites = {
 | 
				
			||||||
      common = enabled;
 | 
					      common = enabled;
 | 
				
			||||||
    };
 | 
					    };
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1,10 +1,10 @@
 | 
				
			||||||
{ pkgs, lib, config, ... }:
 | 
					{ pkgs, lib, config, ... }:
 | 
				
			||||||
with lib;
 | 
					with lib;
 | 
				
			||||||
with lib.plusultra;
 | 
					with lib.metacfg;
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
  imports = [ ./hardware-configuration.nix ];
 | 
					  imports = [ ./hardware-configuration.nix ];
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  plusultra = {
 | 
					  metacfg = {
 | 
				
			||||||
    base.enable = true;
 | 
					    base.enable = true;
 | 
				
			||||||
    nix-ld.enable = true;
 | 
					    nix-ld.enable = true;
 | 
				
			||||||
    nix.enable = true;
 | 
					    nix.enable = true;
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -9,7 +9,7 @@ in
 | 
				
			||||||
  sops.secrets.pccs.sopsFile = ../../../.secrets/sgx/pccs.yaml;
 | 
					  sops.secrets.pccs.sopsFile = ../../../.secrets/sgx/pccs.yaml;
 | 
				
			||||||
  sops.secrets.backup-pw.sopsFile = ../../../.secrets/sgx/backup-s3.yaml;
 | 
					  sops.secrets.backup-pw.sopsFile = ../../../.secrets/sgx/backup-s3.yaml;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  plusultra = {
 | 
					  metacfg = {
 | 
				
			||||||
    base.enable = true;
 | 
					    base.enable = true;
 | 
				
			||||||
    gui.enable = false;
 | 
					    gui.enable = false;
 | 
				
			||||||
    nix-ld.enable = true;
 | 
					    nix-ld.enable = true;
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -2,7 +2,7 @@
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
  imports = [ ./hardware-configuration.nix ];
 | 
					  imports = [ ./hardware-configuration.nix ];
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  plusultra = {
 | 
					  metacfg = {
 | 
				
			||||||
    base.enable = true;
 | 
					    base.enable = true;
 | 
				
			||||||
    gui.enable = true;
 | 
					    gui.enable = true;
 | 
				
			||||||
    nix-ld.enable = true;
 | 
					    nix-ld.enable = true;
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1,10 +1,10 @@
 | 
				
			||||||
{ pkgs, lib, ... }:
 | 
					{ pkgs, lib, ... }:
 | 
				
			||||||
with lib;
 | 
					with lib;
 | 
				
			||||||
with lib.plusultra;
 | 
					with lib.metacfg;
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
  imports = [ ./hardware-configuration.nix ];
 | 
					  imports = [ ./hardware-configuration.nix ];
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  plusultra = {
 | 
					  metacfg = {
 | 
				
			||||||
    base.enable = true;
 | 
					    base.enable = true;
 | 
				
			||||||
    gui.enable = true;
 | 
					    gui.enable = true;
 | 
				
			||||||
    nix-ld.enable = true;
 | 
					    nix-ld.enable = true;
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue