Disclaimer: This is not a community framework or distribution. It's a private configuration and an ongoing experiment to feel out NixOS. I make no guarantees that it will work out of the box for anyone but myself. It may also change drastically and without warning.
Until I can bend spoons with my nix-fu, please don't treat me like an authority or expert in the NixOS space. Seek help on the NixOS discourse instead.
Shell: | zsh |
WM: | Hyprland + Waybar |
Editor: | neovim 0.8 |
Terminal: | kitty |
Launcher: | rofi |
Browser: | Firefox ESR 102 |
Channel: | nixos-unstable |
Theme: | Catppuccin |
Here are the installation instructions for my configuration. I wrote this so you don't forget it in the future, please don't install it "as is". Make your own configuration.
How to get started?
Use google and find out for yourself, you'll get used to it.
🔥 Welcome to the undocumented hell of NixOS.
Good luck and have fun
-
Read the disclaimer (tldr: use your own configuration or I will have ssh keys for your machine)
-
Download iso
# Yoink nixos-unstable wget -O nixos.iso https://channels.nixos.org/nixos-unstable/latest-nixos-minimal-x86_64-linux.iso # Write it to a flash drive cp nixos.iso /dev/sdX
-
Boot into the installer.
-
Switch to root user:
sudo su -
-
Partitioning
We create a 512MB EFI boot partition (
/dev/sda1
) and the rest will be our LUKS encrypted physical volume for LVM (/dev/sda2
).$ gdisk /dev/sda
o
(create new empty partition table)n
(add partition, 512M, type ef00 EFI)n
(add partition, remaining space, type 8300 Linux LVM)w
(write partition table and exit)
Setup the encrypted LUKS partition and open it:
$ cryptsetup luksFormat /dev/sda2 $ cryptsetup config /dev/sda2 --label cryptroot $ cryptsetup luksOpen /dev/sda2 enc-pv
We create two logical volumes, a 16GB swap parition and the rest will be our root filesystem
$ pvcreate /dev/mapper/enc-pv $ vgcreate vg /dev/mapper/enc-pv $ lvcreate -L 16G -n swap vg $ lvcreate -l '100%FREE' -n root vg
Format paritions
$ mkfs.fat /dev/sda1 -n boot $ mkfs.ext4 -L root /dev/vg/root $ mkswap -L swap /dev/vg/swap
Mount paritions
$ mount /dev/vg/root /mnt $ mkdir /mnt/boot $ mount /dev/sda1 /mnt/boot $ swapon /dev/vg/swap
-
Fix "too many files open"
$ ulimit -n 500000
-
Enable flakes
$ nix-shell -p nixFlakes
-
Install nixos from flake
$ nixos-install --flake github:sioodmy/dotfiles#graphene --impure