diff --git a/system/nixos-environment.nix b/system/nixos-environment.nix
new file mode 100644
index 000000000000..a2e0ae46cdf0
--- /dev/null
+++ b/system/nixos-environment.nix
@@ -0,0 +1,67 @@
+
+{pkgs, config, ...}:
+let
+ inherit (pkgs.lib) mergeOneOption mkOption mkIf;
+in
+{
+ require = [
+ {
+
+ environment = {
+ checkConfigurationOptions = mkOption {
+ default = true;
+ example = false;
+ description = "
+ If all configuration options must be checked. Non-existing options fail build.
+ ";
+ };
+
+ nix = mkOption {
+ default = pkgs.nixUnstable;
+ example = pkgs.nixCustomFun /root/nix.tar.gz;
+ merge = mergeOneOption;
+ description = "
+ Use non-default Nix easily. Be careful, though, not to break everything.
+ ";
+ };
+
+ extraPackages = mkOption {
+ default = [];
+ example = [pkgs.firefox pkgs.thunderbird];
+ description = "
+ This option allows you to add additional packages to the system
+ path. These packages are automatically available to all users,
+ and they are automatically updated every time you rebuild the
+ system configuration. (The latter is the main difference with
+ installing them in the default profile,
+ /nix/var/nix/profiles/default. The value
+ of this option must be a function that returns a list of
+ packages. The function will be called with the Nix Packages
+ collection as its argument for convenience.
+ ";
+ };
+
+
+ pathsToLink = mkOption {
+ default = ["/bin" "/sbin" "/lib" "/share" "/man" "/info" "/etc"];
+ example = ["/"];
+ description = "
+ Lists directories to be symlinked in `/var/run/current-system/sw'.
+ ";
+ };
+
+ cleanStart = mkOption {
+ default = false;
+ example = true;
+ description = "
+ There are some times when you want really small system for specific
+ purpose and do not want default package list. Setting
+ cleanStart to true allows you
+ to create a system with empty path - only extraPackages will be
+ included.
+ ";
+ };
+ };
+ }
+ ];
+}
diff --git a/system/options.nix b/system/options.nix
index 9e30c5053453..c0e09721259c 100644
--- a/system/options.nix
+++ b/system/options.nix
@@ -2116,64 +2116,6 @@ in
};
- environment = {
-
- pathsToLink = mkOption {
- default = ["/bin" "/sbin" "/lib" "/share" "/man" "/info" "/etc"];
- example = ["/"];
- description = "
- Lists directories to be symlinked in `/var/run/current-system/sw'.
- ";
- };
-
- cleanStart = mkOption {
- default = false;
- example = true;
- description = "
- There are some times when you want really small system for specific
- purpose and do not want default package list. Setting
- cleanStart to true allows you
- to create a system with empty path - only extraPackages will be
- included.
- ";
- };
-
- extraPackages = mkOption {
- default = [];
- example = [pkgs.firefox pkgs.thunderbird];
- description = "
- This option allows you to add additional packages to the system
- path. These packages are automatically available to all users,
- and they are automatically updated every time you rebuild the
- system configuration. (The latter is the main difference with
- installing them in the default profile,
- /nix/var/nix/profiles/default. The value
- of this option must be a function that returns a list of
- packages. The function will be called with the Nix Packages
- collection as its argument for convenience.
- ";
- };
-
- nix = mkOption {
- default = pkgs.nixUnstable;
- example = pkgs.nixCustomFun /root/nix.tar.gz;
- merge = mergeOneOption;
- description = "
- Use non-default Nix easily. Be careful, though, not to break everything.
- ";
- };
-
- checkConfigurationOptions = mkOption {
- default = true;
- example = false;
- description = "
- If all configuration options must be checked. Non-existing options fail build.
- ";
- };
-
- };
-
-
nesting = {
children = mkOption {
default = [];
@@ -2215,6 +2157,8 @@ in
# environment
(import ../etc/default.nix)
+ (import ../system/nixos-environment.nix)
+
# users
(import ../system/users-groups.nix)