guix-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Managing user environments


From: Ricardo Wurmus
Subject: Re: Managing user environments
Date: Mon, 29 Jul 2019 18:04:33 +0200
User-agent: mu4e 1.2.0; emacs 26.2

Hi Julien,

> A few months ago, I created a new channel called the guix home manager
> whose purpose is to allow to manage user environments in a similar way
> to services.
>
> The channel is about managing dotfiles. I think configuration should
> be managed in a stateless fashion, and that's what guix is good at.

I think this is a very good idea and I’d love to see more integration
with Guix.

> You can find the current code here: 
> https://framagit.org/tyreunom/guix-home-manager

I’m not convinced that a package definition is the most appropriate
abstraction to use here, because we only really care about the builder.
Using a profile is probably a good idea, though, because of roll-backs
etc.  Much like “guix pull” builds a profile under the hood, the home
manager could do the same.

Other ideas I mentioned on IRC were:

- integration with “guix system” and/or manifests; running “guix package
  --profile…” is probably not the most convenient interface.

- storage of secrets.  Can we (or: does it make sense to) encrypt the
  generated configuration files and use a PAM service to automatically
  unlock and relocate them upon login?

> I still have some doubts about it, whether it's in the scope for guix
> or not, whether it actually scales, and such. Any opinion is
> welcome. Again, would you like to see it, or a modified version of
> it,in guix itself or should it be kept in a separate channel?

I’d love to see a variant of this become part of Guix proper in the
future.  It shouldn’t be forced upon users, of course, but I think it
would be great to offer this as an opt-in feature, much like stricter
package management with manifests is opt-in.

Thank you for sharing this!

--
Ricardo




reply via email to

[Prev in Thread] Current Thread [Next in Thread]