Browse Source

faq: add instructions on targeting multiple logins

Content adapted from
Ben Sima Robert Helgesson 1 year ago
No known key found for this signature in database GPG Key ID: 36BDAA14C2797E89
1 changed files with 40 additions and 0 deletions
  1. +40

+ 40
- 0 View File

@@ -64,3 +64,43 @@ adding

to your `.profile` and `.zshrc` files, respectively. The
`` file should work in most Bourne-like shells.

How do set up a configuration for multiple users/machines?

A typical way to prepare a repository of configurations for multiple
logins and machines is to prepare one "top-level" file for each unique

For example, if you have two machines, called "kronos" and "rhea" on
which you want to configure your user "jane" then you could create the

- `kronos-jane.nix`,
- `rhea-jane.nix`, and
- `common.nix`

in your repository. On the kronos and rhea machines you can then make
`~jane/.config/nixpkgs/home.nix` be a symbolic link to the
corresponding file in your configuration repository.

The `kronos-jane.nix` and `rhea-jane.nix` files follow the format

{ ... }:

imports = [ ./common.nix ];

# Various options that are specific for this machine/user.

while the `common.nix` file contains configuration shared across the
two logins. Of course, instead of just a single `common.nix` file you
can have multiple ones, even one per program or service.

You can get some inspiration from the [Post your home-manager home.nix
file!][1] Reddit thread.