So far, I have been trying out the Nix package manager by nix-env -i installing packages. Now, I would like to manage that with a ~/configuration.nix, like the example here, so that I can version it in my dotfiles. Is there a way to generate this configuration from my current environment?

All of the information that I can find about user or system level configuration is specific to NixOS, and assumes that I have run nixos-generate-config to create the file. This tool is not available from nixpkgs, which makes me think that it is designed only to create a NixOS install, not for general config-file creation.

Also, why doesn't the Nix package manager create this file when it is installed? How do Nix (not NixOS) users configure their installed software, such as Vim plugins, without this file?


This file is indeed specific to NixOS and it is created automatically when installing NixOS. That said, there are workarounds.


I manage my dotfiles on Ubuntu using Nix. I run this script which is just a wrapper around this installer.

The installer versions the dotfiles into a Nix package, and uses GNU stow to link them back to your home directory.

It is probably a bit complex for most people, but I use it to manage dotfiles between NixOS, Ubuntu and OSX.


You can manage a "nix shell" environment with a nix expression like the below:


{ pkgs ? import <nixpkgs> {} }:
pkgs.mkShell {
  buildInputs = [ pkgs.bash pkgs.zsh pkgs.curl pkgs.wget ];

And then to 'enter' this environment run: nix-shell shell.nix

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.