An open API service indexing awesome lists of open source software.

https://github.com/tetra-fox/nix-config

❄️ my nix(os) configuration
https://github.com/tetra-fox/nix-config

dotfiles homelab hyprland nix-flake nixos nixos-configuration quickshell

Last synced: 1 day ago
JSON representation

❄️ my nix(os) configuration

Awesome Lists containing this project

README

          

# ❄️ nix-config

my needlessly complex nix(os) configuration

## 🧩 modules

programs and/or their `home-manager` configuration, auto-discovered from `modules/` by haumea and exposed as `modules..`

each module contains `system.nix`, `home.nix`, or both

files and directories prefixed with `_` are treated as internal (haumea convention)

### 🗂️ profiles

`modules/profiles/` holds opinionated bundles that compose individual modules into ready-to-use roles:

- `base` — universal baseline imported by every host (nix, sshd, zsh, systemd-boot, etc.)
- `workstation` — extends `base` with desktop / interactive-use modules (hyprland, fonts, dev tools, ...)
- `server` — extends `base` with headless / unattended-host modules

hosts import a profile rather than wiring up modules individually:

```nix
# hosts//default.nix
imports = [modules.profiles.workstation.system];
# hosts//home/default.nix
imports = [modules.profiles.workstation.home];
```

individual modules can still be imported directly (`modules..[system|home]`) when a host needs something outside the profile's bundle.

## 🛠️ quirks

machine-specific configuration that doesn't fit as a module - hardware config, drive mounts, peripheral workarounds

lives in `quirks//`

> [!NOTE]
> quirks are automatically imported for the matching host - if `quirks//` exists, `flake.nix` appends it to that host's module list with no per-host wiring

## 🗺️ topology

![main view](images/topology/main.svg)