NixOS-WSL
nix-direnv
NixOS-WSL | nix-direnv | |
---|---|---|
6 | 27 | |
1,436 | 1,460 | |
4.7% | 3.7% | |
9.0 | 9.0 | |
4 days ago | 8 days ago | |
Nix | Nix | |
Apache License 2.0 | 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.
NixOS-WSL
-
NixOS for the Impatient
I have not used it but this might be what you are looking for: https://github.com/nix-community/NixOS-WSL
You could also install the nix package manager on Ubuntu.
- NixOS VM on windows machine
-
Easy and reproducible WSL distributions, with home-manager and Alpine linux
This project began as I didn't like that NixOS-WSL used systemd in the background, so I made this for myself. Some of the advantages: faster boot time, smaller image size and a FHS distro in the background, that lets you load dynamically linked binaries (for example, to have VSCode remote working OOTB).
-
About using Nix in my development workflow
There's a community port of NixOS to WSL2, complete with systemd support, plus Docker Desktop support and some other goodies: https://github.com/nix-community/NixOS-WSL
Nix also works on other WSL distros, provided they're using WSL2.
Nix supports cross-compiling Windows binaries as well. I know some people use it for that.
There is no 'native' support— you can't use Nix as an alternative to Winget or Chocolatey on Windows. Right now a lot of important stuff in Nixpkgs depends on a POSIX shell and Unix coreutils implementation for the basic build environment, and that's shared between many operating systems. Trying to fit Windows into that doesn't really make s sense, and there's not really any momentum behind the idea of using any particular other runtime environment (could be a scripting language instead of a shell + coreutils) for those basic builders.
But it's conceivable that some day, one or more companies using Nix on WSL might see vaiue in taking that extra step and put together a Nix-based package collection for Windows and help get the Nix Windows port out the door.
-
Build a temporary package to get started, iron out deps and learn how things work...
Basically, I managed to get NixOS inside WSL2 by using this: https://github.com/Trundle/NixOS-WSL
-
does nixos-wsl work in vscode with the wsl extension:
But whenever I try running code . with nixos-wsl(https://github.com/Trundle/NixOS-WSL), the error: `code: command not found` is thrown, also, whenever I try to open nixos-wsl from vscode, it does not work and the terminal throws a bunch of errors?
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.
What are some alternatives?
Home Manager using Nix - Manage a user environment using Nix [maintainer=@rycee]
devshell - Per project developer environments
dotfiles - :wrench: .files, including ~/.macos — sensible hacker defaults for macOS
flake-utils - Pure Nix flake utility functions [maintainer=@zimbatm]
nixos-vscode-server - Visual Studio Code Server support in NixOS
devenv - Fast, Declarative, Reproducible, and Composable Developer Environments
nixpkgs - Nix Packages collection & NixOS
lorri - Your project's nix-env
cue - The home of the CUE language! Validate and define text-based and dynamic configuration
flake-templates - A collection of barebone Nix shells for starting a project, provided as flake templates
digga - A flake utility library to craft shell-, home-, and hosts- environments.
naersk - Build Rust projects in Nix - no configuration, no code generation, no IFD, sandbox friendly.