diff --git a/README.md b/README.md new file mode 100644 index 0000000..6abdf06 --- /dev/null +++ b/README.md @@ -0,0 +1,43 @@ +# Nix development environments, for various languages + +Those of us on NixOS never install language toolkits system-wide, unlike other distros. +Regrettably, many projects are not taking advantage of Nix for reproducible development environments. You should +make a big fuss about this in every open source project you are a part of and constantly evangelize about Nix. +Until Nix is universally adopted, this repository serves as a collection of flakes which provides compilers, +package managers, and basic development tools like LSPs for common languages. Simply clone this to a desired location, +then run: + +```bash +nix develop # + +# example +nix develop ~/.devenvs#rustNightly + +# provides rust-analyzer, rustc, cargo, and some others from nightly toolchain +``` + +## Automatic environment loading + +For convenience, you can use [nix-direnv](https://github.com/nix-community/nix-direnv) to +automatically load these environments. + +Simply add the following `.envrc` to the project directory: + +```bash +# file: .envrc +use flake # +``` + +Example: + +```bash +use flake ~/.devenvs#go +``` + +If you don't want to commit these files, make sure to run the following: + +```bash +# tell git to ignore these direnv files for this local repository +git update-index --skip-worktree .envrc .direnv +``` +