A unified Nix configuration loading interface and theory that emulates the modularity, configurability, reusability, and overrideability of Doom Emacs.(based on Pure Object Prototypes)
Nix
42
331 commits
updated Jun 22, 2026
:PROPERTIES:
:ID: fdd55059-5f5c-4407-b4c3-c5366cd6a898
:header-args: :noweb tangle :comments noweb :exports both
:STARTUP: noinlineimages
:PRJ-DIR: .
:END:
#+TITLE: README
#+AUTHOR: GuangTao Zhang
#+EMAIL: gtrunsec@hardenedlinux.org
#+DATE: 2023-10-13 Fri 21:41
[[https://github.com/divnix/POP/blob/main/POP.md][What is POP: Pure Object Prototypes]]
#+BEGIN_SRC d2 :file images/omnibus.png :flags --sketch --theme 200 :exports both :tangle (concat (org-entry-get nil "PRJ-DIR" t) "/omnibus.d2")
# !/usr/bin/env d2 --theme 200
flake: Flake {
library: library(pops) {
lib
exporter: {
pops
}
flakeOutputs
exporter -> flakeOutputs
}
outputs: outputs {
packages
}
library.flakeOutputs -> outputs
library.exporter.library -> outputs.lib: without pops interface
library.pops -> outputs.pops
}
units: units {
nixos: {
nixosModules
homeProfiles
homeModules
}
flake-parts: {
modules
profiles
}
devshell: {
modules
profiles
}
configs: {
treefmt
}
}
extensions: extensions system {
APIs: {
addLoadExtender
addLoadExtenders
addExporters
outputs
}
}
flops: flops(POP) {
haumea: {
type: {
default
nixosModules
nixosProfiles
evalModules
}
load
type -> layouts
}
flake: {
inputs
call-flake
}
}
user: User {shape: person}
extensions <-> user
flops -> extensions
flake.outputs.pops -> extensions
units -> flake.lib.pops: loading
flake.library.pops <- flops.haumea: loader
flops.haumea -> extensions.APIs.addLoadExtender
flops.haumea -> extensions.APIs.addLoadExtenders
flops.flake -> subflake
flops.flake -> call-flake: extended inputs
flake.outputs.pops -> extensions: extensions interface
#+END_SRC
#+RESULTS:
[[file:images/omnibus.png]]
Not written in Markdown, so it's shown here as plain text — view it formatted on GitHub.
Nix
96.3%
Shell
1.6%
Just
1.2%
A unified Nix configuration loading interface and theory that emulates the modularity, configurability, reusability, and overrideability of Doom Emacs.(based on Pure Object Prototypes)
Nix
42
331 commits
updated Jun 22, 2026
:PROPERTIES:
:ID: fdd55059-5f5c-4407-b4c3-c5366cd6a898
:header-args: :noweb tangle :comments noweb :exports both
:STARTUP: noinlineimages
:PRJ-DIR: .
:END:
#+TITLE: README
#+AUTHOR: GuangTao Zhang
#+EMAIL: gtrunsec@hardenedlinux.org
#+DATE: 2023-10-13 Fri 21:41
[[https://github.com/divnix/POP/blob/main/POP.md][What is POP: Pure Object Prototypes]]
#+BEGIN_SRC d2 :file images/omnibus.png :flags --sketch --theme 200 :exports both :tangle (concat (org-entry-get nil "PRJ-DIR" t) "/omnibus.d2")
# !/usr/bin/env d2 --theme 200
flake: Flake {
library: library(pops) {
lib
exporter: {
pops
}
flakeOutputs
exporter -> flakeOutputs
}
outputs: outputs {
packages
}
library.flakeOutputs -> outputs
library.exporter.library -> outputs.lib: without pops interface
library.pops -> outputs.pops
}
units: units {
nixos: {
nixosModules
homeProfiles
homeModules
}
flake-parts: {
modules
profiles
}
devshell: {
modules
profiles
}
configs: {
treefmt
}
}
extensions: extensions system {
APIs: {
addLoadExtender
addLoadExtenders
addExporters
outputs
}
}
flops: flops(POP) {
haumea: {
type: {
default
nixosModules
nixosProfiles
evalModules
}
load
type -> layouts
}
flake: {
inputs
call-flake
}
}
user: User {shape: person}
extensions <-> user
flops -> extensions
flake.outputs.pops -> extensions
units -> flake.lib.pops: loading
flake.library.pops <- flops.haumea: loader
flops.haumea -> extensions.APIs.addLoadExtender
flops.haumea -> extensions.APIs.addLoadExtenders
flops.flake -> subflake
flops.flake -> call-flake: extended inputs
flake.outputs.pops -> extensions: extensions interface
#+END_SRC
#+RESULTS:
[[file:images/omnibus.png]]
Not written in Markdown, so it's shown here as plain text — view it formatted on GitHub.
Nix
96.3%
Shell
1.6%
Just
1.2%