nix/README.md
2022-01-28 09:25:41 -05:00

59 lines
2 KiB
Markdown

# Mr Hedgehog's Nix Config
## Welcome to my ~
This is a nix config, created with the _[literate programming](https://en.wikipedia.org/wiki/Literate_programming)_ technique. It uses the [md-tangle](https://github.com/joakimmj/md-tangle) tool and all the files in this directory to achive that.
The main goal of _literate programming_ is to make it so documentation **never** seperates from code. That's why I am doing my config like this.
Another reason to do this is because of the strangeness of the **nix** configuration language that I use.
All this is to say that I believe that literate programming is amazing, and that everyone should use it, as it emphasizes good documentation.
## Directory Structure
When I refer to a .nix file, You will find it under the same filename, but with a .md extension instead. So home.nix refers to the home.md file, which is then tangled into the home.nix file. I include the generated nix files in this repository **only** for the purpose of bootstrapping my config, and not as a single source of truth.
Many other files are also tangled, like my non-nix configs.
```text
/
|
|- cachix
| |- This is my folder for importing nix binary caches
| |- It includes a default.nix so that I can import it, and 1 file per cache.
|
|- config
| |- Contains all of my non-nix config files
| |- As well as any nix config files that are too long to include in home.nix
|
|- hosts
| |- Per-machine configuration
| |- zaphod.nix
| | |- My laptop's configuration
|
|- nix
| |- Just some general nix configuration
| |- nix.conf
| | |- Nix's config file.
|
|- pkgs
| |- Custom packages that get imported into the nixpkgs tree at runtime.
|
|- users
| |- Per-user config.
| |- mrhedgehog.nix
| | |- My personal config
| |- root.nix
| | |- Root user configuration
```
## Useful Resources I've found
### The Unofficial NixOS Wiki
<https://nixos.wiki>
Probably one of the most helpful sites around, as it contains a wealth of information on many things nix-related, as well as info on the ecosystem itself.