Installing
Fresh system (nixos USB drive)
-
Open a nix-shell with git (if not installed):
nix-shell -p git -
Clone the flake
git clone https://git.samfelag.xyz/marc/samfelag.git -
Partition the disk We'll partition the disk in the follwing way:
- 512MB at the beginning for the boot partition
- 8GB at the end for swap
- The rest (at the middle) for the filesystem (/)
-
Locate the disk
lsblk -
Create a GPT partition table
sudo parted /dev/nvme0n1 -- mklabel gpt -
Create the root partition
sudo parted /dev/nvme0n1 -- mkpart primary 512MB -8GB -
Create the swap partition
sudo parted /dev/nvme0n1 -- mkpart primary linux-swap -8GB 100% -
Create the boot partition
sudo parted /dev/nvme0n1 -- mkpart ESP fat32 1MB 512MB sudo parted /dev/nvme0n1 -- set 3 esp on
-
Format the partitions
-
Root partition
sudo mkfs.ext4 -L nixos /dev/nvme0n1p1 -
Swap partition
sudo mkswap -L swap /dev/nvme0n1p2 -
Boot partition
sudo mkfs.fat -F 32 -n BOOT /dev/nvme0n1p3
-
-
Mount the filesystems
-
Root partition
sudo mount /dev/disk/by-label/nixos /mnt -
Boot partition
sudo mkdir -p /mnt/boot sudo mount /dev/disk/by-label/BOOT /mnt/boot -
Swap partition (if needed)
sudo swapon /dev/disk/by-label/swap
-
-
Create the host nix configuration If the host is not present under system/hosts, create a new folder for the host. Generate the hardware configuration file, you can use nixos-generate-config as a base:
nixos-generate-config --dir <<host directory>> --no-filesystems -
Install nixos!
sudo nixos-install --impure --root /mnt --flake '.#reykjavik' -
Set up the user You'll set the root password during the installation. You can then reboot and use the installed OS. First thing you'll have to do is log in as root and set the password for your user:
passwd marc
Fresh system (vultr)
- [Optional] Set the root password via the Vultr Console, so you can ssh to the instance
-
Open a nix-shell with git (if not installed):
nix-shell -p git -
Clone the flake
git clone https://git.samfelag.xyz/marc/samfelag.git -
Partition the disk We'll partition the disk in the follwing way:
- 512MB at the beginning for the boot partition
- 8GB at the end for swap
- The rest (at the middle) for the filesystem (/)
-
Locate the disk
lsblk -
Create a MBR partition table
sudo parted /dev/vda -- mklabel msdos -
Create the root partition
sudo parted /dev/vda -- mkpart primary 1MiB -8GiB -
Create the swap partition
sudo parted /dev/vda -- mkpart primary linux-swap -8GiB 100% -
Create the boot partition
sudo parted /dev/vda -- mkpart ESP fat32 1MB 512MB sudo parted /dev/vda -- set 3 esp on
-
Format the partitions
-
Root partition
sudo mkfs.ext4 -L nixos /dev/vda1 -
Swap partition
sudo mkswap -L swap /dev/vda2
-
-
Mount the filesystems
-
Root partition
sudo mount /dev/disk/by-label/nixos /mnt -
Swap partition (if needed)
sudo swapon /dev/disk/by-label/swap
-
-
Create the host nix configuration If the host is not present under system/hosts, create a new folder for the host. Generate the hardware configuration file, you can use nixos-generate-config as a base:
nixos-generate-config --dir <<host directory>> --no-filesystems -
Install nixos!
sudo nixos-install --impure --root /mnt --flake '.#vultr-test' -
Set up the user You'll set the root password during the installation. You can then reboot and use the installed OS. First thing you'll have to do is log in as root and set the password for your user:
passwd marc
Rebuilding
sudo nixos-rebuild switch --impure --flake '.#reykjavik'
Modules
Desktop environment
Themeing
We use nix-colors to (try to) keep a consistent theme across all applications. This uses base-16 themes (here is a styiling guide for it).