#+begin_src
.....__.................._........_.................
...././.................|.|......|.|................
..././_......_____.._.__|.|._____|.|__...___.._.__..
.././\.\./\././._.\|.'__|.|/./.__|.'_.\./._.\|.'_.\.
././..\.V..V./.(_).|.|..|...<\__.\.|.|.|.(_).|.|_).|
/_/....\_/\_/.\___/|_|..|_|\_\___/_|.|_|\___/|..__/.
..............................................|.|...
..............................................|_|...
#+end_src
[[https://builtwithnix.org][https://builtwithnix.org/badge.svg]]
A monorepo that serves as my digital workshop.
* Goal of this Repository
The goal of this repository is for it be a single entrypoint into my development workflow. I should be able to boot up a new computer pull this repo, and have my computer ready for development in little more than the time it takes to install Nix itself.
* Directory Structure
I designed the directory structure in this repo to rhyme with the standard Linux directory structure.
- ~/bin~ :: Scripts and any other custom executables that I want in my system path.
- ~/etc~ :: All configuration files that I write/edit by hand.
- ~/src~ :: Source code for projects.
- ~/lib~ :: Libraries that tools in ~/src~ and ~/bin~ have access to.
- ~/usr~ :: Read-only data.
- ~/var~ :: Data that applications write that I want in git.
* Tools
- nix :: The core of the configuration is a Nix flake.
- nvfetcher :: Generate Nix packages for things not in =nixpkgs=.
- go :: Writing scripts and other utilities.
- agenix :: Encrypting configuration files with private information.
- direnv :: Basically just autoloads the nix shell.