= foo-dogsquared's NixOS config This is the configuration setup for my https://nixos.org[NixOS] instance. A major part of this setup is inspired (or stolen, whichever you prefer) from https://github.com/hlissner/dotfiles[hlissner's NixOS config]. The difference is https://github.com/rycee/home-manager[home-manager] is a big requirement and uses it a whole lot. == Getting started Before installing this setup, be sure to install NixOS and logged in as a user. This project setup also assumes the operating system has the following configurations: - Uses the nixpkgs unstable channel as `nixos` (i.e., `nix-channels --update https://nixos.org/channels/nixos-unstable`). - Have the https://github.com/rycee/home-manager[home-manager] installed with the unstable release. - You start with the TTY and nothing else is installed (i.e., bare installation similar in spirit to Arch Linux). [source, shell] ---- git clone make ---- == Project structure The project structure should look like the following: [source, tree] ---- nixos-config ├── config/ ├── home.nix ├── modules/ └── README.adoc ---- * The directory paid with the most attention would most likely be the `modules/` folder. Each module (and submodule) can contain multiple modules for multiple programs (i.e., `modules/shell/git`, `modules/desktop/bspwm`). It could also contain a `base.nix` file where Nix packages with no configurations are placed similar to Arch package groups (i.e., `base`, `base-devel`, `xfce`). ** Another folder worthy of attention is the `modules/themes` which sets up a complete desktop environment for you so you don't have to. For safety, you should have a bare installation ala-Arch Linux. * The `config/` directory is simply the ad hoc configuration of several programs. In this case, it is my https://github.com/foo-dogsquared/dotflies[dotfiles] directory.