all messages for Guix-related lists mirrored at yhetil.org
 help / color / mirror / code / Atom feed
* guix home
@ 2023-03-26 16:43 Gottfried
  2023-03-26 17:09 ` hub.lombard
  2023-03-27 23:28 ` Csepp
  0 siblings, 2 replies; 13+ messages in thread
From: Gottfried @ 2023-03-26 16:43 UTC (permalink / raw)
  To: help-guix


[-- Attachment #1.1.1: Type: text/plain, Size: 274 bytes --]

Hi,

has everybody of you installed his personal environment "guix home"

or is there somebody who hasn’t?
If so, why?

I am going to shape my configuration
and checking out what others do
to find the best solution for my case.
-- 
Kind regards

Gottfried


[-- Attachment #1.1.2: OpenPGP public key --]
[-- Type: application/pgp-keys, Size: 3191 bytes --]

[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 840 bytes --]

^ permalink raw reply	[flat|nested] 13+ messages in thread
* guix home
@ 2021-03-11  6:09 Andrew Tropin
  2021-03-14 15:46 ` Joshua Branson
  2021-03-15 16:51 ` Ludovic Courtès
  0 siblings, 2 replies; 13+ messages in thread
From: Andrew Tropin @ 2021-03-11  6:09 UTC (permalink / raw)
  To: guix-devel

Hi guix!

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

For now I personally manage just a few applications on my system and it
seems that everything works as expected, but I plan to migrate all the
"dotfiles" to it in nearest future. AFAIK, some people succesfully use
it on other GNU/Linux distributions.

* 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).

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

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?

* Footnotes

[fn:1] https://lists.sr.ht/~abcdw/rde-devel/%3C87sg56g97i.fsf%40trop.in%3E

--
Best regards,
Andrew Tropin


^ permalink raw reply	[flat|nested] 13+ messages in thread

end of thread, other threads:[~2023-04-07 12:24 UTC | newest]

Thread overview: 13+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2023-03-26 16:43 guix home Gottfried
2023-03-26 17:09 ` hub.lombard
2023-03-27  7:01   ` hub.lombard
2023-03-27 23:28 ` Csepp
2023-04-07 12:23   ` Gottfried
  -- strict thread matches above, loose matches on Subject: below --
2021-03-11  6:09 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
2021-03-15 20:16   ` Julien Lepiller
2021-03-19  8:18     ` Andrew Tropin
2021-03-16  9:09   ` Andrew Tropin

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.