[Nix-dev] Nix User Profile (NixUP)

Tomasz Czyż tomasz.czyz at gmail.com
Wed Nov 25 13:11:09 CET 2015


Awesome! I'll test.

2015-11-25 12:08 GMT+00:00 Thomas Strobel <ts468 at cam.ac.uk>:

> 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
>



-- 
Tomasz Czyż
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.science.uu.nl/pipermail/nix-dev/attachments/20151125/c44549d4/attachment.html 


More information about the nix-dev mailing list