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 graphical installer
-
Follow the graphical installer
- Partition your drives as needed
- Create your user account
- When prompted for desktop environment, select No desktop
- Complete the installation
-
Reboot and log in to your new shell-only NixOS system
-
Clone this repository
git clone https://github.com/ragusa-it/nixos ~/nixos -
Copy your hardware configuration into the repo
cp /etc/nixos/hardware-configuration.nix ~/nixos/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
-
Rebuild with the flake
sudo nixos-rebuild switch --flake ~/nixos#nixos -
Reboot to start the full desktop environment
sudo 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: if
nixos-rebuildfails, prefix the command withNIX_CONFIG="experimental-features = nix-command flakes"or enable flakes in/etc/nix/nix.conf. - Wrong hardware configuration: regenerate with
sudo nixos-generate-configand copy the newhardware-configuration.nixinto the repo.
License
No license is specified. If you plan to reuse this configuration, please open an issue to discuss licensing.