unofficial mirror of guix-devel@gnu.org 
 help / color / mirror / code / Atom feed
From: "Ludovic Courtès" <ludo@gnu.org>
To: Andrew Tropin <andrew@trop.in>
Cc: guix-devel@gnu.org
Subject: Re: guix home
Date: Mon, 15 Mar 2021 17:51:16 +0100	[thread overview]
Message-ID: <87pn00e4xn.fsf@gnu.org> (raw)
In-Reply-To: <878s6u2pco.fsf@trop.in> (Andrew Tropin's message of "Thu, 11 Mar 2021 09:09:43 +0300")

Hi Andrew,

Andrew Tropin <andrew@trop.in> 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:
> https://git.sr.ht/~abcdw/rde/tree/master/item/gnu
>
> * 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

Nice!

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.

Agreed.

> * 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 https://youtu.be/t3zRzQnarUI
> mpv https://youtu.be/4lJaVzxO_Bs
> mpv https://youtu.be/ZRQtCvo8MoM

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.

Thanks!

Ludo’.


  parent reply	other threads:[~2021-03-15 16:54 UTC|newest]

Thread overview: 8+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-03-11  6:09 guix home Andrew Tropin
2021-03-14 15:46 ` Joshua Branson
2021-03-15  2:15   ` Ryan Prior
2021-03-16  8:23     ` Andrew Tropin
2021-03-15 16:51 ` Ludovic Courtès [this message]
2021-03-15 20:16   ` Julien Lepiller
2021-03-19  8:18     ` Andrew Tropin
2021-03-16  9:09   ` Andrew Tropin

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

  List information: https://guix.gnu.org/

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=87pn00e4xn.fsf@gnu.org \
    --to=ludo@gnu.org \
    --cc=andrew@trop.in \
    --cc=guix-devel@gnu.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/guix.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).