[Nix-dev] Nix User Profile (NixUP)

Matthias Beyer mail at beyermatthias.de
Wed Nov 25 14:00:35 CET 2015


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.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 819 bytes
Desc: not available
Url : http://lists.science.uu.nl/pipermail/nix-dev/attachments/20151125/2a9a7815/attachment.bin 


More information about the nix-dev mailing list