Arroyo Systems are defined by a set of org-mode documents and a database caching layer. This repository is that database caching layer.
Go to file
Ryan Rix 55e57b8546 metadata splat 2023-10-23 11:52:17 -07:00 [arroyo] point to README for git etc 2021-08-14 20:21:20 -07:00
arroyo-db.el metadata splat 2023-10-23 11:52:17 -07:00
arroyo-emacs.el ugh lol 2023-07-27 15:51:57 -07:00 switch to emacs-unstable once again 2023-07-27 15:52:05 -07:00 arcology metadata 2022-09-12 14:02:54 -07:00
arroyo-feed.yasnippet.org_archive [feeds] generate ggs fragments on key/value pairs 2021-08-29 18:54:33 -07:00
arroyo-feeds.el [feeds] add commands, use ugly call-block function 2021-11-19 22:11:33 -08:00
arroyo-home-manager.el ugh lol 2023-07-27 15:51:57 -07:00 fix homemanager bugs?? 2023-04-03 15:29:52 -07:00 add my custom packages from [cce] to the nixpkgs overlay 2023-07-27 15:52:12 -07:00
arroyo-nixos.el use my [deploy] command from [cce] as morph wrapper in arroyo-flood 2023-07-27 15:51:34 -07:00 use my [deploy] command from [cce] as morph wrapper in arroyo-flood 2023-07-27 15:51:34 -07:00 fix bug in arroyo-db--record-file-hash when the hash doesn't previously exist 2023-10-23 11:51:34 -07:00
arroyo-utils.el pass files through to dep ordering command instead of s-exps 2021-12-10 14:35:44 -08:00 arcology metadata 2022-09-12 14:02:54 -07:00 metadata splat 2023-10-23 11:52:17 -07:00

Arroyo Systems Management

What are Arroyo Systems?

Arroyo systems are the latest iteration of my the CCE Emacs init.el generator cum Concept Operating System built for managing my laptops and desktops around an NixOS, Emacs, EXWM, and Evil Mode system. It is distributed and developed as a collection of org-mode documents which can be used to provision and upgrade the system and shared on the web to enrich the lives of weirdos like me.

pulling inspiration from vulpea and vino of building out a context-specific database hypermedia application which integrate with org-roam rather than extending or working within the API-space of org-roam itself, Arroyo consists of a database caching layer working alongside an org-roam database which can be queried to assemble a NixOS system and highly-customized Emacs installation-and-configuration.

it's designed such that a user can plug various pieces of system configuration together in the form of org-mode documents, creating a system which is literally self-documented.

By using a cache similar to the one built for my org-roam keyword caching patch, we can construct a higher-level database schema for the Arroyo system generators. The Arroyo System Cache aka arroyo-db will create a simple key-value store which higher-level generators like Arroyo Emacs Generator can use to assemble and automate systems.

An Arroyo System's configuration can be published on the web using Arcology, an elixir web document publishing framework built under similar ideas and philosophies with the end goal of socially-maintained hand-crafted and user-customized Linux systems.

Arroyo Systems are "designed" to develop in fits and bursts

Arroyos are a type of stream bed biome common in the American southwest and northern Mexico Sonora Bioregion which is dry for most of the year and gets most of its rain in brief torrential surface flows. When I was young, I lived in a home which backed up to an arroyo and I spent quite some time wandering its trails and its unkept willows and catching my clothes on catclaws, using it as a shortcut through the neighborhood and an escape in to an increasingly developed suburban sprawl.

I was always enchanted with the arroyo during and after the torrential downpours Phoenix would have in the late summers, as tonnes of water passed through willows and waterweed. The arroyo would teem with life during the monsoon season as the brief intense rains pushed life out of its shaded cracks and in to a frenzy of growth and development and used it as a migration route just as the humans in the built environment around it did in its dry periods.

The Arroyo system pulls inspiration from this as a lens to look at how personal systems management is spurred on by

  • keeping up with ecosystem development and migration without undue effort
  • external changes and new tools should be easy to try and easy to then disregard
  • slow thinking and quick implementation of internal development to match with life needs
  • management of overgrowth through periods of careful usage and evaluation

This system develops when I feel like it, and has slowly over the course of a decade developed in to something which can be shared and perhaps replicated. When a beautiful summer's day spurs me to investigate a new library or I learn about a new paradigm I sit and think about it. The Arroyo floods and growth follows quickly; there might not be another rain of insight until winter, after all.

NEXT Assembling an Arroyo System

  • How do I use these libraries to generate an Emacs init file?
  • How do I use these libraries to build a NixOS system?
  • How do I use these libraries to build an emacs-gcc with packages provided by NixOS at build time?
  • How do I use these libraries to install and manage software for my user account?
  • How do I build more generators on top of this system?

Arroyo is itself an Arroyo Emacs module

It should probably be defined as a Arroyo Home Manager module, too, once the code has stabilized..

(add-to-list 'load-path "~/org/arroyo")
(require 'org-roam)
(require 'arroyo-db)
(require 'arroyo-utils)
(require 'arroyo-home-manager)
(require 'arroyo-nixos)
(require 'arroyo-emacs)
(require 'arroyo-feeds)

Arroyo Generators

Working arroyos:

These flow together and in theory other arroyos could feed in to them, basically anything which requires or desires nontrivail configuration and long-term documentation.

NEXT is The Arcology Project itself an Arroyo System?

it's not really built to compose, and i'd rather not use the arroyo system as a generic build tool! though it sort of is for org-mode files…

Coming back to this [2021-12-02 Thu] i specify a table layout which could be expressed as an Arroyo generator. I'd like to keep the generator outside of the Arroyo project, and in Arcology, but I think at this point it makes sense to spend a bit of time cleaning up the core APIs and documenting them better, and then coming back to Arcology with a smarter table design.

NEXT arroyo module groupings to modularize CCE