NIX.md: Document the NixOS modules provided by the core and contrib flakes.

flake.nix: Assume maintainership.
This commit is contained in:
L. S. Leary 2022-04-21 16:52:02 +12:00
parent fa498ca728
commit 6ab69e97d3
2 changed files with 54 additions and 1 deletions

52
NIX.md
View File

@ -15,3 +15,55 @@ pkgs: devInputs: devInputs // {
[ cabal-install hlint ghcid ormolu implicit-hie haskell-language-server ];
}
```
## NixOS Modules
The core and contrib flakes provide NixOS configuration modules.
You can bring them into your system flake like so:
```nix
{
inputs = {
nixpkgs.url = github:NixOS/nixpkgs/nixos-<version>;
xmonad.url = github:xmonad/xmonad;
xmonad-contrib.url = github:xmonad/xmonad-contrib;
};
outputs = { self, nixpkgs, xmonad, xmonad-contrib }: {
nixosConfigurations.<hostname> = nixpkgs.lib.nixosSystem rec {
system = <arch>;
modules = [
./configuration.nix
xmonad.nixosModule
xmonad-contrib.nixosModule
];
};
};
}
```
Then you can set the provided options in your `configuration.nix` under `flake`:
```nix
services.xserver.windowManager.xmonad = {
enable = true;
enableContribAndExtras = true;
flake = {
enable = true;
# prefix = "unstable";
compiler = "ghc921";
};
};
```
This will use core and contrib from git for your system xmonad, building your
config with the compiler of your choice.
With the flake enabled, the `xmonad.haskellPackages` option is not used directly,
and is instead set by the `flake.compiler` option. When `compiler` is unset,
the default `pkgs.haskellPackages` is used.
The `prefix` option is used if you wish to select your haskell packages from
within, e.g., unstable overlaid into `pkgs` as `pkgs.unstable`.
See the flakes themselves and nix flake documentation for full detail.

View File

@ -1,4 +1,5 @@
# This file is maintained by @IvanMalison (github)
# This file is maintained by @IvanMalison and @LSLeary (github)
# See NIX.md for an overview of module usage.
{
inputs = {
flake-utils.url = github:numtide/flake-utils;