at 18.09-beta 1.3 kB view raw
1<section xmlns="http://docbook.org/ns/docbook" 2 xmlns:xlink="http://www.w3.org/1999/xlink" 3 xmlns:xi="http://www.w3.org/2001/XInclude" 4 version="5.0" 5 xml:id="sec-importing-modules"> 6 <title>Importing Modules</title> 7 8 <para> 9 Sometimes NixOS modules need to be used in configuration but exist outside of 10 Nixpkgs. These modules can be imported: 11 </para> 12 13<programlisting> 14{ config, lib, pkgs, ... }: 15 16{ 17 imports = 18 [ # Use a locally-available module definition in 19 # ./example-module/default.nix 20 ./example-module 21 ]; 22 23 services.exampleModule.enable = true; 24} 25</programlisting> 26 27 <para> 28 The environment variable <literal>NIXOS_EXTRA_MODULE_PATH</literal> is an 29 absolute path to a NixOS module that is included alongside the Nixpkgs NixOS 30 modules. Like any NixOS module, this module can import additional modules: 31 </para> 32 33<programlisting> 34# ./module-list/default.nix 35[ 36 ./example-module1 37 ./example-module2 38] 39</programlisting> 40 41<programlisting> 42# ./extra-module/default.nix 43{ imports = import ./module-list.nix; } 44</programlisting> 45 46<programlisting> 47# NIXOS_EXTRA_MODULE_PATH=/absolute/path/to/extra-module 48{ config, lib, pkgs, ... }: 49 50{ 51 # No `imports` needed 52 53 services.exampleModule1.enable = true; 54} 55</programlisting> 56</section>