* Managing user environments
@ 2019-07-29 15:13 Julien Lepiller
2019-07-29 16:04 ` Ricardo Wurmus
0 siblings, 1 reply; 4+ messages in thread
From: Julien Lepiller @ 2019-07-29 15:13 UTC (permalink / raw)
To: guix-devel
Hi Guix!
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. Ricardo encouraged me today to thare it and maybe work on integrating it in Guix proper. What do you think?
You can find the current code here: https://framagit.org/tyreunom/guix-home-manager
This channel currently works by building a guix profile, so it provides roll-back and atomicity in general. The profile corresponds to the whole home directory, which makes it read-only. There are ways to "punch holes", especially for the XDG cache and data directories, but also for any unsupported application. Supported applications are configured with a record-type, like system services.
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?
Thanks!
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: Managing user environments
2019-07-29 15:13 Managing user environments Julien Lepiller
@ 2019-07-29 16:04 ` Ricardo Wurmus
2019-07-30 8:46 ` Pierre Neidhardt
0 siblings, 1 reply; 4+ messages in thread
From: Ricardo Wurmus @ 2019-07-29 16:04 UTC (permalink / raw)
To: Julien Lepiller; +Cc: guix-devel
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
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: Managing user environments
2019-07-29 16:04 ` Ricardo Wurmus
@ 2019-07-30 8:46 ` Pierre Neidhardt
2019-07-30 9:32 ` Ricardo Wurmus
0 siblings, 1 reply; 4+ messages in thread
From: Pierre Neidhardt @ 2019-07-30 8:46 UTC (permalink / raw)
To: Ricardo Wurmus, Julien Lepiller; +Cc: guix-devel
[-- Attachment #1: Type: text/plain, Size: 650 bytes --]
This looks fantastic!
I can see quite some overlap with Shepherd User Services:
https://lists.gnu.org/archive/html/guix-devel/2019-02/msg00128.html
What do you think?
If we implement shepherd user services, we would essentially be able to
declare most (all?) of a user home folder.
The main difference I can see with Julien's approach is that the
declarativeness is not enforced since home would not be read-only.
Home would be initialized declaratively, but then the user or any
program is able to overwrite files in home. Which may or may not be the
desired behaviour.
Cheers!
--
Pierre Neidhardt
https://ambrevar.xyz/
[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 487 bytes --]
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: Managing user environments
2019-07-30 8:46 ` Pierre Neidhardt
@ 2019-07-30 9:32 ` Ricardo Wurmus
0 siblings, 0 replies; 4+ messages in thread
From: Ricardo Wurmus @ 2019-07-30 9:32 UTC (permalink / raw)
To: Pierre Neidhardt; +Cc: guix-devel
Pierre Neidhardt <mail@ambrevar.xyz> writes:
> I can see quite some overlap with Shepherd User Services:
> https://lists.gnu.org/archive/html/guix-devel/2019-02/msg00128.html
>
> What do you think?
Yes, I felt reminded of Shepherd User Services as well.
> The main difference I can see with Julien's approach is that the
> declarativeness is not enforced since home would not be read-only.
This could still be done as part of the service actions if desired.
--
Ricardo
^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2019-07-30 9:32 UTC | newest]
Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2019-07-29 15:13 Managing user environments Julien Lepiller
2019-07-29 16:04 ` Ricardo Wurmus
2019-07-30 8:46 ` Pierre Neidhardt
2019-07-30 9:32 ` Ricardo Wurmus
Code repositories for project(s) associated with this external index
https://git.savannah.gnu.org/cgit/guix.git
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.