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:
glixos-core— the OS layer. Project-owned. You add it as a flake input and pin it. You rarely edit anything in it.user-packages— your repo. Owned by you, generated byglix 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 afterglix init.flake.lock— pinned input revisions, managed bynix flake lockunder 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
| Step | Goal |
|---|---|
| Installation | Get glix on your machine, either from source or as a Nix flake. |
| Quickstart | Initialise a user-packages repo, add a package, rebuild. |
| Commands | The full command surface and what each flag does. |
| Manifest | Schema reference for glix.toml. |
| Packages | How to write a flake that integrates well with glixos. |
If you already run NixOS and want to skim, start with Quickstart.