# arch-setup Instalación automatizada de Arch Linux para mis dos máquinas (hardware idéntico), en **un único comando** desde el USB live, sin reiniciar entre la base y la config. Dos variantes de escritorio: **GNOME** y **KDE Plasma**. ``` arch-setup/ ├── gnome/ archinstall-config.json + setup.sh (GNOME, gdm) ├── kde/ archinstall-config.json + setup.sh (KDE Plasma, sddm) ├── shared/ packages-common.sh (paquetes comunes a ambos) └── README.md ``` > Procedimiento paso a paso completo en [INSTALL.md](INSTALL.md). ## Uso (desde el USB live de Arch, como root) ```bash pacman -Sy --noconfirm git git clone https://gitea.josevi.ovh/josevi/arch-setup cd arch-setup ./gnome/setup.sh # o ./kde/setup.sh ``` El script te pide: usuario a crear, token de Gitea (para el repo `arch-configs` privado), nombre y email de git. Después, sin más intervención: 1. `archinstall --silent` con el JSON de la variante → instala base + escritorio en `/mnt`. 2. Se copia a sí mismo a `/mnt` y entra en `arch-chroot`. 3. Dentro del chroot: crea el usuario, instala paquetes (pacman + AUR vía `paru`), aplica el aspecto y ejecuta `chezmoi init --apply` apuntando a `gitea.josevi.ovh/josevi/arch-configs`. 4. Quitas el USB y `reboot`. El tema se aplica en el primer login gráfico. ## Decisiones - **AUR-first**: lo que está en repos oficiales va por `pacman`; el resto por `paru` (se bootstrapea solo). Sin Flatpak salvo que lo añadas. - **Contenedores**: Podman + `podman-docker` (capa de compat), no Docker. - **Navegador**: Zen Browser. También ungoogled-chromium. - **Aspecto**: Catppuccin Mocha + iconos Papirus-Dark + JetBrains Mono Nerd en ambos escritorios (coherencia GNOME/KDE). GNOME añade Dash-to-Dock y extensiones (AppIndicator, Blur my Shell, Caffeine, Clipboard Indicator, Vitals). - **Dotfiles**: `chezmoi` apuntando a un repo separado (`arch-configs`). ## ⚠️ Antes de lanzar - **Se borran los discos FIJOS detectados** (`"wipe": true`). Los discos se autodetectan filtrando por NO removible (`RM=0` en `lsblk`), así el USB instalador (`sdb`, removible) queda fuera y da igual que el SSD sea `nvme0n1` o un SSD PCIe que enumera como `sda`. Esquema: - **Disco de sistema** (1º; nvme si existe) → ESP 512M (`/boot/efi`) + `/boot` ext4 1G + `/` btrfs (resto) - **2º disco fijo** (si hay) → ext4 todo el disco en `/home` (**ojo: destruye el disco de datos**). Si solo hay 1 disco, `/home` vive dentro del `/` btrfs. - swap = zram (`"swap": true`), sin partición de swap - bootloader **GRUB** (coherente con ESP en `/boot/efi` + `/boot` separado) Verifica con `lsblk` qué discos quedan como fijos. Para forzar nombres a mano: `gen-disk-config.py BASE.json /dev/SISTEMA [/dev/HOME]`. - **Esquema de particiones de archinstall** cambia entre versiones, y el particionado manual multi-disco es lo más sensible. Si archinstall se queja del `disk_config`, abre `archinstall` interactivo, define los discos a mano, usa **Save configuration** y pega ese bloque `disk_config` en el JSON. - Zona horaria/teclado fijados a `Europe/Madrid` / `us-acentos`. Ajusta si hace falta. ## Apps que se instalan Comunes (`shared/packages-common.sh`): zsh+starship+CLI moderno, git+base-devel, Podman, nodejs/python/rustup, Bitwarden, DBeaver, Obsidian, GIMP, Syncthing, Remmina+FreeRDP, Apostrophe, Zen Browser, VSCode, DavMail, Betterbird, OnlyOffice, Spotify, ungoogled-chromium, Input Remapper, HelpWire (vía `.deb`→`debtap`). GNOME añade gnome-calculator/tweaks; KDE añade kcalc/ark/spectacle.