A highly experimental NixOS-based Linux distribution, descended from liminalOS.
Currently under heavy development and not suitable for daily use. Please see the project wiki for more details.
See os.functor.systems for module options.
functorOS is ready for power users to test drive. You first need to install
NixOS on your desired machine. To install functorOS, run the following command
and look inside flake.nix, containing a minimal self-documenting configuration
for functorOS.
nix flake init -t "git+https://code.functor.systems/functor.systems/functorOS"flowchart TB
    subgraph Core
        NixOS[NixOS Base System]
        SysCore["System Core"]:::core
        BuildTools["System Building Tools"]:::core
    end
    subgraph PlatformModules
        direction TB
        Linux["Linux Modules"]:::linux
        subgraph LinuxComponents
            direction TB
            Audio["Audio System"]:::linux
            Gaming["Gaming Support"]:::linux
            Graphics["Graphics System"]:::linux
            Network["Networking"]:::linux
            Theme["Theming System"]:::linux
        end
    end
    subgraph HomeManager
        direction TB
        HMCore["Home Manager Core"]:::hm
        Desktop["Desktop Environment"]:::hm
        Shell["Shell Environment"]:::hm
        Platform["Platform-Specific Tweaks"]:::hm
    end
    subgraph ConfigLayer
        direction TB
        HostConfig["Host Configurations"]:::config
        UserConfig["User Configurations"]:::config
        Secrets["Secrets Management"]:::security
        Pkgs["Package Management"]:::pkg
    end
    %% Relationships
    NixOS --> SysCore
    SysCore --> Linux
    BuildTools --> HostConfig
    Linux --> LinuxComponents
    Linux --> Desktop
    HMCore --> Shell
    HMCore --> Platform
    HMCore --> Desktop
    HostConfig --> UserConfig
    UserConfig --> Secrets
    Pkgs --> HostConfig
    %% Click Events
    click SysCore "https://github.com/youwen5/liminalos/tree/main/modules/linux/core/"
    click BuildTools "https://github.com/youwen5/liminalos/blob/main/lib/buildLiminalOS.nix"
    click Linux "https://github.com/youwen5/liminalos/tree/main/modules/linux/"
    click Audio "https://github.com/youwen5/liminalos/tree/main/modules/linux/audio/"
    click Gaming "https://github.com/youwen5/liminalos/tree/main/modules/linux/gaming/"
    click Graphics "https://github.com/youwen5/liminalos/tree/main/modules/linux/graphics/"
    click Network "https://github.com/youwen5/liminalos/tree/main/modules/linux/networking/"
    click Theme "https://github.com/youwen5/liminalos/tree/main/modules/linux/stylix/"
    click HMCore "https://github.com/youwen5/liminalos/tree/main/hm/modules/common/"
    click Desktop "https://github.com/youwen5/liminalos/tree/main/hm/modules/linux/desktop-environment/"
    click Shell "https://github.com/youwen5/liminalos/tree/main/hm/modules/common/shellenv/"
    click Platform "https://github.com/youwen5/liminalos/tree/main/hm/modules/linux/platform-tweaks/"
    click HostConfig "https://github.com/youwen5/liminalos/tree/main/reference/hosts/"
    click UserConfig "https://github.com/youwen5/liminalos/tree/main/reference/users/"
    click Secrets "https://github.com/youwen5/liminalos/tree/main/reference/secrets/"
    click Pkgs "https://github.com/youwen5/liminalos/tree/main/pkgs/"
    %% Styling
    classDef core fill:#2196F3,stroke:#1565C0,color:white
    classDef linux fill:#4CAF50,stroke:#2E7D32,color:white
    classDef hm fill:#FF9800,stroke:#EF6C00,color:white
    classDef config fill:#795548,stroke:#4E342E,color:white
    classDef security fill:#F44336,stroke:#C62828,color:white
    classDef pkg fill:#607D8B,stroke:#37474F,color:white