Lehmanator / omnibus

A unified Nix configuration loading interface and framework that emulates the modularity, configurability, reusability, and overrideability of Doom Emacs.(based on Pure Object Prototypes)

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

README

What is POP: Pure Object Prototypes

# !/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
    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

images/omnibus.png

About

A unified Nix configuration loading interface and framework that emulates the modularity, configurability, reusability, and overrideability of Doom Emacs.(based on Pure Object Prototypes)


Languages

Language:Nix 97.2%Language:Just 1.3%Language:Emacs Lisp 0.7%Language:Shell 0.7%Language:Nu 0.1%Language:Lua 0.0%