Convergent bleeding edge fork for functorOS.
Find a file
2025-09-16 18:07:41 -07:00
.github/workflows fix: use new default branch main 2025-08-30 10:17:00 -07:00
docs feat: improve documentation rendering 2025-08-28 10:17:27 -07:00
hm fix(rofi): rofi-wayland merged into rofi 2025-09-16 18:07:41 -07:00
lib refactor: replace most occurrences of liminalOS with functorOS 2025-08-28 12:26:58 -07:00
modules feat: replace doas with run0 2025-09-06 11:20:32 -07:00
overlays fix: remove hyprscroller overlay 2025-02-17 19:33:57 -08:00
pkgs chore: chase hyprscroller 2025-07-25 13:32:06 +08:00
templates/minimal docs: add more comments to template 2025-09-01 02:44:03 -07:00
.gitignore chore: add .aider to gitignore 2025-09-06 11:20:40 -07:00
.prettierrc.toml docs(readme): formatting and some more content 2024-08-11 15:05:42 -07:00
default.nix feat: add an option that tracks all users configured in system 2025-08-28 19:20:04 -07:00
flake.lock flake.lock: Update 2025-09-16 12:20:36 -07:00
flake.nix fix: revert pin of onibotoke/nixpkgs 2025-09-10 17:18:30 -04:00
LICENSE feat: successfully compile on callisto (asahi aarch64) 2024-08-07 05:57:55 -07:00
README.md docs: remove mention of darwin 2025-08-28 19:47:03 -07:00

functorOS

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.

Try it

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"

Technical overview

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

Reference implementations

  • Minimal template --- see Try it.
  • @youwen --- shezhi. An advanced functorOS deployment featuring multiple hosts, additional flake inputs, custom configurations, and secret management.