From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mp1 ([2001:41d0:8:6d80::]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) by ms11 with LMTPS id xnc5HzuRT2ADYgAA0tVLHw (envelope-from ) for ; Mon, 15 Mar 2021 16:54:19 +0000 Received: from aspmx1.migadu.com ([2001:41d0:8:6d80::]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) by mp1 with LMTPS id CP9WGjuRT2CmOwAAbx9fmQ (envelope-from ) for ; Mon, 15 Mar 2021 16:54:19 +0000 Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by aspmx1.migadu.com (Postfix) with ESMTPS id D8DDE18B9A for ; Mon, 15 Mar 2021 17:54:18 +0100 (CET) Received: from localhost ([::1]:45096 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1lLqTx-0001bj-Qc for larch@yhetil.org; Mon, 15 Mar 2021 12:54:17 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:38490) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1lLqR8-0008Pw-8k for guix-devel@gnu.org; Mon, 15 Mar 2021 12:51:23 -0400 Received: from fencepost.gnu.org ([2001:470:142:3::e]:46737) by eggs.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1lLqR7-0005dL-GF; Mon, 15 Mar 2021 12:51:21 -0400 Received: from [2a01:e0a:1d:7270:af76:b9b:ca24:c465] (port=46478 helo=ribbon) by fencepost.gnu.org with esmtpsa (TLS1.2:RSA_AES_256_CBC_SHA1:256) (Exim 4.82) (envelope-from ) id 1lLqR4-0000yt-KC; Mon, 15 Mar 2021 12:51:21 -0400 From: =?utf-8?Q?Ludovic_Court=C3=A8s?= To: Andrew Tropin Subject: Re: guix home References: <878s6u2pco.fsf@trop.in> X-URL: http://www.fdn.fr/~lcourtes/ X-Revolutionary-Date: 25 =?utf-8?Q?Vent=C3=B4se?= an 229 de la =?utf-8?Q?R?= =?utf-8?Q?=C3=A9volution?= X-PGP-Key-ID: 0x090B11993D9AEBB5 X-PGP-Key: http://www.fdn.fr/~lcourtes/ludovic.asc X-PGP-Fingerprint: 3CE4 6455 8A84 FDC6 9DB4 0CFB 090B 1199 3D9A EBB5 X-OS: x86_64-pc-linux-gnu Date: Mon, 15 Mar 2021 17:51:16 +0100 In-Reply-To: <878s6u2pco.fsf@trop.in> (Andrew Tropin's message of "Thu, 11 Mar 2021 09:09:43 +0300") Message-ID: <87pn00e4xn.fsf@gnu.org> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/27.1 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable X-BeenThere: guix-devel@gnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "Development of GNU Guix and the GNU System distribution." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: guix-devel@gnu.org Errors-To: guix-devel-bounces+larch=yhetil.org@gnu.org Sender: "Guix-devel" X-Migadu-Flow: FLOW_IN ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=yhetil.org; s=key1; t=1615827259; h=from:from:sender:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:cc:mime-version:mime-version: content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references:list-id:list-help: list-unsubscribe:list-subscribe:list-post; bh=wnmTUTMlvx6a6s51UhxeHBnis+kBlxvmYdZE63AN0eI=; b=Nrz/jrHezTw/4ozdTdsYbQIHeho3CbnxNfrlWY8UnNCV87ImcAQcVGaQY94XPXvRREMqek S5vX8PLOhdifueisvpFmEo7I2j4lamNp/BJW/3z5VvWoaQIU/apbtYQ0g/GvcY2yT0iuN4 HKcKhN0SdvpKWnDxc9rOKe7DUE1SA+gedlXjabLoqBGCGveNrN+iaaV8wITL/T3kgxTf5z 7gH/EUAuL8nSwQumGhEUyFmfi49nmG6em7jzdi7KkBsJa8vozN4gy9ObMVuHgHpGanc2/c MzWhO/qI46I21M8chC0zw6KTNT+SxKY+iV1fvFfSDY0tmtw1o/RtJMu+UC9qYg== ARC-Seal: i=1; s=key1; d=yhetil.org; t=1615827259; a=rsa-sha256; cv=none; b=IqihWbLMWiFApTPIsMu/aWfnw3PDXu7EElZFGnlKnih4pnar4JDbuSlkwJ3NzQqv5MjURG 14AS8RDKF17EPjuKh37WUpOpoXJkHjtHRb1iL90eoqrNhW7h3jyeQZWAY15F+JjO7Mb6TU erxDhgphhkU44HLXG3H0tYeebQ3vus0IeFhs2qaXVi5NM38BM07uICwds39IR5W/aN5BTW bbslnwT5E/WiLmUJegvzqCvF2gmtf/otv285rFaRtfuP1GkZIiZKeRD1IBrx9OngzYzY0J rZc1WYW+LMnV8JEP7V7emXMQijIospkyfrx+hgAk6U33DgHklc88pAutYxy9Bw== ARC-Authentication-Results: i=1; aspmx1.migadu.com; dkim=none; dmarc=pass (policy=none) header.from=gnu.org; spf=pass (aspmx1.migadu.com: domain of guix-devel-bounces@gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=guix-devel-bounces@gnu.org X-Migadu-Spam-Score: -2.90 Authentication-Results: aspmx1.migadu.com; dkim=none; dmarc=pass (policy=none) header.from=gnu.org; spf=pass (aspmx1.migadu.com: domain of guix-devel-bounces@gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=guix-devel-bounces@gnu.org X-Migadu-Queue-Id: D8DDE18B9A X-Spam-Score: -2.90 X-Migadu-Scanner: scn0.migadu.com X-TUID: gDgUJG/Z3Ots 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: > 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 serv= ices > - home-run-on-first-login :: launches shepherd and some other one-time ac= tions > - 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 s= cript Nice! When I stumbled upon your message, I thought it was about Julien=E2=80=99s guix-home-manager, but now I gather you=E2=80=99re actually announcing anot= her project. There=E2=80=99s no name like =E2=80=9Chome=E2=80=9D. :-) > * 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 =E2=80=98guix home=E2=80=99 focuses prima= rily 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 =E2=80=98guix home=E2=80=99, but over= all, I think a solution =C3=A0 la =E2=80=98guix home=E2=80=99 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=E2=80=99.