[Nix-dev] Nix User Profile (NixUP)

Arseniy Seroka ars.seroka at gmail.com
Wed Nov 25 21:07:38 CET 2015


Hello! Where I can take a look at some examples of nixup configurations?

2015-11-25 16:00 GMT+03:00 Matthias Beyer <mail at beyermatthias.de>:

> From what I read in your mail, this looks promising. I hope it is not
> just advertising.
>
> Will test asap I can come up with some time. Beeing a student does not
> mean you have time for all the things... :-(
>
> On 25-11-2015 13:08:41, Thomas Strobel wrote:
> > Hi!
> >
> > I'm very happy to say that a new version of NixUP is available for
> > testing. You can find the latest version at [1]. Please read
> > NIXUP_README.md for help on how to test NixUP.
> >
> >
> > What is Nix User Profile (NixUP)? NixUP is a declarative configuration
> > for the user environment. It is an equivalent to the NixOS configuration
> > method that is based around 'nixos-rebuild' and
> > '/etc/nixos/configuration.nix'. NixUP provides a module system for
> > configuring the user environment and is intended as a replacement for
> > the imperative 'nix-env' commands. NixUP allows to, e.g., install
> > packages, manage user defined services and to manage resources.
> >
> >
> > NixUP consists of a new program, called 'nixup' and a declarative
> > configuration rooted at '$XDG_CONFIG_HOME/nixup/profile.nix' (e.g.
> > ~/.config/nixup/profile.nix). Basically, the workflow for managing the
> > NixUP user profile is the same as how the NixOS system configuration is
> > being managed. The 'profile.nix' is edited by the user, and then turned
> > into an active environment through 'nixup'.
> >
> > The important commands for using 'nixup' are:
> >
> > nixup build
> >    -- Builds a user profile. By default the profile is defined
> >       in $XDG_CONFIG_HOME/nixup/profile.nix.
> >
> > nixup login
> >    -- Builds a user profile that will be activated on the next login.
> >       That is similar to nixos-rebuild boot.
> >
> > nixup switch
> >    -- Builds a user profile and immediately switches to it.
> >
> > nixup edit
> >    -- Opens an editor with the current configuration.
> >
> >
> > NixUP also brings an small program that helps to install and to remove
> > software packages. If 'config.imperativeNix.enable=true' is set in the
> > 'profile.nix' configuration, then a program 'nix-package' becomes
> > available that manages a list of packages to be installed into the user
> > environment. By default the list is maintained at
> > '$XDG_CONFIG_HOME/nixup/packages.nix', from where the list is read by a
> > module of the NixUP system.
> >
> > The commands for using 'nix-package' are:
> >
> > nix-package install hello
> >
> > nix-package remove hello
> >
> > Note that the packages are not pinned at a particular version but are
> > linked to the currently active nixpkgs channel. A way to pin a package
> > will be provided later.
> >
> >
> > Besides managing software packages, NixUP also provides a way to manage
> > user controlled services. NixUP allows to define services for 'systemd
> > --user', similarly to how NixOS allows to define services for 'systemd'.
> > That means that the feature of managing services within NixUP is bound
> > very tightly to 'systemd', and will not be available on other platforms
> > like OSX or Windows.
> >
> >
> > The last interesting feature of NixUP is that is allows to manage
> > resources. That means, it allows to define files in 'profile.nix' that
> > are then linked into the $HOME directory of a user, or into any
> > sub-directory of $HOME. The necessary sub-directories and links are
> > created as needed, and automatically removed when the 'profile.nix'
> > changes. Automatically created sub-directories are removed if they are
> > empty after all links have been removed. So NixUP has a built-in way for
> > managing, e.g., dot-files.
> >
> >
> > The plan is now to test NixUP and hopefully merge NixUP into NixOS. The
> > next step then will then be to extend NixOS and NixUP so that the same
> > configuration can be written into the NixOS user declaration of
> > 'configuration.nix' and into the user's NixUP 'profile.nix'. After that,
> > we could generalize the NixOS modules of those services that could also
> > run as user services and make them available for both NixOS and NixUP.
> > In the long run, NixUP should be developed into an extensive collection
> > of user modules that allow to declaratively configure and manage user
> > applications and user services.
> >
> >
> > Please let me know what you think, and please try to test NixUP! :)
> >
> >
> > Best regards,
> > Thomas
> >
> >
> > [1] https://github.com/NixOS/nixpkgs/pull/9250
> > _______________________________________________
> > nix-dev mailing list
> > nix-dev at lists.science.uu.nl
> > http://lists.science.uu.nl/mailman/listinfo/nix-dev
>
> --
> Mit freundlichen Grüßen,
> Kind regards,
> Matthias Beyer
>
> Proudly sent with mutt.
> Happily signed with gnupg.
>
> _______________________________________________
> nix-dev mailing list
> nix-dev at lists.science.uu.nl
> http://lists.science.uu.nl/mailman/listinfo/nix-dev
>
>


-- 
Sincerely,
Arseniy Seroka
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.science.uu.nl/pipermail/nix-dev/attachments/20151125/c9000299/attachment.html 


More information about the nix-dev mailing list