My personal Nix configs
Find a file
2026-11-08 14:38:28 -05:00
modules Update metrolist 2026-11-08 12:44:05 -05:00
secrets Removed aquaticTest from my setup to properly test installer 2026-09-30 02:58:16 -04:00
.gitignore update .gitignore for iso output 2026-09-25 00:09:31 -04:00
.gitmodules More massive refactoring of how folders and files are organized 2026-11-08 08:33:19 -05:00
core.nix finally shifted "core" into its own repo 2026-11-08 14:38:28 -05:00
flake.lock finally shifted "core" into its own repo 2026-11-08 14:38:28 -05:00
flake.nix finally shifted "core" into its own repo 2026-11-08 14:38:28 -05:00
README.md bit more readme adjustment 2026-10-05 18:00:46 -04:00

Index

About This Project

Just my personal NixOS Configs, nothing too special. It uses import-tree, flake-file, and flake-parts to generate my nixos systems. It also has multiple hosts, including an installer for them

General Layout

Here is the general structure of the base folders. the deepest level of each file/folder shown will be given its own section with more details, in the order shown.

modules
├── desktops
├── hosts
├── nix
├── programs
├── servers
├── services
├── system
├── theme
└── users
nix-assets

desktops

Simple module folder, just contains all my desktop modules, such as hyprland or kde, and any relevent stuff for those modules (Such as hyprland also contains its login screen, hyprland configs, DMS as its shell, and a few other things hyprland relies on for my configs)

hosts

This contains all my per-host configurations.

here is a list of existing hosts in this sytem, and a description of their use:

aquaticRouter

Currently un-used, intended to be my router once I have it finished

controlstation

Based on system-gaming template. My main desktop for a majority of my usage (gaming, AI experiments, and general web browsing), this host also dual-boots windows

installer-iso

This host is special, as it is not "installed". This is, instead, the configuration used to generate my installation ISOs, and it has the most quirks, see Installer ISO Script later in this readme for more detail. Generate the ISO on any machine containing the installer-iso-keys module by entering the root of the project, and running the command sudo nix build path:.#nixosConfigurations.installer-iso.config.system.build.isoImage --impure

mainsrv

Based on system-cli template. Contains all of my long-running servers and remote filesystems currently, not much else.

nix

Contains 2 major folders, and holds the very very base of my setup, that everything else expects and relies on.

First, flake-parts, is set up to initialize and load the core of flake-parts, flake-file, and import-tree, the 3 main tools that my use of dendritic would not work without.

Next, is tools. This holds agenix, disko, home-manager, impermanence, and NUR configs. All these are parts that I decided would be assumed to be had by every one of my systems, and were made into a core assumption

programs

This modules folder is basically, for the most part, my "package management" setup, and where a majority of my apps are at.

The appimages folder is simple, it just contains any appimages I want to pull and "install" into my setup.

Next, the aquatic folder. This has chunks mostly mirroring my system tempaltes (see system for details on templates). These modules are named like aquatic-cli or aquatic-gaming or similar, to allow me to group most of my generally preffered apps into just a few modules

Then, the shell folder is just for my shell config, including zsh and bash

I chose to give zenbrowser its own folder. No strong reason, just felt I wanted it that way.

For the files, nixdev contains my development environment, and all config for it, for my nix config that you are viewing right now, andvirtualbox is just, well, virtualbox, only used on one system so I have it in its own module

servers

[TODO]

services

[TODO]

system

[TODO]

theme

[TODO]

users

[TODO]

nix-assets

Not included in the repo is a submodule for nix-assets (private to avoid any legal issues), with the current structure below:

nix-assets
├── greetd
│   ├── wpeng_assets
│   └── wpeng_papers
└── bin
    └── appimages

wpeng_assets is the assets folder from wallpaper engine, and wpeng_papers contains the wallpapers, both are used to run wallpaper engine based wallpapers on the greetd login screen.

Wallpapers to use are currently defined through aquaticConfig.hyprland.monitors for each given monitor via wpeng

Line 109 of modules/programs/hyprland/login.nix does the actual copying of the assets

These options and lines can be changed or removed as needed, or can be ignored if not using hyprland module

Meanwhile, the appimages folder is just to contain appimages that are not currently public for any given reason. Currently, this is only the metrolist as that is in closed beta

Misc

This section will just contain anything that was not part of my modules, or that needs extra special explinations

Installer ISO Script

This is the file at /modules/hosts/installer-iso/installer/installer.sh, it is a bash script that is actively a work in progress. Currently, it can only be used for new hosts that do not exist in the config, and has no error checking. But, for now, it works to add a new host and roll it into my secrets at the machines and all levels.

Secrets

[TODO]