65 lines
2 KiB
Markdown
65 lines
2 KiB
Markdown
# nix config
|
|
|
|
this setup allows natalie and chloe to share common configuration between their machines, but also share useful modules between each other.
|
|
|
|
```
|
|
lib/ # reusable functions
|
|
modules/ # reusable modules
|
|
+-- macos/ # nix-darwin configurations
|
|
+-- nixos/ # linux configurations
|
|
+-- nixvim/ # neovim configurations
|
|
+-- shared/ # shared between nixos-rebuild & darwin-rebuild
|
|
+-- home-manager.nix # home program presets
|
|
users/
|
|
+-- chloe/
|
|
| +-- user.nix # info about her
|
|
| +-- configuration.nix # for all hosts
|
|
| +-- home.nix # for all hosts
|
|
| +-- sandwich/
|
|
| | +-- configuration.nix # per host
|
|
| | +-- home.nix
|
|
| +-- paperback/
|
|
| ...
|
|
+-- natalie/
|
|
+-- user.nix # info about her
|
|
...
|
|
```
|
|
|
|
A new machine can be added by adding a new definition in `flake.nix`. Note that the user and host `configuration.nix` and `home.nix` files are
|
|
|
|
## macOS installation instructions
|
|
|
|
Install Nix using the upstream Nix (Pick "no" then "yes):
|
|
|
|
```
|
|
curl --proto '=https' --tlsv1.2 -sSf -L https://install.determinate.systems/nix | \
|
|
sh -s -- install
|
|
```
|
|
|
|
While this installs, now is a good time to perform manual setup steps:
|
|
|
|
- Setup your SSH keys in `~/.ssh`
|
|
- Configure the device hostname in System Settings in
|
|
- About -> Name
|
|
- General -> Sharing -> Local Hostname
|
|
- Make sure you're logged into iCloud / Mac App Store
|
|
- `xcode-select --install` to make sure Git and other utilities are available.
|
|
- Optional: Disable app verification with `sudo spctl --master-disable`, then, go to System Settings -> Privacy to allow unsigned apps.
|
|
|
|
Once Nix is installed, open a new shell and clone the repository:
|
|
|
|
```
|
|
# Clone via HTTPs
|
|
git clone https://git.paperclover.net/clo/config.git
|
|
# With SSH Authentication
|
|
git clone git@git.paperclover.net:clo/config
|
|
```
|
|
|
|
The location of the cloned repository must match what is in your `user.nix` file.
|
|
|
|
Setup `nix-darwin` using the `switch` helper:
|
|
|
|
```
|
|
./switch
|
|
```
|
|
|