Skip to content
/ omnibus Public

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

Notifications You must be signed in to change notification settings

tao3k/omnibus

Repository files navigation

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)

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages