3.9 KiB
Executable File
sam/nixos (NixOS + Home Manager config)
This repo contains a reproducible NixOS + Home Manager setup for:
- Hostname:
aspire-laptop - NixOS:
25.11(flakes) - Home Manager:
25.11 - Desktop: KDE Plasma 6 + Hyprland (selectable at login via SDDM)
- Filesystem: Btrfs (root + home subvolumes), zram swap
- Shell/terminal: zsh + kitty
- Neovim: config stored in this repo; plugins installed by
lazy.nvim
What you get after install
- A working KDE desktop (Plasma) and Hyprland (choose at login)
- Common CLI tools (git, curl, ripgrep, etc. as defined in NixOS config)
- SSH server enabled (password auth currently enabled)
- Home Manager manages user configuration (zsh, kitty config, Neovim config, etc.)
Requirements
- NixOS 25.11 Graphical ISO USB
- Internet access during install (Wi‑Fi or Ethernet)
- Access to this repo (Gitea)
Optional but recommended:
- Disable Secure Boot in BIOS/UEFI (simplifies bootloader and drivers)
Install (wipe disk)
1) Boot the NixOS ISO
- Boot from the USB.
- Connect to the internet from the live environment.
2) Clone this repo in the live environment
Open a terminal in the live ISO and run (adjust URL if needed):
git clone ssh://git@gitea.lab.audasmedia.com.au:2222/sam/nixos.git /tmp/nixos
3) Partition + mount (WIPES THE DISK)
This repo includes a helper script that partitions /dev/sda and mounts Btrfs
subvolumes at /mnt.
sudo bash /tmp/nixos/scripts/install-from-iso.sh
Read the prompt carefully: this will destroy all data on the target disk.
4) Put the repo at /mnt/etc/nixos
sudo rm -rf /mnt/etc/nixos
sudo mkdir -p /mnt/etc
sudo cp -a /tmp/nixos /mnt/etc/nixos
5) Copy the generated hardware config into the repo
nixos-generate-config creates a hardware file based on the laptop.
Copy it into the correct host folder:
sudo cp -f /mnt/etc/nixos/hardware-configuration.nix \
/mnt/etc/nixos/hosts/aspire-laptop/hardware-configuration.nix
6) Install NixOS using the flake
sudo nixos-install --flake /mnt/etc/nixos#aspire-laptop
When finished, reboot:
reboot
First boot checklist
1) Set the user password (if not already set)
If needed, switch to a TTY with Ctrl+Alt+F2, log in as root, then:
passwd sam
2) Neovim plugin install (one-time per machine)
This setup uses lazy.nvim for plugins. After the system is installed and you
can log in, run:
nvim --headless "+Lazy! sync" "+qa"
Then launch Neovim normally:
nvim
3) Tailscale login (if enabled)
sudo tailscale up
Updating / applying changes
Apply config changes on the machine
From the installed system:
sudo nixos-rebuild switch --flake /etc/nixos#aspire-laptop
Commit/push your changes
This repo is intended to be the single source of truth:
cd /etc/nixos
git status
git add -A
git commit -m "Describe change"
git push
If git push is rejected (remote ahead), use:
git pull --rebase origin main
git push
Adding programs (basic)
There are two places to add packages:
A) System-wide packages (available for all users)
Edit:
hosts/aspire-laptop/configuration.nix
Add to:
environment.systemPackages = with pkgs; [ ... ];
Then apply:
sudo nixos-rebuild switch --flake /etc/nixos#aspire-laptop
B) User packages (only for sam)
Edit:
home/sam/home.nix
Add to:
home.packages = with pkgs; [ ... ];
Then apply the same rebuild command (Home Manager runs as a NixOS module):
sudo nixos-rebuild switch --flake /etc/nixos#aspire-laptop
Useful docs
- NixOS Manual: https://nixos.org/manual/nixos/stable/
- Home Manager Manual: https://nix-community.github.io/home-manager/
- Flakes: https://nixos.wiki/wiki/Flakes
- Nixpkgs search (packages/options): https://search.nixos.org/