Next: Invoking guix home, Previous: Configuring the Shell, Up: Home Configuration [Contents][Index]
A home service is not necessarily something that has a daemon and
is managed by Shepherd (see Jump Start in The GNU Shepherd
Manual), in most cases it doesn’t. It’s a simple building block of the
home environment, often declaring a set of packages to be installed in
the home environment profile, a set of config files to be symlinked into
XDG_CONFIG_HOME
(~/.config by default), and environment
variables to be set by a login shell.
There is a service extension mechanism (see Service Composition)
which allows home services to extend other home services and utilize
capabilities they provide; for example: declare mcron jobs
(see GNU Mcron) by extending Mcron Home Service; declare daemons by extending Shepherd Home Service; add
commands, which will be invoked on by the Bash by extending
home-bash-service-type
.
A good way to discover avaliable home services is using the
guix home search
command (see Invoking guix home). After
the required home services are found, include its module with the
use-modules
form (see Using Guile Modules in The GNU Guile Reference Manual), or the #:use-modules
directive (see Creating Guile Modules in The GNU
Guile Reference Manual) and declare a home service using the
service
function, or extend a service type by declaring a new
service with the simple-service
procedure from (gnu
services)
.
• Essential Home Services | Environment variables, packages, on-* scripts. | |
• Shells | POSIX shells, Bash, Zsh. | |
• Mcron | Scheduled User’s Job Execution. | |
• Shepherd | Managing User’s Daemons. |
Next: Invoking guix home, Previous: Configuring the Shell, Up: Home Configuration [Contents][Index]