[Top][All Lists]

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

Re: guix home

From: Ludovic Courtès
Subject: Re: guix home
Date: Mon, 15 Mar 2021 17:51:16 +0100
User-agent: Gnus/5.13 (Gnus v5.13) Emacs/27.1 (gnu/linux)

Hi Andrew,

Andrew Tropin <> skribis:

> There is an implementation of `guix home` subcommand, which behaves
> similar to `guix system`, allowing declaratively manage applications and
> their configurations, but for a particular user, not the whole OS:
> * Overview
> It possible to define the desired environment with home-environment
> record, which contains a list of home-services and few other
> configuration options and build and install it with `guix home
> reconfigure`. The service extension mechanism works the same way as in
> operating-system and utilize fold-services from (gnu services).
> Current set of implemented essential services:
> - home-service :: return the derivation
> - home-profile :: manages a separate profile with packages provided by
> user or other services
> - home-environment-vars :: allows to set env vars for user's shell
> - home-shepherd :: manages user's shepherd, can be extended by other services
> - home-run-on-first-login :: launches shepherd and some other one-time actions
> - home-run-on-reconfigure :: update shepherd configuration and update
> symlinks from ~/ and ~/.config to guix-home-environment/files
> - home-symlink-manager :: extends on-reconfigure with a update-symlinks script


When I stumbled upon your message, I thought it was about Julien’s
guix-home-manager, but now I gather you’re actually announcing another
project.  There’s no name like “home”.  :-)

> * Alternative solutions
> In contrast to guix-home-manager, `guix home` doesn't introduce any too
> innovative approaches (those ideas are cool, but in some use cases are
> too radical), `guix home` uses the same extension mechanism [fn:1] as
> guix system services and doesn't require to make HOME read-only. Thus,
> it's possible to start using `guix home` gradually, along with other
> tools and workflows (stow, guix package, chezmoi, yadm, etc).

I see.  So do I get it right that ‘guix home’ focuses primarily on
profile and user service management?  Could you give examples of a
minimal config and command invocations?

> Talking about Nix's home-manager: it's a nice software, but maintained
> separately from nix package manager and kinda disconnected from Nix
> itself, which introduce a lot of duplications between NixOS modules and
> home-manager modules, requires additional installation steps and overall
> makes it harder to use for not very experienced nix users. Probably, we
> can learn from it and do better here.


> * Future steps
> `guix home` still under active development, but already complete enough
> for exloration and early adoption. There is no any documentation yet,
> because things were changing often and probably will change one more
> time during comming cleanup, however there were few video streams,
> explaining internals of `guix home`:
> mpv
> mpv
> mpv

Oh nice, now I have to watch those!

> In addition to documentation it will be necessary to implement a lot of
> home-services for different tools, add rollback, shepherd-graph,
> extension-graph and other actions, but before doing it I would like to
> spend some time polishing essential services and decide on upstreaming
> the tool to guix itself.
> The question is: do we want and need at all `guix home` to be a part of
> the guix? As for me, the tool seems like a natural addition to guix's
> declarative configuration management approach and covers the missing
> piece of user space software management and as I mentioned early
> upstreaming will allow to make it better integrated with the rest of the
> guix and easier to use for newcommers and casual users, but my
> perception is obviously biased.
> Dear maintainers and users, what do you think about making `guix home` a
> part of guix?

I have yet to familiarize myself with ‘guix home’, but overall, I think
a solution à la ‘guix home’ or guix-home-manager would be a welcome
addition to Guix.

I agree that these tools are a natural extension of Guix and that it
makes sense to settle on one approach and make it part of Guix proper.



reply via email to

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