diff --git a/doc/manual/src/command-ref/env-common.md b/doc/manual/src/command-ref/env-common.md
index b4a9bb2a9..34e0dbfbd 100644
--- a/doc/manual/src/command-ref/env-common.md
+++ b/doc/manual/src/command-ref/env-common.md
@@ -2,109 +2,124 @@
Most Nix commands interpret the following environment variables:
- - [`IN_NIX_SHELL`](#env-IN_NIX_SHELL)\
- Indicator that tells if the current environment was set up by
- `nix-shell`. It can have the values `pure` or `impure`.
+- [`IN_NIX_SHELL`](#env-IN_NIX_SHELL)
- - [`NIX_PATH`](#env-NIX_PATH)\
- A colon-separated list of directories used to look up the location of Nix
- expressions using [paths](@docroot@/language/values.md#type-path)
- enclosed in angle brackets (i.e., ``),
- e.g. `/home/eelco/Dev:/etc/nixos`. It can be extended using the
- [`-I` option](@docroot@/command-ref/opt-common.md#opt-I).
+ Indicator that tells if the current environment was set up by
+ `nix-shell`. It can have the values `pure` or `impure`.
- If `NIX_PATH` is not set at all, Nix will fall back to the following list in [impure](@docroot@/command-ref/conf-file.md#conf-pure-eval) and [unrestricted](@docroot@/command-ref/conf-file.md#conf-restrict-eval) evaluation mode:
+- [`NIX_PATH`](#env-NIX_PATH)
- 1. `$HOME/.nix-defexpr/channels`
- 2. `nixpkgs=/nix/var/nix/profiles/per-user/root/channels/nixpkgs`
- 3. `/nix/var/nix/profiles/per-user/root/channels`
+ A colon-separated list of directories used to look up the location of Nix
+ expressions using [paths](@docroot@/language/values.md#type-path)
+ enclosed in angle brackets (i.e., ``),
+ e.g. `/home/eelco/Dev:/etc/nixos`. It can be extended using the
+ [`-I` option](@docroot@/command-ref/opt-common.md#opt-I).
- If `NIX_PATH` is set to an empty string, resolving search paths will always fail.
- For example, attempting to use `` will produce:
+ If `NIX_PATH` is not set at all, Nix will fall back to the following list in [impure](@docroot@/command-ref/conf-file.md#conf-pure-eval) and [unrestricted](@docroot@/command-ref/conf-file.md#conf-restrict-eval) evaluation mode:
- error: file 'nixpkgs' was not found in the Nix search path
+ 1. `$HOME/.nix-defexpr/channels`
+ 2. `nixpkgs=/nix/var/nix/profiles/per-user/root/channels/nixpkgs`
+ 3. `/nix/var/nix/profiles/per-user/root/channels`
- - [`NIX_IGNORE_SYMLINK_STORE`](#env-NIX_IGNORE_SYMLINK_STORE)\
- Normally, the Nix store directory (typically `/nix/store`) is not
- allowed to contain any symlink components. This is to prevent
- “impure” builds. Builders sometimes “canonicalise” paths by
- resolving all symlink components. Thus, builds on different machines
- (with `/nix/store` resolving to different locations) could yield
- different results. This is generally not a problem, except when
- builds are deployed to machines where `/nix/store` resolves
- differently. If you are sure that you’re not going to do that, you
- can set `NIX_IGNORE_SYMLINK_STORE` to `1`.
+ If `NIX_PATH` is set to an empty string, resolving search paths will always fail.
+ For example, attempting to use `` will produce:
- Note that if you’re symlinking the Nix store so that you can put it
- on another file system than the root file system, on Linux you’re
- better off using `bind` mount points, e.g.,
+ error: file 'nixpkgs' was not found in the Nix search path
- ```console
- $ mkdir /nix
- $ mount -o bind /mnt/otherdisk/nix /nix
- ```
+- [`NIX_IGNORE_SYMLINK_STORE`](#env-NIX_IGNORE_SYMLINK_STORE)
- Consult the mount 8 manual page for details.
+ Normally, the Nix store directory (typically `/nix/store`) is not
+ allowed to contain any symlink components. This is to prevent
+ “impure” builds. Builders sometimes “canonicalise” paths by
+ resolving all symlink components. Thus, builds on different machines
+ (with `/nix/store` resolving to different locations) could yield
+ different results. This is generally not a problem, except when
+ builds are deployed to machines where `/nix/store` resolves
+ differently. If you are sure that you’re not going to do that, you
+ can set `NIX_IGNORE_SYMLINK_STORE` to `1`.
- - [`NIX_STORE_DIR`](#env-NIX_STORE_DIR)\
- Overrides the location of the Nix store (default `prefix/store`).
+ Note that if you’re symlinking the Nix store so that you can put it
+ on another file system than the root file system, on Linux you’re
+ better off using `bind` mount points, e.g.,
- - [`NIX_DATA_DIR`](#env-NIX_DATA_DIR)\
- Overrides the location of the Nix static data directory (default
- `prefix/share`).
+ ```console
+ $ mkdir /nix
+ $ mount -o bind /mnt/otherdisk/nix /nix
+ ```
- - [`NIX_LOG_DIR`](#env-NIX_LOG_DIR)\
- Overrides the location of the Nix log directory (default
- `prefix/var/log/nix`).
+ Consult the mount 8 manual page for details.
- - [`NIX_STATE_DIR`](#env-NIX_STATE_DIR)\
- Overrides the location of the Nix state directory (default
- `prefix/var/nix`).
+- [`NIX_STORE_DIR`](#env-NIX_STORE_DIR)
- - [`NIX_CONF_DIR`](#env-NIX_CONF_DIR)\
- Overrides the location of the system Nix configuration directory
- (default `prefix/etc/nix`).
+ Overrides the location of the Nix store (default `prefix/store`).
- - [`NIX_CONFIG`](#env-NIX_CONFIG)\
- Applies settings from Nix configuration from the environment.
- The content is treated as if it was read from a Nix configuration file.
- Settings are separated by the newline character.
+- [`NIX_DATA_DIR`](#env-NIX_DATA_DIR)
- - [`NIX_USER_CONF_FILES`](#env-NIX_USER_CONF_FILES)\
- Overrides the location of the Nix user configuration files to load from.
+ Overrides the location of the Nix static data directory (default
+ `prefix/share`).
- The default are the locations according to the [XDG Base Directory Specification].
- See the [XDG Base Directories](#xdg-base-directories) sub-section for details.
+- [`NIX_LOG_DIR`](#env-NIX_LOG_DIR)
- The variable is treated as a list separated by the `:` token.
+ Overrides the location of the Nix log directory (default
+ `prefix/var/log/nix`).
- - [`TMPDIR`](#env-TMPDIR)\
- Use the specified directory to store temporary files. In particular,
- this includes temporary build directories; these can take up
- substantial amounts of disk space. The default is `/tmp`.
+- [`NIX_STATE_DIR`](#env-NIX_STATE_DIR)
- - [`NIX_REMOTE`](#env-NIX_REMOTE)\
- This variable should be set to `daemon` if you want to use the Nix
- daemon to execute Nix operations. This is necessary in [multi-user
- Nix installations](@docroot@/installation/multi-user.md). If the Nix
- daemon's Unix socket is at some non-standard path, this variable
- should be set to `unix://path/to/socket`. Otherwise, it should be
- left unset.
+ Overrides the location of the Nix state directory (default
+ `prefix/var/nix`).
- - [`NIX_SHOW_STATS`](#env-NIX_SHOW_STATS)\
- If set to `1`, Nix will print some evaluation statistics, such as
- the number of values allocated.
+- [`NIX_CONF_DIR`](#env-NIX_CONF_DIR)
- - [`NIX_COUNT_CALLS`](#env-NIX_COUNT_CALLS)\
- If set to `1`, Nix will print how often functions were called during
- Nix expression evaluation. This is useful for profiling your Nix
- expressions.
+ Overrides the location of the system Nix configuration directory
+ (default `prefix/etc/nix`).
- - [`GC_INITIAL_HEAP_SIZE`](#env-GC_INITIAL_HEAP_SIZE)\
- If Nix has been configured to use the Boehm garbage collector, this
- variable sets the initial size of the heap in bytes. It defaults to
- 384 MiB. Setting it to a low value reduces memory consumption, but
- will increase runtime due to the overhead of garbage collection.
+- [`NIX_CONFIG`](#env-NIX_CONFIG)
+
+ Applies settings from Nix configuration from the environment.
+ The content is treated as if it was read from a Nix configuration file.
+ Settings are separated by the newline character.
+
+- [`NIX_USER_CONF_FILES`](#env-NIX_USER_CONF_FILES)
+
+ Overrides the location of the Nix user configuration files to load from.
+
+ The default are the locations according to the [XDG Base Directory Specification].
+ See the [XDG Base Directories](#xdg-base-directories) sub-section for details.
+
+ The variable is treated as a list separated by the `:` token.
+
+- [`TMPDIR`](#env-TMPDIR)
+
+ Use the specified directory to store temporary files. In particular,
+ this includes temporary build directories; these can take up
+ substantial amounts of disk space. The default is `/tmp`.
+
+- [`NIX_REMOTE`](#env-NIX_REMOTE)
+
+ This variable should be set to `daemon` if you want to use the Nix
+ daemon to execute Nix operations. This is necessary in [multi-user
+ Nix installations](@docroot@/installation/multi-user.md). If the Nix
+ daemon's Unix socket is at some non-standard path, this variable
+ should be set to `unix://path/to/socket`. Otherwise, it should be
+ left unset.
+
+- [`NIX_SHOW_STATS`](#env-NIX_SHOW_STATS)
+
+ If set to `1`, Nix will print some evaluation statistics, such as
+ the number of values allocated.
+
+- [`NIX_COUNT_CALLS`](#env-NIX_COUNT_CALLS)
+
+ If set to `1`, Nix will print how often functions were called during
+ Nix expression evaluation. This is useful for profiling your Nix
+ expressions.
+
+- [`GC_INITIAL_HEAP_SIZE`](#env-GC_INITIAL_HEAP_SIZE)
+
+ If Nix has been configured to use the Boehm garbage collector, this
+ variable sets the initial size of the heap in bytes. It defaults to
+ 384 MiB. Setting it to a low value reduces memory consumption, but
+ will increase runtime due to the overhead of garbage collection.
## XDG Base Directories