Co-authored-by: ragusa-it <196988693+ragusa-it@users.noreply.github.com>
atlas - NixOS configuration
Personal NixOS desktop configuration built with Nix flakes for x86_64-linux. The setup is modular and targets a Wayland desktop (Niri + Ly) with PipeWire audio, AMD GPU support, and a curated set of apps and developer tooling.
Highlights
- Wayland desktop: Niri compositor, Ly display manager, portals, Polkit agent
- Audio: PipeWire (ALSA, PulseAudio, JACK)
- AMD GPU stack: Vulkan, VA-API, CoreCtrl
- Developer tooling: Docker, Rust, Node.js, Python
- Extras: Steam/Gaming, virtualization, theming, Navidrome
Prerequisites
- A recent NixOS installer ISO with flake support
- x86_64-linux hardware (this flake is pinned to that system)
- Basic familiarity with the NixOS installation process
This is a personal configuration. Expect to adjust the hostname, user, and hardware modules for your machine.
Installation (fresh NixOS install)
-
Download and boot the NixOS ISO
-
Connect to the network (for cloning and downloading packages)
-
Partition and mount disks
- Follow the NixOS manual for your disk layout: https://nixos.org/manual/nixos/stable/#sec-installation
-
Generate hardware configuration
sudo -i nixos-generate-config --root /mnt -
Clone this repository into the target system
git clone https://github.com/ragusa-it/nixos /mnt/etc/nixos/atlas -
Copy the generated hardware config into the repo
cp /mnt/etc/nixos/hardware-configuration.nix /mnt/etc/nixos/atlas/hardware-configuration.nix -
Review and customize
configuration.nixnetworking.hostNameusers.users.pinj(change username/groups as needed)
modules/gpu-amd.nixif you are not on AMD hardware
-
Install NixOS using the flake
export NIX_CONFIG="experimental-features = nix-command flakes" nixos-install --flake /mnt/etc/nixos/atlas#nixos -
Reboot into the new system
reboot
Post-install rebuilds
From inside the cloned repository:
sudo nixos-rebuild switch --flake .#nixos
Use boot if you want to schedule the change for the next reboot:
sudo nixos-rebuild boot --flake .#nixos
Updating the system
nix flake update
sudo nixos-rebuild switch --flake .#nixos
Repository layout
flake.nix- Flake inputs, binary caches, and system definitionconfiguration.nix- Main NixOS entry point (imports modules)hardware-configuration.nix- Machine-specific hardware config (replace on install)modules/- Modular system featuresdesktop.nix- portals, Polkit agent, swaylock, swayidlegpu-amd.nix- AMD GPU stackaudio.nix- PipeWire and Bluetoothapps.nix- user applicationsdev.nix- developer toolinggaming.nix- Steam, Lutris, Gamemodetheming.nix- fonts, themes, cursorsvirtualization.nix- QEMU/KVM/virt-managerpower.nix- power managementshell.nix- Fish shell configurationservices.nix- system services (fstrim, zram, avahi)navidrome.nix- self-hosted music server
Troubleshooting
- Flakes not enabled: ensure the
NIX_CONFIGenvironment variable is set (see install step) or enable flakes in/etc/nix/nix.conf. - Wrong hardware configuration: regenerate with
nixos-generate-config --root /and replacehardware-configuration.nix.
License
No license is specified. If you plan to reuse this configuration, please open an issue to discuss licensing.