{ config, lib, pkgs, ... }: with lib; let cfg = config.environment; in { options = { environment.systemPackages = mkOption { type = types.listOf types.package; default = []; example = literalExample "[ pkgs.nix-repl pkgs.vim ]"; description = '' The set of packages that appear in /run/current-system/sw. These packages are automatically available to all users, and 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. ''; }; environment.extraOutputsToInstall = mkOption { type = types.listOf types.str; default = [ ]; example = [ "doc" "info" "devdoc" ]; description = "List of additional package outputs to be symlinked into /run/current-system/sw."; }; }; config = { system.path = pkgs.buildEnv { name = "system-path"; paths = cfg.systemPackages; inherit (cfg) extraOutputsToInstall; }; }; }