dotfiles/.config/nix
2024-10-25 10:48:24 +07:00
..
files/floorp feat(nix): Configure floorp with nix 2024-10-20 06:39:31 +07:00
lib fix(nix): Fix firefox-darwin overlay is never actually applied 2024-10-25 09:15:40 +07:00
modules/home-manager fix(nix): PassFF Host symlink 2024-10-20 11:37:27 +07:00
overlays docs(nix): Comments explaining why the tests are disabled. 2024-10-20 20:47:07 +07:00
systems fix(nix): Fix firefox-darwin overlay is never actually applied 2024-10-25 09:15:40 +07:00
users fix(nix/darwin): Unable to launch firefox-based browser 2024-10-25 10:48:24 +07:00
.gitignore fix: Fix gitignore 2024-07-11 05:52:16 +07:00
flake.lock refactor(nix): Overlays 2024-10-20 09:20:12 +07:00
flake.nix refactor(nix): Overlays 2024-10-20 09:20:12 +07:00
README.md docs(nix): Structure 2024-10-18 21:12:15 +07:00

null2264's Nix Setup

You need to install Nix before following this guide: sh <(curl -L https://nixos.org/nix/install) and symlink this dir to ~/.config/nix

Structure

├── flake.lock
├── flake.nix
├── lib                 # Self-explanatory, it contains helper functions
│   ├── mkCommon.nix
│   └── mkSystem.nix
├── modules             # Contains shared configuration across system, across user
│   └── home-manager
│       └── floorp.nix
├── systems             # Contains configurations depending on what type OS nix is being used in
│   ├── darwin          # macOS
│   │   ├── configuration.nix
│   │   └── default.nix
│   └── nix             # Linux-alike
│       ├── default.nix
│       └── potato
│           └── default.nix
└── users               # Contains configurations for multi-user setup
    ├── default.nix
    └── ziro
        ├── darwin.nix
        ├── default.nix
        └── linux.nix

Setup

macOS

Nix in macOS is handled by nix-darwin.

Initial

This is done because nix-darwin commands is not yet added to PATH, should be a one-time thing

nix-env -iA nixpkgs.git
# Run `sudo chown $USER /nix/var/nix/profiles/per-user/$USER` if that returns error

nix build .#darwinConfigurations.<host>.system

./result/sw/bin/darwin-rebuild switch --flake .#<host>
# or
nix run nix-darwin -- switch --flake .#<host>

Rebuild

After initial setup, you should now be able to use the command directly:

darwin-rebuild build --flake .  # or you can specify the hostname with `--flake . #<hostname>`

# or if you're feeling lucky

darwin-rebuild switch --flake .

Other

Nix in non-NixOS Linux is handled by system-manager.

Rebuild

Unfortunately, root access is required in order to use system-manager.

sudo -i nix run 'github:numtide/system-manager' --extra-experimental-features "nix-command flakes" -- switch --flake $PWD

Home

This is for per-user setup. Instead of managing the entire system, you're managing one user at a time. This is handled by home-manager

Rebuild

home-manager build --flake .  # or you can specify the user with `--flake . #<username>@<hostname>`

# or if you're feeling lucky

home-manager switch --flake .