Skip to main content

Getting started

This page orients you to glixos. Read it first; the rest of the user docs build on the model described here.

The mental model

A glixos system is two repos:

  1. glixos-core — the OS layer. Project-owned. You add it as a flake input and pin it. You rarely edit anything in it.
  2. user-packages — your repo. Owned by you, generated by glix init. Contains:
    • flake.nix — the top-level flake, with two small glix-managed regions (inputs and hosts). Everything else is yours.
    • hosts/<host>/glix.toml — your manifest. Lists every package you installed, in what scope, for which user, with what config.
    • hosts/<host>/default.nix — your host's hardware/user/services config. glix never edits it after glix init.
    • flake.lock — pinned input revisions, managed by nix flake lock under the hood.

The glix Go CLI mutates only glix.toml plus the two anchored regions of flake.nix. Every mutation is one git commit. If nix flake lock fails partway through, glix restores the manifest, flake.nix, and flake.lock from an in-memory snapshot before returning the error, so you always have a working repo.

What glix.toml looks like

# glixos manifest. Managed by glix; hand edits preserved on best-effort.
schema = 1

[settings]
default_scope = "system"
auto_apply = false
system = "x86_64-linux"
primary_user = "alice"
registry_url = "https://raw.githubusercontent.com/glixos/registry/main/registry.json"

[packages.hello]
flake = "github:owner/pkg-hello"
scope = "system"
enabled = true

[packages.greeting]
flake = "github:owner/pkg-greeting"
scope = "home"
enabled = true
user = "alice"

[packages.greeting.config]
message = "Hello, world!"

That file plus your flake.lock fully describe what's installed.

What you'll do next

StepGoal
InstallationGet glix on your machine, either from source or as a Nix flake.
QuickstartInitialise a user-packages repo, add a package, rebuild.
CommandsThe full command surface and what each flag does.
ManifestSchema reference for glix.toml.
PackagesHow to write a flake that integrates well with glixos.

If you already run NixOS and want to skim, start with Quickstart.