1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
|
# nix-combined
One flake, two targets:
- `darwinConfigurations.RyanMac` - the mac system (nix-darwin + home-manager),
equivalent to what `nix-dotfiles` built.
- `homeConfigurations.ryan` - standalone home-manager for `x86_64-linux`,
meant to run *on top of* Guix System as the home-manager substitute for
what `guix-dotfiles/home-config/home-configuration.scm` used to fully own.
Guix still owns the system config, package management, and three home
services that need shepherd (pipewire, dbus, downloads-gc) - see
`MIGRATION.md`.
`users/ryan/common.nix` holds everything shared by both (git, ssh, gpg-agent,
starship, zsh, zen-browser, neovim). `darwin.nix` and `linux.nix` hold the
platform-specific rest.
## Darwin
```
sudo nix run --extra-experimental-features "nix-command flakes" github:nix-darwin/nix-darwin -- switch --flake .#RyanMac \
--option "extra-substituters" "https://virby-nix-darwin.cachix.org" \
--option "extra-trusted-public-keys" "virby-nix-darwin.cachix.org-1:z9GiEZeBU5bEeoDQjyfHPMGPBaIQJOOvYOOjGMKIlLo="
```
Subsequent rebuilds: `rebuild` (zsh alias) or
`sudo darwin-rebuild switch --flake ~/.config/nix/.`
## Linux (Guix)
Requires `experimental-features = nix-command flakes` in
`~/.config/nix/nix.conf` (guix-dotfiles already symlinks this in).
```
nix run --extra-experimental-features "nix-command flakes" home-manager -- switch --flake .#ryan
```
Subsequent rebuilds: `rebuild` (zsh alias) or
`home-manager switch --flake ~/.config/home-manager#ryan`.
See `MIGRATION.md` for what needs to change in `guix-dotfiles` for this to
slot in cleanly (symlink target, overlapping config entries to remove, the
zsh login-shell switch), what stays Guix-native and why, and what got
dropped as dead weight along the way.
|