A very quick note: here’s the shell.nix I use to build a basic nannou app on NixOS and run it:

{ pkgs ? import <nixpkgs> {} }:

pkgs.mkShell {
  buildInputs = with pkgs; [
    pkg-config
    cargo
    rustc

    xorg.libxcb
    xorg.libX11
    xorg.libXcursor
    xorg.libXrandr
    xorg.libXi

    alsa-lib
    vulkan-loader
  ];

  LD_LIBRARY_PATH = "${pkgs.vulkan-loader}/lib";
}

With this, I can launch a nix-shell and cargo run the example nannou project.

(The LD_LIBRARY_PATH line is required to make the app find vulkan libraries at runtime; otherwise it would fail to run with the following error: could not build default app window: NoAvailableAdapter).