- Añade linux-lts como kernel fallback en archinstall (GNOME/KDE). - Implementa snapper + snap-pac + grub-btrfs para rollback de actualizaciones. - Configura snapshots solo en operaciones de pacman (timeline deshabilitado). - Sincroniza PACMAN_COMMON/AUR_COMMON con la máquina maestra. - Añade FLATPAK_COMMON para Heroic, Karere y Buffer. - Elimina paquetes no presentes: obsidian, davmail, karere, heroic-games-launcher-bin. - Añade packagekit-qt6 y kwin-decoration-sierra-breeze-enhanced-git en KDE. - Actualiza PROJECT_CONTEXT.md con la nueva arquitectura.
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.
Uso (desde el USB live de Arch, como root)
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:
archinstall --silentcon el JSON de la variante → instala base + escritorio en/mnt.- Se copia a sí mismo a
/mnty entra enarch-chroot. - Dentro del chroot: crea el usuario, instala paquetes (pacman + AUR vía
paru), aplica el aspecto y ejecutachezmoi init --applyapuntando agitea.josevi.ovh/josevi/arch-configs. - 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 porparu(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: JetBrains Mono Nerd en ambos escritorios; el resto diverge por DE.
GNOME: Catppuccin Mocha + iconos Papirus-Dark + Dash-to-Dock y extensiones
(AppIndicator, Blur my Shell, Caffeine, Clipboard Indicator, Vitals). KDE: tema
global Layan + iconos Tela + cursores Layan-white (paquetes AUR, ver
kde/setup.sh) + splash Animated-Abstract-Cube; look capturado del portátil conshared/capture-kde.shy aplicado vía chezmoi. - Dotfiles:
chezmoiapuntando 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=0enlsblk), así el USB instalador (sdb, removible) queda fuera y da igual que el SSD seanvme0n1o un SSD PCIe que enumera comosda. Esquema:- Disco de sistema (1º; nvme si existe) → ESP 512M (
/boot/efi) +/bootext4 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,/homevive dentro del/btrfs. - swap = zram (
"swap": true), sin partición de swap - bootloader GRUB (coherente con ESP en
/boot/efi+/bootseparado)
Verifica con
lsblkqué discos quedan como fijos. Para forzar nombres a mano:gen-disk-config.py BASE.json /dev/SISTEMA [/dev/HOME]. - Disco de sistema (1º; nvme si existe) → ESP 512M (
-
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, abrearchinstallinteractivo, define los discos a mano, usa Save configuration y pega ese bloquedisk_configen 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, guvcview, KVIrc, Zen Browser, VSCode, DavMail,
Betterbird, OnlyOffice, Spotify, ungoogled-chromium, Karere, HelpWire (vía
.deb→debtap). GNOME añade gnome-calculator/tweaks; KDE añade
kcalc/ark/spectacle/kdeconnect/kinfocenter.