mirror of
https://github.com/srid/nixos-config.git
synced 2025-12-26 23:14:57 +08:00
KISS NixOS configuration based on Flakes & flake-parts (supports macOS too)
| .vscode | ||
| home | ||
| nix-darwin | ||
| nixos | ||
| systems | ||
| .envrc | ||
| .gitattributes | ||
| .gitignore | ||
| config.nix | ||
| flake.lock | ||
| flake.nix | ||
| lib.nix | ||
| README.md | ||
This repository contains the Nix / NixOS configuration for all of my systems. Start from flakes.nix (see Flakes).
To build,
# First, edit nixosConfigurations in flake.nix to add your system's hostname.
# And then change `userName` to your username.
nix run
Install notes
- NixOS Linux
- Install NixOS
- Hetzner dedicated from Linux Rescue system: https://github.com/serokell/nixos-install-scripts/pull/1#pullrequestreview-746593205
- Digital Ocean: https://github.com/elitak/nixos-infect
- X1 Carbon: https://www.srid.ca/x1c7-install
- Windows (via WSL): https://github.com/nix-community/NixOS-WSL
- Clone this repo at
/etc/nixos - Edit
flake.nixand- add your Linux's hostname in the
nixosConfigurationsset, as well as - update
people.myselfto your desired username.- put your SSH keys in
./nixos/takemessh
- put your SSH keys in
- add your Linux's hostname in the
- Run
nix run. That's it. Re-open your shell.
- Install NixOS
- macOS:
- Install Nix normally (multi-user)
- Install nix-darwin
- This will create a
~/.nixpkgs/darwin-configuration.nix, but we do not need that.
- This will create a
- Clone this repo anywhere
- Edit
flake.nixto updatepeople.myselfto your desired username. - Run
nix run.1 That's it. Re-open your shell.
Directory layout
home: home-manager config (shared between Linux and macOS)nixos: nixos config for Linuxnix-darwin: nix-darwin config for macOSsystems: top-level configuration.nix('ish) for various kinds of system
Tips
- To update NixOS (and other inputs) run
nix flake update- You may also update a subset of inputs, e.g.
nix flake lock --update-input nixpkgs --update-input darwin --update-input home-manager
- You may also update a subset of inputs, e.g.
- To free up disk space,
sudo nix-env -p /nix/var/nix/profiles/system --delete-generations +2 sudo nixos-rebuild boot - To autoformat the project tree using nixpkgs-fmt, run
nix fmt.
-
You might have to
rm -rf /etc/nix/nix.conf, so our flake.nix can do its thing. ↩︎