first commit
This commit is contained in:
@@ -0,0 +1,69 @@
|
||||
# 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 `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/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 (`configs`).
|
||||
|
||||
## ⚠️ Antes de lanzar
|
||||
|
||||
- **Se borran DOS discos** (`"wipe": true` en ambos). Recrea el esquema actual:
|
||||
- `/dev/nvme0n1` → ESP 512M (`/boot/efi`) + `/boot` ext4 1G + `/` btrfs (resto)
|
||||
- `/dev/sda` → ext4 todo el disco en `/home` (**ojo: esto destruye el HDD de datos**)
|
||||
- swap = zram (`"swap": true`), sin partición de swap
|
||||
- bootloader **GRUB** (coherente con ESP en `/boot/efi` + `/boot` separado)
|
||||
|
||||
Verifica los nombres con `lsblk`; si tus discos no son `nvme0n1`/`sda`, edítalos.
|
||||
- **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.
|
||||
Reference in New Issue
Block a user