Melvin Ragusa 638b238f7e Merge pull request #6 from ragusa-it/copilot/create-readme-for-nixos
Add comprehensive NixOS installation README
2026-02-02 11:40:00 +01:00
2026-02-02 11:33:41 +01:00
2026-02-02 11:20:24 +01:00
2026-02-02 10:38:14 +00:00

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)

  1. Download and boot the NixOS ISO

  2. Connect to the network (for cloning and downloading packages)

  3. Partition and mount disks

  4. Generate hardware configuration

    sudo -i
    nixos-generate-config --root /mnt
    
  5. Clone this repository into the target system

    git clone https://github.com/ragusa-it/nixos /mnt/etc/nixos/atlas
    
  6. Copy the generated hardware config into the repo

    cp /mnt/etc/nixos/hardware-configuration.nix /mnt/etc/nixos/atlas/hardware-configuration.nix
    
  7. Review and customize

    • configuration.nix
      • networking.hostName
      • users.users.pinj (change username/groups as needed)
    • modules/gpu-amd.nix if you are not on AMD hardware
  8. Install NixOS using the flake

    export NIX_CONFIG="experimental-features = nix-command flakes"
    nixos-install --flake /mnt/etc/nixos/atlas#nixos
    
  9. 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 definition
  • configuration.nix - Main NixOS entry point (imports modules)
  • hardware-configuration.nix - Machine-specific hardware config (replace on install)
  • modules/ - Modular system features
    • desktop.nix - portals, Polkit agent, swaylock, swayidle
    • gpu-amd.nix - AMD GPU stack
    • audio.nix - PipeWire and Bluetooth
    • apps.nix - user applications
    • dev.nix - developer tooling
    • gaming.nix - Steam, Lutris, Gamemode
    • theming.nix - fonts, themes, cursors
    • virtualization.nix - QEMU/KVM/virt-manager
    • power.nix - power management
    • shell.nix - Fish shell configuration
    • services.nix - system services (fstrim, zram, avahi)
    • navidrome.nix - self-hosted music server

Troubleshooting

  • Flakes not enabled: ensure the NIX_CONFIG environment variable is set (see install step) or enable flakes in /etc/nix/nix.conf.
  • Wrong hardware configuration: regenerate with nixos-generate-config --root / and replace hardware-configuration.nix.

License

No license is specified. If you plan to reuse this configuration, please open an issue to discuss licensing.

Description
No description provided
Readme 63 MiB
Languages
Nix 66.7%
Shell 33.3%