guix-devel
[Top][All Lists]
Advanced

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

Re: Updates on the guix home manager


From: Ludovic Courtès
Subject: Re: Updates on the guix home manager
Date: Tue, 24 Sep 2019 09:56:11 +0200
User-agent: Gnus/5.13 (Gnus v5.13) Emacs/26.3 (gnu/linux)

Hello!

Julien Lepiller <address@hidden> skribis:

> more configurations supported, although it's still very limited. I now
> have configurations for hexchat, keepassxc, openbox and ssh as well as
> some generic functions that can be used as an escape hatch for software
> that is not yet configurable with services.
>
> A new "guix home" subcommand, with support for "guix home build" (that
> builds a home configuration), "guix home reconfigure" (that builds and
> installs a new generation of the home configuration, and ensures that
> $HOME is a symlink that points to it), and "guix home
> list-generations" (that lists available generations). I'd like to add
> more subcommands, taking inspiration from "guix system" (I copied a
> lot of code from Guix ^^).

Nice!

Thinking out loud, this makes me wonder whether we should explore ways
for each user to be running its own sub-Guix System.  Like we’d spawn a
Guix System container the first time a user logs in, and all the user
processes would run in there, and the user would be able to reconfigure
that system.  That system’s PID 1 could spawn user processes.  That
wouldn’t address application configuration like Guix Home does, though.

> When configuring your home directory, you would probably like to have
> some consistent choices between different configurations. For instance,
> I'm thinking about color themes of terminal applications. You probably
> want all your configured terminals to use the same colors. I think it
> would be convenient to provide one home service for each terminal from
> which to choose. Say you have xfce4-terminal-home-type and
> gnome-terminal-home-type, but didn't configure a
> mate-terminal-home-type. You would like both terminals to have the same
> color theme, but maybe the colors are not configured in the same way in
> both service types.
>
> I you have a color-theme-home-type that extends all terminals, color
> themes would be configured in all terminals, but because of the
> extension, a mate-terminal-home-type would be instantiated.
>
> My version of services introduce the notion of an extension point: all
> three terminal services would implement a color-theme extension point
> that could be targeted by another service. When it targets an
> extension point, a service does not need to specify what service is
> extended. In that case, no service is implicitely instantiated, and any
> service with that extension point is extended. This is exactly what we
> want to do here: by using the extension point, without specifying a
> target service, both gnome and xfce4 terminal configurations are
> updated with your color theme, and mate-terminal-home-type is not
> instantiated.
>
> This kind of extension could also be useful for the web service example
> we have seen: by creating an extension point in the nginx and apache
> services, the web service could extend that extension point with a
> value that would be translated into a server block or a virtual host,
> depending on which server is installed. However, it does not work well
> when no server is installed (because none is implicitely instantiated)
> or when both are installed (they will both serve the same domain on the
> same port).

This is exactly what came to mind!  We discussed a similar idea in
<https://issues.guix.gnu.org/issue/27155> but that didn’t come to
fruition.

We should try and see whether/how to add the extension points you’ve
implemented in the service infrastructure, WDYT?

Anyway, Guix Home is really cool and it’d be great to provide something
along these lines out-of-the-box with Guix.  I still find the read-only
home approach somewhat too radical, but maybe I’m not daring enough.
;-)

Thanks!

Ludo’.



reply via email to

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