Resumen/Scripts y CLI
x-scripts — visión general
x-scripts es el payload de aprovisionamiento y CLI del sistema X. Es el
repo equislinux/scripts (antes el repo x) y sustituyó al instalador gráfico
basado en Calamares por aprovisionamiento por scripts, con implementación y
branding propios.
Rol en la organización
| Repo | Rol |
|---|---|
equislinux/x | La distro: perfil archiso, builds ISO/WSL y flujo de instalación. |
equislinux/scripts | Este repo: fases de aprovisionamiento, setup de usuario, CLI x, migraciones y temas, empaquetado como x-scripts. |
equislinux/xpkg / equislinux/xpm | Tooling Rust de empaquetado/gestión de paquetes. |
equislinux/x-repo | Repo de paquetes + portal. |
La distro (x) consume este repo empaquetado como el paquete x-scripts. El
instalador de texto ejecuta ambas fases durante la instalación: las fases root
(x setup) aprovisionan el sistema y la fase de usuario (x setup --user)
siembra el home del usuario nuevo antes de desplegar el escritorio elegido. El
tooling Rust (xpkg/xpm) construye y consume el endpoint nativo .xp; el
sistema se aprovisiona con pacman + [x].
Qué aporta este repo
install/— orquestadores de fase para aprovisionamiento de sistema (root) y usuario, con helpers de sync idempotentes y los motores de generaciones (xgen.shpara snapshots del sistema,xgen-home.shpara dotfiles).bin/— la CLIx(dispatcher + subcomandos por convención de nombres), incluidosx gen ...yx home ....hooks/— el wrapperpacman-gen.shy los hooks alpm (hooks/alpm/, instalados en/usr/share/libalpm/hooks/).skel/,etc/,config/— semillas de dotfiles para/etc/skel, drop-ins de/etcy configs de usuario.hardware/,tools/— módulos opcionales (NVIDIA, QEMU/libvirt, node) y las herramientas de setup de los escritorios Hyprland y niri. KDE Plasma lo instala el instalador de texto, no este payload.migrations/,themes/— migraciones por usuario y temas por paleta.packaging/— el PKGBUILD dex-scriptsy el generador del snapshot de config offline (vendor-config.sh). payload).test/— tests locales sin root (test/smoke.sh).
Rol en el sistema
En un sistema x instalado, el paquete instala todo bajo /usr/share/x y
expone la CLI como /usr/bin/x (un symlink a /usr/share/x/bin/x). El payload
es lo que convierte un Arch recién pacstrapeado en una máquina x aprovisionada:
- Las fases root configuran el sistema (skel, drop-ins de
/etc, módulos de hardware, servicios). - La fase de usuario siembra el home, sincroniza los dotfiles y aprovisiona el
escritorio: Hyprland (snapshot offline u online vía
equisdots/dots) o niri (online víaequisdots/niri-meta). KDE Plasma lo gestiona el instalador de texto. xes la CLI del día a día para temas, migraciones y actualizaciones, más generaciones:x genversiona el sistema (snapshots booteables, rollback, restore granular) yx homeversiona los dotfiles del usuario.
Ver cli.md, provisioning.md, generations.md, hyprland.md, niri.md y
packaging.md.
Fuentes de configuración
Las configs de escritorio no se mantienen en esta organización: la org
equisdots es dueña de los stacks (equisdots/hyprland, equisdots/niri,
equisdots/niri-shell, equisdots/niri-login, equisdots/niri-meta, más los
repos compartidos shell, palettes, theme-sync, davincix, timex y
login; rama main). Las configs de apps vienen de
xscriptor-colors/terminal (kitty/starship) y xscriptor-colors/nvim. Todas
se usan de solo lectura; los instaladores oficiales son equisdots/dots
(Hyprland) y equisdots/niri-meta (niri). Solo el stack Hyprland se vende para
uso offline; niri se instala online. El branding de KDE Plasma vive en el
paquete x-kde-settings de [x]. Ver hyprland.md, niri.md y ADR-0005.
Rama y estado
Los entregables de este repo se trackean en main. La fuente del payload
es x-scripts 0.1.0-42, incluida en el ISO 2026.10.27; el repositorio público
[x] sirve actualmente 0.1.0-39. El paquete también incluye la herramienta no
interactiva niri-install.sh que usa el instalador de texto. Restos de
auditoría pendientes: x-base.packages sin consumidor, pulido de CLI y más
cobertura de los helpers/fases.
WSL vive en sus repos dedicados: equislinux/wsl y equislinux/wsl-scripts.