* Splitting up the operating-system configuration
@ 2019-10-14 1:56 Daniel Schäfer
0 siblings, 0 replies; only message in thread
From: Daniel Schäfer @ 2019-10-14 1:56 UTC (permalink / raw)
To: help-guix
Hi,
when my system configuration file grows large, I want to split it up
into multiple files.
For example, I'd like to have a set of basic configurations for all of
my systems, one for just the laptops, one for all systems with a GUI and
so on.
On NixOS I have been doing this by using `imports = [ base.nix
laptop.nix guix.nix ];`,where each imported file looks like just another
system configuration and Nix merges them all together.
Is there something like this in Guix, which can merge multiple configs
together?
My first try was to use modules and define variables. This could be a
list called `my-gui-packages` that I then use in the machine specific
configuration file and add it to the `operating-system`.
"Including" such a configuration layer, however, requires much change to
the machine configuration file that has the `use-module` statement.
What I'm doing now, is to define services in separate modules and
include them in the machine specific `operating-system`.
With this approach I define my own service that can override other
services, such as adding packages to the global environment
(profile-service-type),
adding my user (account-service-type), adding config files to /etc
(etc-service-type).
But can I do everything by defining a service? Can I change the values
of `operating-system`, such as `keyboard-layout`, `kernel-arguments`?
Adding to `services` is equivalent to adding a `service-extension` in my
custom service, right?
Kind of a side question: Can I set a global environment variable, such
as $EDITOR in my config?
Thanks,
Daniel
^ permalink raw reply [flat|nested] only message in thread
only message in thread, other threads:[~2019-10-14 1:56 UTC | newest]
Thread overview: (only message) (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2019-10-14 1:56 Splitting up the operating-system configuration Daniel Schäfer
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.