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