- NixOS: v2.23.3
- Home Manager: v24.05
- Nixpkgs: v24.05
Extra addons:
- Squid proxy (currently not available on MacOS Silicon - missing binaries)
- AdGuardHome (configuration not yet complete)
This manual outlines the tools and configurations in your Nix-based development environment, focusing on devenv and devbox.
- Nixpkgs: The primary package collection for Nix.
- Home Manager: Manages user-specific configurations.
devenv is not explicitly listed in your configuration, but if you want to use it, you can add it to your setup. devenv provides reproducible development environments.
Devbox is included in your setup. It's a tool for creating isolated, reproducible development environments.
Usage:
devbox init # Initialize a new project
devbox add # Add a package to your project
devbox shell # Enter the development environment
- ripgrep: Fast search tool for recursive searching.
- fd: User-friendly alternative to
find
. - sd: Intuitive find & replace CLI.
- tree: Displays directory contents in a tree-like format.
- cachix: Binary cache for Nix.
- nil: Nix language server.
- nix-info, nixpkgs-fmt, nixci, nix-health: Various Nix utilities.
- Git: Configured with user details and aliases.
- LazyGit: Terminal UI for Git commands.
- Python:
- Poetry: Dependency management for Python.
- Node.js:
- node2nix: Converts Node.js packages to Nix expressions.
- nodejs_22: Node.js version 22.
- Bash and Zsh: Configured shells with custom aliases and PATH modifications.
- Xonsh: Python-based shell.
- any-nix-shell: Allows using Nix shells with any shell.
- direnv: Automatically loads and unloads environment variables.
- AdGuard Home: Network-wide ad blocker.
- home/default.nix: Primary configuration for Home Manager.
- Edit
home/default.nix
to customize your Home Manager configuration. - Run
nix run
to apply the configuration. - Use
devbox
to manage project-specific development environments:devbox init # In your project directory devbox add python nodejs # Add required tools devbox shell # Enter the environment
- Use
direnv
to automatically load environment variables:echo "use devbox" > .envrc direnv allow
- Add or modify packages in the
home.packages
section ofhome/default.nix
. - Create project-specific environments using devbox.
- Use direnv to automatically load project environments.
Remember to rebuild your environment after making changes to apply the new configuration:
just run
This setup provides a flexible development environment using devbox for project-specific setups and Home Manager for system-wide configurations. Adjust as needed for your specific development workflows.