Overview/Scripts and CLI
x-scripts — overview
x-scripts is the provisioning payload and CLI of the x system. It is the
equislinux/scripts repo (formerly the x repo) and, together with the other
repos of the equislinux organization, implements the reboot initiative that
replaced the Calamares-based graphical installer with scripted provisioning
(Omarchy mechanics, own implementation and branding). See ADR-0001/ADR-0002 in
DECISIONS.md at the workspace root (x-lnux).
Role in the organization
| Repo | Role |
|---|---|
equislinux/x | The distro: archiso profile, ISO/WSL builds and install flow. |
equislinux/scripts | This repo: provisioning phases, user setup, x CLI, migrations and themes, packaged as x-scripts. |
equislinux/xpkg / equislinux/xpm | Rust packaging/package-manager tooling. |
equislinux/x-repo | Package repository + portal. |
The distro (x) consumes this repo packaged as the x-scripts package; the
installer runs the root phases (x setup) during install and the user phase
(x setup --user) at first boot. The Rust tooling (xpkg/xpm) is currently
out of scope for packaging (see the packaging doc and the workspace ROADMAP).
What this repo provides
install/— phase orchestrators for system (root) and user provisioning, with idempotent sync helpers and the generation engines (helpers/xgen.shfor system snapshots,helpers/xgen-home.shfor dotfile generations).bin/— thexCLI (dispatcher + subcommands by naming convention), includingx genandx home.skel/,etc/,config/— dotfile seeds for/etc/skel,/etcdrop-ins (including the pacman generation hooks) and user configs.hooks/—pacman-gen.sh, the wrapper called by the pacman pre/post generation hooks.hardware/,tools/— optional modules (NVIDIA, QEMU/libvirt, node) and the Hyprland desktop setup tool.migrations/,themes/— per-user migrations and palette themes.packaging/— thex-scriptsPKGBUILD and the offline config snapshot generator (vendor-config.sh).test/— local tests without root (test/smoke.sh).
Role in the system
On an installed x system the package installs everything below
/usr/share/x and exposes the CLI as /usr/bin/x (a symlink to
/usr/share/x/bin/x). The payload is what turns a freshly pacstrapped Arch
into a provisioned x machine:
- Root phases configure the system (skel,
/etcdrop-ins, hardware modules, services). - The user phase seeds the home, syncs dotfiles and provisions the desktop (Hyprland stack) offline from a vendored config snapshot.
xis the day-to-day CLI for themes, migrations, updates and generations.x genversions the system as bootable btrfs snapshots plus manifests andx homeversions the dotfiles with plain copies, with rollback, diff, verify, prune, export/import and granular restore. Seegenerations.md.
See cli.md, provisioning.md, generations.md, hyprland.md and
packaging.md.
Configuration sources
The desktop configs are not maintained in this organization: the equisdots
org owns the stack (equisdots/hyprland, equisdots/shell,
equisdots/palettes, equisdots/theme-sync, equisdots/davincix,
equisdots/timex, equisdots/login, equisdots/dots, branch main) and the
app configs come from xscriptor-colors/terminal (kitty/starship) and
xscriptor-colors/nvim. All are used read-only; the official installer is
equisdots/dots. A snapshot of the whole stack is vendored into the package
for offline use. See hyprland.md and ADR-0005.
Branch and status
The reboot deliverables of this repo are tracked on main (current
branch; a local x/reboot also exists for reference). The phase tracking in
ROADMAP.md of this repo and of the workspace root is mostly complete through
the "distro installable" stage; remaining audit items for this repo include
x-base.packages without a consumer, CLI polish, more unit coverage for the
helpers/phases and WSL unification. Progress and decisions live in the
ROADMAP.md/DECISIONS.md files at the workspace root (x-lnux).
WSL lives in its dedicated repos: equislinux/wsl and equislinux/wsl-scripts.