Next: Documentation, Previous: System Troubleshooting Tips, Up: GNU Guix [Contents][Index]
Guix supports declarative configuration of home environments by
utilizing the configuration mechanism described in the previous chapter
(see Defining Services), but for user’s dotfiles and packages. It
works both on Guix System and foreign distros and allows users to
declare all the packages and services that should be installed and
configured for the user. Once a user has written a file containing a
home-environment
record, such a configuration can be
instantiated by an unprivileged user with the guix home
command (see Invoking guix home
).
The user’s home environment usually consists of three basic parts:
software, configuration, and state. Software in mainstream distros are
usually installed system-wide, but with GNU Guix most software packages
can be installed on a per-user basis without needing root privileges,
and are thus considered part of the user’s home environment.
Packages on their own are not very useful in many cases, because often they
require some additional configuration, usually config files that reside
in XDG_CONFIG_HOME
(~/.config by default) or other
directories. Everything else can be considered state, like media files,
application databases, and logs.
Using Guix for managing home environments provides a number of advantages:
guix home reconfigure
invocation, a new home
environment generation will be created. This means that users can
rollback to a previous home environment generation so they don’t have to
worry about breaking their configuration.
rsync
to sync data with another host. This functionality is
still in an experimental stage, though.
Next: Documentation, Previous: System Troubleshooting Tips, Up: GNU Guix [Contents][Index]