Install
To install NixOS on any of my devices I now use nixos-anywhere.
You will need to be able to SSH to the target machine from where this command will be run. Load nix installer ISO if
no OS on the device. You need to copy ssh keys onto the target machine
mkdir -p ~/.ssh && curl https://github.com/hmajid2301.keys > ~/.ssh/authorized_keys
in my case I can copy them from GitHub.
git clone [email protected]:hmajid2301/nixicle.git ~/nixicle/
cd nixcile
nix develop
nixos-anywhere --flake '.#workstation' [email protected] # Replace with your IP
After building it you can copy the ISO from the result
folder to your USB.
Then run nix_installer
, which will then ask you which host you would like to install.
To build my config for a specific host you can do something like:
git clone [email protected]:hmajid2301/nixicle.git ~/nixicle/
cd nixicle
nix develop
# To build system configuration (uses hostname to build flake)
nh os switch
# To build user configuration (uses hostname and username to build flake)
nh home switch
# Build ISO in result/ folder
nix build .#install-isoConfigurations.graphical
# Deploy my to remote server i.e. Home Lab (using SSH)
deploy .#ms01 --hostname ms01 --ssh-user nixos --skip-checks
# Build Home Lab diagram using nix-topology
nix build .#topology.config.output
Some features of my config:
- Structured to allow multiple NixOS configurations, including desktop, laptop and homelab
- Custom live ISO for installing NixOS
- Styling with stylix
- Opt-in persistance through impermanence + blank snapshot
- Encrypted BTRFS partition
- sops-nix for secrets management
- Different environments like hyprland and gnome
- Custom Neovim setup declaratively using nixvim
- Homelab all configured in nix.
Hostname | Board | CPU | RAM | Primary GPU | Role | OS | State |
---|---|---|---|---|---|---|---|
workstation |
X671E AORUS PRO X | AMD Ryzen 9 7950X | 64GB | AMD Spectral White 7900 XTX | ๐ฅ๏ธ | โ๏ธ | โ |
framework |
Framework 13th Gen AMD | Intelยฎ Coreโข i7-1370P | 32GB | Intel Iris Graphics | ๐ป๏ธ | โ๏ธ | โ |
frandecpa63294006a |
Framework 13th Gen Intel | AMD Ryzenโข 7 7840U | 32GB | Intel Iris Graphics | ๐ป๏ธ | ๐ง | โ |
vm |
QEMU | - | - | VirGL | ๐ | โ๏ธ | โ |
steamdeck |
- | Zen 2 | 16GB | 8 RDNA 2 CUs | ๐ฎ๏ธ | ๐ง | โ |
um790 |
UM790 | AMD Ryzen 9 7940HS | 64GB | AMD Radeonโข 780M | โ๏ธ | โ๏ธ | โ |
ms01 |
MS-01 | i9-13900H | 64GB | Iris Xe Graphics | โ๏ธ | โ๏ธ | โ |
s100 |
S100 | N100 | 8GB | Iris Xe Graphics | โ๏ธ | โ๏ธ | โ |
vps |
QEMU (Hetzner shared) | 2 VCPU | 2GB | VirGL | ๐ | โ๏ธ | โ |
Key
- ๐ฅ๏ธ : Desktop
- ๐ป๏ธ : Laptop
- ๐ฎ๏ธ : Games Machine
- ๐ : Virtual Machine
- โ๏ธ : Server
- Dot icons created by Roundicons - Flaticon
- You can read more about my dotfiles and development workflows on my blog here (#ShamelessPlug).
- Wallpaper From Catppuccin Discord
- Galaxy: https://discord.com/channels/907385605422448742/1199293891392852009
- Old Catppuccin wallpaper: https://github.com/Gingeh/wallpapers
- Catppuccino: https://discord.com/channels/907385605422448742/1130546126374838342
- Catppuccino: https://discord.com/channels/907385605422448742/1130546126374838342
- Snowfall config: https://github.com/jakehamilton/config?tab=readme-ov-file
- More snowfall config: https://github.dev/khaneliman/khanelinix/blob/f4f4149dd8a0fda1c01fa7b14894b2bcf5653572/flake.nix
- My original structure and nixlang code: https://github.com/Misterio77/nix-config
- Waybar & scripts: https://github.dev/yurihikari/garuda-sway-config
- Neovim UI: https://github.com/NvChad/nvchad
- README: https://github.com/notohh/snowflake/tree/master
- README table: https://github.com/wimpysworld/nix-config