diff --git a/setups/home-manager.nix b/setups/home-manager.nix index 27d24080..dd55d319 100644 --- a/setups/home-manager.nix +++ b/setups/home-manager.nix @@ -1,6 +1,34 @@ -# This is project data for deploying home-manager users with this flake. Each -# of the users defined here should correspond to one of the home-manager users -# at `./users/home-manager/`. +/* + This is project data for deploying home-manager users with this flake. Each + of the users defined here should correspond to one of the home-manager users + at `./users/home-manager/`. + + Schema: + + * systems + A list of host platforms to be deployed. When given no systems, it will + be deployed with `x86_64-linux`. + * modules + A list of home-manager modules to be included. Take note there is a + baseline configuration defined at `flake.nix`. You should add modules + very minimally here such as additional overlays, modules, and so forth. + * home-manager-channel + The home-manager branch to be used. By default, it uses the + `home-manager` flake input which follows the `home-manager-unstable` + input. + * nixpkgs-channel + The nixpkgs branch to be included. By default, it uses the `nixpkgs` + flake input which follows the `nixos-unstable` input. + * deploy + An attribute set of options for deploy-rs nodes. + * username + The username of the home-manager user. By default, it will use the + attribute name. + * home-directory + The home directory of the home-manager user. By default, it is + set to "/home/${username}". +*/ + { lib, inputs }: { diff --git a/setups/nixos.nix b/setups/nixos.nix index 467f38f2..cd4e94c9 100644 --- a/setups/nixos.nix +++ b/setups/nixos.nix @@ -1,13 +1,39 @@ -# This is a custom data for this project where it lists the images found in -# this flake. This can range from NixOS configurations intended to be deployed -# for servers and desktops to installers. -# -# The data is then used for the image creation functions found in `flake.nix`. -# Each of the entry should correspond to one of the hosts in `./hosts/` -# directory. +/* + This is a custom data for this project where it lists the images found in + this flake. This can range from NixOS configurations intended to be deployed + for servers and desktops to installers. + + The data is then used for the image creation functions found in `flake.nix`. + Each of the entry should correspond to one of the hosts in `./hosts/` + directory. + + Schema: + + * systems + A list of systems that is expected to be deployed. This is required and + will have a default list of "x86_64-linux" when no system is given. + * format + The image format to be generated from nixos-generators. You can give it + as `null` when not intended to be listed as part of the images which is + often the case for desktop NixOS systems. + * modules + A list of extra NixOS modules to be passed. You'll want to see the + baseline host configuration defined in `flake.nix`. + * deploy + An attribute set of arguments similar to the `deploy` CLI. When this + attribute is present, it will be assumed as part of NixOS configurations + even with `format = null` which is often the case for bare metal NixOS + servers that also has a suitable image format for deployment. + * hostname + The hostname of the host. By default, it assumes the hostname being given + from the attribute name. + * domain + The domain set for the host. Normally given to server systems. +*/ { lib, inputs }: { + # The main desktop. ni = { systems = [ "x86_64-linux" ]; format = null; @@ -33,6 +59,7 @@ ]; }; + # A remote server. plover = { systems = [ "x86_64-linux" ]; format = null; @@ -44,27 +71,35 @@ }; }; + # TODO: Remove extra newlines that are here for whatever reason. + #{{{ void = { systems = [ "x86_64-linux" ]; format = "vm"; }; + #}}} + # The barely customized non-graphical installer. bootstrap = { systems = [ "aarch64-linux" "x86_64-linux" ]; format = "install-iso"; nixpkgs-channel = "nixos-unstable-small"; }; + # The barely customized graphical installer. graphical-installer = { systems = [ "aarch64-linux" "x86_64-linux" ]; format = "install-iso"; }; + # The WSL system (that is yet to be used). winnowing = { systems = [ "x86_64-linux" ]; format = null; modules = [ + # Well, well, well... inputs.nixos-wsl.nixosModules.default ]; }; } +# vim:foldmethod=marker