Browse Source

faq: add instructions on targeting multiple logins

Content adapted from

    https://github.com/rycee/home-manager/issues/394#issuecomment-422958338
master
Ben Sima 1 year ago
parent
commit
b08e6221e0
No account linked to committer's email address
1 changed files with 40 additions and 0 deletions
  1. 40
    0
      FAQ.md

+ 40
- 0
FAQ.md View File

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

to your `.profile` and `.zshrc` files, respectively. The
`hm-session-vars.sh` 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
combination.

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
files

- `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

```nix
{ ... }:

{
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.

[1]: https://www.reddit.com/r/NixOS/comments/9bb9h9/post_your_homemanager_homenix_file/

Loading…
Cancel
Save