{ config, inputs, pkgs, lib, ... }: with lib; let base = "/etc/nixpkgs/channels"; nixpkgsPath = "${base}/nixpkgs"; nixpkgsSmallPath = "${base}/nixpkgsSmall"; nixpkgs2111Path = "${base}/nixpkgs2111"; in { options.nix.flakes.enable = mkEnableOption "nix flakes"; config = lib.mkIf config.nix.flakes.enable { nix = { package = pkgs.nixUnstable; experimentalFeatures = "nix-command flakes"; registry.nixpkgs.flake = inputs.unstable; registry.nixpkgsSmall.flake = inputs.unstable-small; registry.nixpkgs2111.flake = inputs.nixpkgs-2111; nixPath = [ "nixpkgs=${nixpkgsPath}" "nixpkgsSmall=${nixpkgsSmallPath}" "nixpkgs2111=${nixpkgs2111Path}" "/nix/var/nix/profiles/per-user/root/channels" ]; }; systemd.tmpfiles.rules = [ "L+ ${nixpkgsPath} - - - - ${inputs.unstable}" "L+ ${nixpkgsSmallPath} - - - - ${inputs.unstable-small}" "L+ ${nixpkgs2111Path} - - - - ${inputs.nixpkgs-2111}" ]; }; }