The GitHub Wiki is the primary documentation resource for this repository.
Local technical annexes:
- docs/README.md - annexes, Mermaid diagrams, and regeneration commands
- docs/cloc-report.md - raw cloc report
- docs/specification.txt - dense configuration glossary
- docs/diagrams/ - PlantUML sources and generated PNGs
nixos/
├── config/
│ ├── bin/ # Custom scripts
│ ├── doom/ # Doom Emacs
│ ├── foot/ # Terminal
│ ├── hypr/ # Hyprland + Waybar
│ ├── rofi/ # Active Rofi runtime
│ └── swappy/ # Screenshot editor config
├── home/tco/
│ ├── home.nix # Home Manager entry point
│ ├── modules/
│ └── apps/
│ ├── cad.nix # obsidian, kicad, freecad
│ ├── embedded.nix # arduino, esptool, minicom
│ └── data.nix # dbeaver, grafana, influxdb2
├── modules/ # System-only modules (services, drivers)
│ ├── backup.nix
│ ├── nvidia-prime.nix
│ ├── virtualisation.nix
│ ├── databases.nix
│ ├── ollama.nix
│ ├── observability.nix
│ └── ...
├── secrets/ # SOPS-encrypted secrets committed safely
├── configuration.nix
├── flake.nix
└── flake.lock
Desktop Interface — Waybar Configuration · Wallpaper
Tip
This setup ships with two desktop environments accessible via GDM — switch seamlessly between Hyprland and GNOME at login.
%%{init: {'theme': 'base', 'themeVariables': { 'primaryColor': '#1e293b', 'secondaryColor': '#0f172a', 'tertiaryColor': '#0f172a', 'primaryBorderColor': '#94e2d5', 'lineColor': '#94e2d5', 'primaryTextColor': '#e2e8f0', 'clusterBkg': '#0f172a', 'clusterBorder': '#475569' }}}%%
flowchart TB
Boot["Boot"]
GDM["GDM"]
H["Hyprland"]
G["GNOME"]
Boot --> GDM
GDM --> H
GDM --> G
Fully featured Neovim setup for efficient coding and development.
Seamless virtualization support for running isolated environments and testing.
Optimized performance for demanding CAD and 3D modeling workloads.
Real-time system monitoring and resource management.
Dedicated NVIDIA GPU integration with Prime support for maximum graphics power.
Prometheus, Loki, Grafana, and Promtail provide local observability. The
snapshots committed under docs/assets/live/ are documentation artifacts only:
they are refreshed by a 15-minute systemd timer when the visual delta is over
0.5%. Live operations stay in Grafana.
Dashboard snapshots:
- NixOS Metrics - current pressure and rebuild cost
- Nix Efficiency - freshness, generation debt, closure structure
- Incident Correlation - pressure spikes mapped to Loki logs
Runbook details live in the Observability wiki page.
Backups use sops-nix, restic, and Backblaze B2, split into b2-critical
for configuration and secret-adjacent material, and b2-data for user files.
Secrets are committed only in encrypted form under secrets/.
See the Security & Secrets wiki page
for paths, timers, retention, and restore commands.
Important
Warning: This configuration is tailored for my hardware. Don't blindly use these settings unless you know what they entail. Use at your own risk!
Note
This repository uses a modular structure, allowing you to easily toggle specific services (databases, AI, monitoring) by importing the corresponding files in configuration.nix.
Tip
Development toolchains (Rust, Python, embedded, data) are installed globally via Home Manager. Per-project environments use a local flake.nix with direnv — cd into the project directory and the environment loads automatically.
-
Backup your current config:
sudo cp -r /etc/nixos /etc/nixos-backup
-
Clone this repository:
sudo git clone https://github.com/RomeoCavazza/setup-os.git /etc/nixos-new sudo cp -r /etc/nixos-new/* /etc/nixos/ -
Apply the configuration:
cd /etc/nixos sudo nixos-rebuild switch --flake .#nixos









