summaryrefslogtreecommitdiff
path: root/README.md
blob: 847617142ed8c8d2c723b70b47945a9f0a2d446c (plain)
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.