Table of Contents
This is the wiki for functorOS, a highly experimental NixOS-based Linux distribution.
What is it?
functorOS represents the coalescence of hundreds of hours of Nix hacking into a single unified distribution for all functor.systems members. In particular, the steering committee is composed of QuasarOS, liminalOS, and KaitoianOS, formerly competing operating systems united under a single united front to battle the macOS, Windows, and Ubuntu lobby.
functorOS is designed to distill all of the best features from all of its constituent operating systems. To that end, we propose a flake extension called the bridge, which will allow multiple configuration paradigms to coexist. For instance, functorOS may be consumed as a standard NixOS module a la liminalOS, or via a QuasarOS-style configuration function that provides a streamlined configuration interface.
How?
We propose that the initial version of functorOS be divergently forked from liminalOS due to its maturity and stability. Following, a large refactor will take place to strip out all non-standard configuration options. At this point it is imperative that a method be devised for fast iteration and hacking—in particular QuasarOS style update workflows are unacceptable. A likely solution comes in the form of the Nix CLI's flake override feature. It should be possible to keep a local copy of functorOS and write a shell script that overrides the user configuration's flake input to the local copy rather than a remote temporarily for hacking purposes.
After the initial migration is complete, we begin work on further modularization. We should ensure that the modules are truly interchangeable; currently liminalOS has substantial progress on this front but no consumers are trialing it. For example, it should be trivial to bring your own Waybar configuration or for multiple Waybars to coexist in the functorOS tree according to the tastes of the maintainers.
Finally, we implement the compatibility bridge system described before to create a QuasarOS-style configuration structure for the mentally deranged.
Specification
The keywords “MUST”, “MUST NOT”, “REQUIRED”, “SHALL”, “SHALL NOT”, “SHOULD”, “SHOULD NOT”, “RECOMMENDED”, “MAY”, and “OPTIONAL” in this document are to be interpreted as described in RFC 2119.
This document is unfinished, it will be updated periodically.
- functorOS MUST be controlled democratically as a cooperative. All major architectural changes SHALL be approved by an approved consensus voting algorithm.
- functorOS SHALL periodically freeze stable release branches corresponding to each NixOS release. These releases are intended for modular consumption in the servOS sister project, a NixOS distribution designed specifically for running the infrastructure of functor.systems.