nixos-config/docs/content/en-US/02-lay-of-the-land/03-whats-in-my-flake/index.adoc

3.0 KiB
Raw Blame History


title: Whats in my flake? --- = Whats in my flake?

You can see the full details with nix flake show. As a helpful summary, heres what my flake should contain sorting from the most interesting and helpful outputs to the most boring and unnecessary.

  • packages contains github:{github-repo}[my custom packages, path=./pkgs, rev=master] and some of usual images of several hosts which is nice for easily fetching custom images.

  • overlays contains the overlay for extending nixpkgs with my packages. If you want to use my packages alongside the nixpkgs attribute then this is what youre looking for.

  • homeModules are where my github:{github-repo}[custom home-manager modules, path=./modules/home-manager, rev=master] to be exported. [1]

  • nixosModules are composed from NixOS modules defined in github:{github-repo}[./modules/nixos, path=./modules/nixos, rev=master]. It can be used as additional modules for your own NixOS config in case you want to use mine for whatever reason. There are some niceties in there.

    A few examples include:

    • A NixOS module for Pop launcher plugins and scripts.

    • Several service modules for archiving with github:yt-dlp/yt-dlp[opts=repo], github:mikf/gallery-dl[opts=repo], and ArchiveBox.

    • My themes which contain full desktop environments which is nice for quickly initializing a NixOS configuration.

  • devShells from github:{github-repo}[my custom environments, path=./shells, rev=master]. Similar to homeConfigurations, you can easily use it outside of NixOS.

  • homeConfigurations contains my various github:nix-community/home-manager[opts=repo] configurations from ./users/home-manager/. The neat thing about it is you can easily install it in a non-NixOS Linux distro.

  • deploy are nodes to be deployed by github:serokell/deploy-rs[opts=repo]. Its nice and currently not all of the nodes are publicly committed which is less useful but itll be someday.

  • nixosConfigurations which is where you can install my various NixOS configurations directly (e.g., nixos-install --flake {canonical-flake-url}#HOST). This mainly uses the github:{github-repo}[hosts configuration, path=./hosts, rev=master].

  • templates which contains my templates. Though, these are just templates mostly for my own purposes so it is not as useful as the other outputs.

  • hydraJobs contains github:NixOS/hydra[Hydra] build jobs where it is primarily used for my test Hydra instance.

  • lib is defined from github:{github-repo}[my custom library, path=./lib, rev=master]. It mainly assumes it is to be included in nixpkgs standard library (i.e., import ./lib { lib = inputs.nixpkgs.lib; }). Its another unnecessary export but its there.

  • formatter is the preferred formatter to be used for my Nix files. Nothing special here.

  • checks contains checks for several outputs and are mainly for internal purposes. Theres no use for anyone else, really. :(


1. This is more useful than my NixOS modules.