Reproducible development environment using Nix flakes with modern tools and smart defaults.
Install Nix and Git on your system:
Nix
sh <(curl -L https://nixos.org/nix/install) --daemonGit - https://git-scm.com/install/
- Clone this repository:
git clone https://github.com/devanandersen/env.git ~/env
cd ~/env- Enable flakes:
Add
experimental-features = nix-command flakes
to whatever is existing, see
cat ~/.config/nix/nix.conf
cat /etc/nix/nix.conf
cat /nix/var/nix/profiles/default/etc/nix/nix.conf
- Apply the configuration:
sudo systemctl restart nix-daemon
For Mac (Apple Silicon):
nix run home-manager/master -- switch --flake .#devanFor Linux:
nix run home-manager/master -- switch --flake .#devanandersen@x86_64-linuxAfter the initial installation on Apple Silicon, you can use the nix-update alias from anywhere to apply configuration changes.
- zsh with autosuggestions and custom prompt
- direnv with nix-direnv for project-specific environments
- zoxide - smarter
cdthat learns your habits (usezcommand)
- eza - better
ls(aliased tols) - bat - better
catwith syntax highlighting (aliased tocat) - ripgrep - blazing fast grep
- fzf - fuzzy finder
- jq - JSON processor
- neovim with plugins:
- telescope.nvim - modern fuzzy finder
- fzf.vim - additional fuzzy finding
- coc.nvim - LSP support with Node.js and Ruby providers
- nerdtree - file explorer
- vim-fugitive - git integration
- vim-go, vim-rails - language support
- git with global gitignore for macOS system files
- nodejs & ruby with neovim integration
- ctags for code navigation
ls→eza(modern ls)cat→bat(syntax highlighted cat)vim→nvimcode→cursorz <dir>→ smart directory jumping
↑→:Rg(ripgrep search)↓→:Files(file finder)<leader>ff→ Telescope find files<leader>fg→ Telescope live grepff,ft,fb,fc,fl→ various FZF commands
- aarch64-darwin (Apple Silicon) - use
#devan - x86_64-linux - use
#devanandersen@x86_64-linux
To update all packages to latest versions:
nix flake update
nix run home-manager/master -- switch --flake .#devan # For Mac
# or
nix run home-manager/master -- switch --flake .#devanandersen@x86_64-linux # For Linux