tao3k/omnibus

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

See the code

README

: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.

Contributors

GTrunSec

326 commits

drupol

1 commits

Lehmanator

1 commits

tao3k/omnibus

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

See the code

README

: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.

Contributors

GTrunSec

326 commits

drupol

1 commits

Lehmanator

1 commits

Languages

Nix

96.3%

Shell

1.6%

Just

1.2%