Skip to content

hmajid2301/nixicle

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation


Nixicle

Screenshot updated: 2024-07-15

โš ๏ธ This config repo is constantly changing, Let me know if you see something that can be improved or done better ๐Ÿ˜„ .

๐Ÿ’ฝ Usage

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.

Building

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

๐Ÿš€ Features

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.

๐Ÿ  Configurations

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

๐Ÿ–ผ๏ธ Showcase

Desktop

terminal swaync wallpaper monkeytype

Neovim

Telescope Editor Go Code CMP

Appendix

Inspired By