This repository now hosts my attempt at creating a maintainable (subjective, maintainable in my sense) Nix configuration using flake-parts. After daily driving Nix for development purposes for the past year, I've come to manage a few (3 lol) machines with this configuration.
The configuration still loosely incorporates my setup during my Arch days.
This is still not intended to be a Nix configuration template, but feel free to fork and use my configuration structure! 🌟
Do note that I am still running
vesperon, my main development machine in a virtual machine. VMs give me the ability to suspend and resume development whenever I need to context switch (gaming).aetheronon the other hand is runningnixos-darwinon my work macbook.
This folder holds the nixosConfigurations (configuration for my hosts/machines) that I import in flake.nix. Current machines defined:
vesperon: My NixOS VM in VMWare Workstation.minima: Another NixOS VM with VMware guest specialisation.
Each machine directory contains:
configuration.nix- system-level configurationhardware.nix- hardware configurationhome/- home-manager user configurationspecialisations/- machine-specific specializations
This directory contains all Nix modules ala flake-parts organized by category:
audio/- PipeWire audio configurationboot/- Boot loader modules (GRUB, systemd-boot)locales/- Locale settings (en_PH)login/- Login manager configuration (ly)nix/- Nix and nh (Nix helper) configurationoptions/- Custom flake optionsshell/- Shell utilities: zsh, git, starship, direnv, fastfetch, eza, hstr, fzf, any-nix-shellvmware/- VMware guest shared configurationwm/- Window manager modules: niri, noctalia, weston, gnome
flake.nix- Main flake entry pointflake.lock- Locked dependenciesshell.nix- Development shell