27c2e82311259ae92fc904713db1aed5633f8bf9
atlas - NixOS Configuration
A modular, declarative NixOS configuration for desktop gaming and development.
Overview
This repository contains the complete NixOS system configuration for multiple hosts:
- atlas - Desktop gaming and media setup
- server - Headless server (core + dev tools only)
- laptop - Laptop with desktop environment (no gaming)
It uses Nix flakes for reproducible builds and modular organization for maintainability.
System Highlights
- OS: NixOS (unstable channel)
- Kernel: CachyOS optimized kernel with x86_64-v3 microarchitecture
- Bootloader: Limine with Secure Boot support
- Window Manager: Niri (scrollable-tiling Wayland compositor)
- Shell: Fish with Zsh fallback
- Terminal: Ghostty
- Browser: Zen Browser + Firefox
- Editor: Zed
Features
Gaming
- Steam with Proton-GE
- Lutris, Heroic (Epic/GOG), Faugus Launchers
- GameMode optimizations
- MangoHud & vkBasalt support
- AMD GPU with ROCm acceleration
Development
- Rust, Python, Node.js toolchains
- Docker & container tools
- Git, GitHub CLI, Lazygit
- Nix language server (nil, nixd)
- Claude Code & Opencode AI assistants
Desktop Environment
- Custom Noctalia desktop shell
- Wayland portals for screen sharing
- Flatpak support with Flathub
- Nordic theming
- Plymouth boot splash
Security & Privacy
- Full disk encryption (LUKS2)
- Encrypted swap partition
- Secure Boot with custom keys
- Bitwarden password manager
- Proton VPN
Structure
.
├── flake.nix # Flake inputs and outputs
├── hosts/
│ ├── atlas/ # Desktop configuration
│ │ ├── configuration.nix
│ │ └── hardware-configuration.nix
│ ├── laptop/ # Laptop configuration
│ │ ├── configuration.nix
│ │ └── hardware-configuration.nix
│ └── server/ # Server configuration
│ ├── configuration.nix
│ └── hardware-configuration.nix
├── modules/
│ ├── core/ # Boot, users, networking
│ ├── hardware/ # GPU, audio, power
│ ├── desktop/ # WM, apps, theming
│ ├── services/ # System services
│ ├── dev/ # Development tools
│ └── gaming/ # Steam, Wine, Gamemode
├── overlays/ # Package patches
├── scripts/ # Installation helpers
└── wallpaper/ # Desktop backgrounds
Installation
Prerequisites
- NixOS installation media
- Internet connection
- Target disk (e.g.,
/dev/nvme0n1)
Automated Install (Full Disk Encryption)
# Boot from NixOS ISO, then:
curl -sL https://raw.githubusercontent.com/ragusa-it/nixos/main/scripts/install-fde.sh | sudo bash
Manual Install
# 1. Partition, format, and mount
cryptsetup luksFormat /dev/nvme0n1p3
cryptsetup open /dev/nvme0n1p3 cryptroot
mkfs.xfs /dev/mapper/cryptroot
mount /dev/mapper/cryptroot /mnt
# 2. Clone and install
git clone https://github.com/ragusa-it/nixos.git /mnt/etc/nixos
cd /mnt/etc/nixos
# Install for specific host (atlas, laptop, or server)
nixos-install --flake .#atlas
Post-Install
# Set up Secure Boot (optional but recommended)
sudo /etc/nixos/scripts/setup-secureboot.sh
# Switch to new configuration
sudo nixos-rebuild switch --flake /etc/nixos
Daily Usage
# Rebuild system (use appropriate host)
sudo nixos-rebuild switch --flake .#atlas
# Update flake inputs
nix flake update
# Clean old generations
sudo nix-collect-garbage -d
# Format all nix files
nixfmt **/*.nix
Hardware Requirements
- CPU: AMD Ryzen (with x86_64-v3 support for CachyOS kernel)
- GPU: AMD Radeon (ROCm supported)
- RAM: 16GB+ recommended
- Storage: NVMe SSD recommended
External Dependencies
This configuration uses the following flake inputs:
- nixpkgs - Main package repository
- noctalia-shell - Desktop environment
- nix-cachyos-kernel - Optimized kernel
- zen-browser - Zen Browser
- opencode - AI coding assistant
Acknowledgments
- NixOS - The purely functional Linux distribution
- CachyOS - Optimized kernel and packages
- Limine - Modern bootloader
- Niri - Scrollable-tiling Wayland compositor
License
This configuration is released into the public domain. Feel free to use, modify, and distribute as needed.
Made with ❄️ Nix
Description
Languages
Nix
66.7%
Shell
33.3%