nix-direnv
flake-utils-plus
nix-direnv | flake-utils-plus | |
---|---|---|
27 | 19 | |
1,460 | 444 | |
3.7% | - | |
9.0 | 4.9 | |
8 days ago | 24 days ago | |
Nix | Nix | |
MIT License | MIT License |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
nix-direnv
- A faster, persistent implementation of direnv's use_Nix and use_flake
-
How do multiple versions of the package internally work?
BTW: I personally use direnv with nix-direnv. This basically works by setting your shell with proper tooling when you enter the directory.
-
I have a few beginner question, what is the difference between nix shell/env and what is the difference between flakes/home-manager?
I'm not sure what you mean by nix env, maybe you are referring to nix-direnv?
-
Just a reminder to make sure Garbage Collection is running
Although currently I'm using direnv + nix-direnv. Keep in mind that direnv has builtin nix support which is very basic and doesn't do any caching. So you still needs this add-on to preserve roots.
-
What do you install with configuration.nix and home manager
I distinguish between system level things and user level things, even though I don't really have different users on my machine. I install the bare minimum number of packages + a lot of different drivers in the configuration.nix, and desktop and editor related things in HM. For development environment, I have environment per project using mkShell and https://github.com/nix-community/nix-direnv, which allows you to switch to the specific environment once you cd into the directory. (Although I do have python installed globally with some commonly used packages such as numpy, so I can just start python and write something when I need to, without creating an environment)
-
How do YOU use your PKMS?
I further make my software projects so that when I click a link I go into an environment pre-loaded with their dependencies so dropping in/out of projects is always frictionless. I do this with the reproducibility guarantees of nix, along with glue like nix-direnv and envrc-mode to direnv.
-
Nuenv: an experimental Nushell environment for Nix
(I also use nix-direnv)
-
NixOS + Haskell best practices circa March 2023
direnv
-
Minimal approach for python devel environment with flake
Personally I use nix-direnv. No longer the need to run nix develop or nix-shell. By setting up a .envrc with either use nix or use flake it will automatically install all the packages from default/shell.nix or flake.nix
-
Nix and envrc
Direnv is installed using the nix-direnv installation instructions under "Via configuration.nix in NixOS". I read some recommendations that envrc.el is a better alternative then direnv.el, and after some testing I have to agree. (envrc-global-mode) is enabled in my config. This works perfectly with a normal emacs instance.
flake-utils-plus
-
[Question] When using flakes, can I remove all channels?
You don't need channels to use nix-shell or nix-env. You can generate the Nix path and registry from your flake inputs. flake-utils-plus makes this easy with nix.generateRegistryFromInputs and nix.generateNixPathFromInputs.
-
How do I deploy a configuration to a machine with an existing hardware-configuration.nix?
Use flake-utils-plus to easily define multiple systems in flake.nix.and then use the --target-host flag of nixos-rebuild to deploy it remotely.
-
Have a shell command in configuration.nix that runs on nixos-rebuild
If you're trying to handle multiple systems with one config a flake is a significantly better option. I would personally recommend looking at flake-utils-plus and specifically this example config.
- Nix Flakes
-
Best way to manage multiple home manager configs for both NixOS and non-NixOS systems using flakes?
I looked at some past threads / examples and saw people recommend flake-utils-plus, but after reading the examples I don't understand how I would get home-manager on Darwin or Ubuntu.
-
Nix: Taming Unix with Functional Programming
Depending on your specific needs, the channelsConfig (modify arguments passed to Nixpkgs) and overlay tooling in flake-utils-plus may be adequate: https://github.com/gytis-ivaskevicius/flake-utils-plus/tree/...
-
What to do...
For flakes you don't have to set up everything manually there are helper libraries, I use flake-utils-plus.
-
How shall I install a package not found at https://search.nixos.org/packages?
Converting to flakes is not that hard if you use a good library. The documentation is other people's configs, really.
-
I made a thing you can load in Nix repl to get variables from your NixOS configuration
Neat! I've been using flake-utils-plus's implementation until now. https://github.com/gytis-ivaskevicius/flake-utils-plus/blob/master/lib/repl.nix
-
How to use a patched nixpkgs locally?
I use flake-utils-plus based configuration to apply patches on top of nixpkgs where overlays don't suffice.
What are some alternatives?
devshell - Per project developer environments
Home Manager using Nix - Manage a user environment using Nix [maintainer=@rycee]
flake-utils - Pure Nix flake utility functions [maintainer=@zimbatm]
devenv - Fast, Declarative, Reproducible, and Composable Developer Environments
nixGL - A wrapper tool for nix OpenGL application [maintainer=@guibou]
lorri - Your project's nix-env
poetry2nix - Convert poetry projects to nix automagically [maintainer=@adisbladis]
flake-templates - A collection of barebone Nix shells for starting a project, provided as flake templates
NixOS-docker - DEPRECATED! Dockerfiles to package Nix in a minimal docker container
naersk - Build Rust projects in Nix - no configuration, no code generation, no IFD, sandbox friendly.
deploy-rs - A simple multi-profile Nix-flake deploy tool.