dotfiles/.config/nix
2024-11-03 09:34:48 +07:00
..
files/floorp style(nix/floorp): Vertical tab is too small on my thinkpad setup 2024-10-27 16:29:22 +07:00
lib feat(nix/darwin/brew): Support variation 2024-11-02 12:57:45 +07:00
modules/home-manager style(nix/floorp): Vertical tab is too small on my thinkpad setup 2024-10-27 16:29:22 +07:00
overlays chore(nix): Comment 2024-11-03 08:33:17 +07:00
systems refactor(nix/darwin): Simplify Spotlight/LaunchPad fix script 2024-11-03 09:34:48 +07:00
users refactor(nix/darwin): Simplify code 2024-11-03 08:18:30 +07:00
.gitignore fix: Fix gitignore 2024-07-11 05:52:16 +07:00
flake.lock chore(nix/deps): Update flake 2024-11-03 08:57:05 +07:00
flake.nix refactor(nix/darwin): Include modified brew-nix overlay 2024-11-02 12:13:41 +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 .