You may want to try asking on Discourse <https://discourse.nixos.org>, the NixOS/user channel on Matrix <https://matrix.to/#/%23space:nixos.org>, or reddit <https://www.reddit.com/r/NixOS/>.
You may want to try asking on Discourse <https://discourse.nixos.org>, the NixOS/user channel on Matrix <https://matrix.to/#/%23space:nixos.org>, or reddit <https://www.reddit.com/r/NixOS/>.
Flakes always copy the directory to the store unless you use `-f .` to specify the current directory (e.g., `nix develop -f .`).
I’m not familiar with devenv, so I don’t know its capabilities. I do know that flakes support multiple `devShell` outputs, which would let you have different shells for different purposes.
If this is for development, you can create a development shell for your project. Doing it that way allows you to have a custom environment tailored to each project. It’s also practically required for developing with native dependencies.
wiki.nixos.org/wiki/Develop...
If you need Python configured with certain packages available, you can use `python.withPackages` to set that up. The result of that can be added to `home.packages` in Home Manager.
nixos.org/manual/nixpk...
Anyway, given the way you’ve structured your flake, if you ever do need to support more hosts, it shouldn’t be difficult to add that.
Seems reasonable. If you don’t need to deploy to multiple machines from one flake, it makes sense not to add support for it.
I avoid using flake frameworks for basically the same reason. Even though the boilerplate can be annoying, I find it easier to understand things and deal with changes when everything (or as much as possible) is explicit.
I used to do a lot of magic in my config to make things discoverable and defined by convention in the filesystem, but I found it made my configs harder to understand. You can see those old configs in the `attic` branch at github.com/reckenrode/n....
The rest of my config is handled through the module system (see nixos.org/manual/nixos...). I define new options that I can toggle or set on hosts that need them. Some are enabled by default, but I try to keep those to a minimum.
Since `hmModules` are just modules, you manipulate them like modules and combine them using `lib.mkMerge`. It’s not something I use now, but I’ve used it in the past to use a base module and then extend it with something I needed for that host.
I import my Home Manager configurations as `hmModules` at github.com/reckenrode/n.... This is a personal convention.
In my hosts’ `configuration.nix`, I specify the module I want to use for my user. For zhloe, that’s github.com/reckenrode/n....
For example, zhloe is my router. It runs NixOS. I define the configuration in my `flake.nix` at github.com/reckenrode/n....
I use `_module.args` to pass my flake’s `inputs`, so that I can use it later in the configuration. This allows me to configure Home Manager for that config how I want.
Sure, this is a good place to start a thread.
* `hosts` is where I keep the configuration for my various hosts.
* `home-manager` is where I keep the configuration for Home Manager.
These are just conventions. I explicitly import the host configurations and HM configurations where I use them.