Quita la variante GNOME: KDE Plasma es el único escritorio que se usa
En el uso real nunca se ha instalado GNOME en ninguna de las dos máquinas. Elimina gnome/ entero (archinstall-config.json + setup.sh) y limpia todas las referencias en README.md, INSTALL.md, packages-common.sh y pkgsync.sh (comentarios "<de>/setup.sh" genéricos, comparaciones GNOME/KDE, la variable DE ya inútil en kde/setup.sh). Sigue disponible en el historial de git si algún día hiciera falta.
This commit is contained in:
+5
-5
@@ -1,7 +1,7 @@
|
|||||||
# Procedimiento de instalación
|
# Procedimiento de instalación
|
||||||
|
|
||||||
Pasos para instalar Arch en las dos máquinas (NVMe 250G + SSD SATA 1TB) desde el
|
Pasos para instalar Arch en las dos máquinas (NVMe 250G + SSD SATA 1TB) desde el
|
||||||
USB live, en un comando. Variantes: GNOME o KDE.
|
USB live, en un comando. Escritorio: KDE Plasma.
|
||||||
|
|
||||||
## 0. Una vez (preparación de repos)
|
## 0. Una vez (preparación de repos)
|
||||||
|
|
||||||
@@ -41,7 +41,7 @@ como `sda`. Confirma con `lsblk` que solo tus discos reales tienen `RM` a `0`. E
|
|||||||
pacman -Sy --noconfirm git
|
pacman -Sy --noconfirm git
|
||||||
git clone https://gitea.josevi.ovh/josevi/arch-setup
|
git clone https://gitea.josevi.ovh/josevi/arch-setup
|
||||||
cd arch-setup
|
cd arch-setup
|
||||||
./gnome/setup.sh # o ./kde/setup.sh
|
./kde/setup.sh
|
||||||
```
|
```
|
||||||
|
|
||||||
## 5. Responder los prompts
|
## 5. Responder los prompts
|
||||||
@@ -60,9 +60,9 @@ y **email** de git, y la **contraseña** del usuario. A partir de ahí va solo:
|
|||||||
reboot
|
reboot
|
||||||
```
|
```
|
||||||
|
|
||||||
Quita el USB. En el **primer login gráfico** se aplica el tema Catppuccin,
|
Quita el USB. El tema (Layan + iconos Tela + cursores Layan-white) y el resto
|
||||||
iconos, fuentes, dock (GNOME) y el teclado `us-intl`. Ese oneshot se
|
del look ya vienen aplicados por `kde/setup.sh` y chezmoi; solo falta el
|
||||||
autodestruye; el segundo login arranca limpio.
|
primer login gráfico normal.
|
||||||
|
|
||||||
## 7. Segunda máquina
|
## 7. Segunda máquina
|
||||||
|
|
||||||
|
|||||||
@@ -2,13 +2,12 @@
|
|||||||
|
|
||||||
Instalación automatizada de Arch Linux para mis dos máquinas (hardware idéntico),
|
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.
|
en **un único comando** desde el USB live, sin reiniciar entre la base y la config.
|
||||||
Dos variantes de escritorio: **GNOME** y **KDE Plasma**.
|
Escritorio: **KDE Plasma** (único, sin GNOME — ver "Decisiones").
|
||||||
|
|
||||||
```
|
```
|
||||||
arch-setup/
|
arch-setup/
|
||||||
├── gnome/ archinstall-config.json + setup.sh (GNOME, gdm)
|
|
||||||
├── kde/ archinstall-config.json + setup.sh (KDE Plasma, sddm)
|
├── kde/ archinstall-config.json + setup.sh (KDE Plasma, sddm)
|
||||||
├── shared/ packages-common.sh (paquetes comunes a ambos)
|
├── shared/ packages-common.sh (paquetes base)
|
||||||
├── pkgsync/ pkgsync.sh + systemd/ (sync de paquetes entre máquinas)
|
├── pkgsync/ pkgsync.sh + systemd/ (sync de paquetes entre máquinas)
|
||||||
└── README.md
|
└── README.md
|
||||||
```
|
```
|
||||||
@@ -21,14 +20,14 @@ arch-setup/
|
|||||||
pacman -Sy --noconfirm git
|
pacman -Sy --noconfirm git
|
||||||
git clone https://gitea.josevi.ovh/josevi/arch-setup
|
git clone https://gitea.josevi.ovh/josevi/arch-setup
|
||||||
cd arch-setup
|
cd arch-setup
|
||||||
./gnome/setup.sh # o ./kde/setup.sh
|
./kde/setup.sh
|
||||||
```
|
```
|
||||||
|
|
||||||
El script te pide: usuario a crear, token de Gitea (para el repo `arch-configs`
|
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:
|
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
|
1. `archinstall --silent` con `kde/archinstall-config.json` → instala base +
|
||||||
en `/mnt`.
|
KDE Plasma en `/mnt`.
|
||||||
2. Se copia a sí mismo a `/mnt` y entra en `arch-chroot`.
|
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
|
3. Dentro del chroot: crea el usuario, instala paquetes (pacman + AUR vía
|
||||||
`paru`), aplica el aspecto y ejecuta `chezmoi init --apply` apuntando a
|
`paru`), aplica el aspecto y ejecuta `chezmoi init --apply` apuntando a
|
||||||
@@ -41,12 +40,12 @@ privado), nombre y email de git. Después, sin más intervención:
|
|||||||
`paru` (se bootstrapea solo). Sin Flatpak salvo que lo añadas.
|
`paru` (se bootstrapea solo). Sin Flatpak salvo que lo añadas.
|
||||||
- **Contenedores**: Podman + `podman-docker` (capa de compat), no Docker.
|
- **Contenedores**: Podman + `podman-docker` (capa de compat), no Docker.
|
||||||
- **Navegador**: Zen Browser. También ungoogled-chromium.
|
- **Navegador**: Zen Browser. También ungoogled-chromium.
|
||||||
- **Aspecto**: JetBrains Mono Nerd en ambos escritorios; el resto diverge por DE.
|
- **Aspecto**: JetBrains Mono Nerd + tema global Layan + iconos Tela + cursores
|
||||||
GNOME: Catppuccin Mocha + iconos Papirus-Dark + Dash-to-Dock y extensiones
|
Layan-white (paquetes AUR, ver `kde/setup.sh`) + splash Animated-Abstract-Cube;
|
||||||
(AppIndicator, Blur my Shell, Caffeine, Clipboard Indicator, Vitals). KDE: tema
|
look capturado del portátil con `shared/capture-kde.sh` y aplicado vía chezmoi.
|
||||||
global Layan + iconos Tela + cursores Layan-white (paquetes AUR, ver
|
- **Solo KDE Plasma, sin GNOME**: hubo variante GNOME en su día; se retiró
|
||||||
`kde/setup.sh`) + splash Animated-Abstract-Cube; look capturado del portátil
|
porque en el uso real KDE es lo único que se usa. Si algún día hiciera falta
|
||||||
con `shared/capture-kde.sh` y aplicado vía chezmoi.
|
recuperarla, está en el historial de git (commit anterior a la retirada).
|
||||||
- **Dotfiles en repo separado, paquetes en este mismo**: no es arbitrario.
|
- **Dotfiles en repo separado, paquetes en este mismo**: no es arbitrario.
|
||||||
`arch-configs` (dotfiles, vía `chezmoi`) es datos personales sin relación
|
`arch-configs` (dotfiles, vía `chezmoi`) es datos personales sin relación
|
||||||
con "cómo se instala nada" — cambian solos a su ritmo, generan un historial
|
con "cómo se instala nada" — cambian solos a su ritmo, generan un historial
|
||||||
@@ -54,7 +53,7 @@ privado), nombre y email de git. Después, sin más intervención:
|
|||||||
**último** paso, con el sistema ya funcionando; si `chezmoi init --apply`
|
**último** paso, con el sistema ya funcionando; si `chezmoi init --apply`
|
||||||
fallara entero, igualmente tendrías un Arch+KDE arrancable, solo que sin tu
|
fallara entero, igualmente tendrías un Arch+KDE arrancable, solo que sin tu
|
||||||
toque personal. `shared/packages-common.sh` en cambio *es* el instalador,
|
toque personal. `shared/packages-common.sh` en cambio *es* el instalador,
|
||||||
no datos sobre el instalador: `<de>/setup.sh` hace `source` de ese fichero
|
no datos sobre el instalador: `kde/setup.sh` hace `source` de ese fichero
|
||||||
y pasa sus arrays directamente a `install_pacman`/`install_aur` — el array
|
y pasa sus arrays directamente a `install_pacman`/`install_aur` — el array
|
||||||
es el input directo de la lógica de instalación, en el mismo repo que
|
es el input directo de la lógica de instalación, en el mismo repo que
|
||||||
arranca todo el proceso. Meterlo en un repo aparte obligaría a `setup.sh` a
|
arranca todo el proceso. Meterlo en un repo aparte obligaría a `setup.sh` a
|
||||||
@@ -92,8 +91,8 @@ Comunes (`shared/packages-common.sh`): zsh+starship+CLI moderno, git+base-devel,
|
|||||||
Podman, nodejs/python/rustup, Bitwarden, DBeaver, Obsidian, GIMP, Syncthing,
|
Podman, nodejs/python/rustup, Bitwarden, DBeaver, Obsidian, GIMP, Syncthing,
|
||||||
Remmina+FreeRDP, Apostrophe, guvcview, KVIrc, Zen Browser, VSCode,
|
Remmina+FreeRDP, Apostrophe, guvcview, KVIrc, Zen Browser, VSCode,
|
||||||
Betterbird, OnlyOffice, Spotify, ungoogled-chromium, Karere, HelpWire (vía
|
Betterbird, OnlyOffice, Spotify, ungoogled-chromium, Karere, HelpWire (vía
|
||||||
`.deb`→`debtap`). GNOME añade gnome-calculator/tweaks; KDE añade
|
`.deb`→`debtap`). KDE añade kcalc/ark/spectacle/kdeconnect/kinfocenter
|
||||||
kcalc/ark/spectacle/kdeconnect/kinfocenter.
|
(inline en `kde/setup.sh`, ver "Decisiones").
|
||||||
|
|
||||||
## pkgsync — sincronización de paquetes entre las dos máquinas
|
## pkgsync — sincronización de paquetes entre las dos máquinas
|
||||||
|
|
||||||
@@ -143,7 +142,7 @@ pkgsync/
|
|||||||
(`git log` sobre `shared/packages-common.sh`).
|
(`git log` sobre `shared/packages-common.sh`).
|
||||||
- **`pkgsync audit`**: paquetes instalados localmente que no están declarados
|
- **`pkgsync audit`**: paquetes instalados localmente que no están declarados
|
||||||
en ningún array ni en el override local — drift no capturado. Nota: los
|
en ningún array ni en el override local — drift no capturado. Nota: los
|
||||||
paquetes específicos de KDE/GNOME hardcodeados en `<de>/setup.sh`
|
paquetes específicos de KDE hardcodeados en `kde/setup.sh`
|
||||||
(`plasma-desktop`, `sddm`, temas AUR, etc.) siempre van a aparecer aquí —
|
(`plasma-desktop`, `sddm`, temas AUR, etc.) siempre van a aparecer aquí —
|
||||||
no viven en los arrays por diseño, no es drift real.
|
no viven en los arrays por diseño, no es drift real.
|
||||||
|
|
||||||
@@ -171,10 +170,10 @@ ni lo sobreescribe. `bootstrap` deja un scaffold comentado si no existe.
|
|||||||
### Instalación
|
### Instalación
|
||||||
|
|
||||||
**Máquinas nuevas**: automático, `install_pkgsync()` (en
|
**Máquinas nuevas**: automático, `install_pkgsync()` (en
|
||||||
`packages-common.sh`) se llama desde `<de>/setup.sh` justo después de
|
`packages-common.sh`) se llama desde `kde/setup.sh` justo después de
|
||||||
`chezmoi init --apply`.
|
`chezmoi init --apply`.
|
||||||
|
|
||||||
**Las dos máquinas ya instaladas** (retrofit, sin reinstalar):
|
**Máquinas ya instaladas** (retrofit, sin reinstalar):
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
mkdir -p ~/.local/bin ~/.config/systemd/user
|
mkdir -p ~/.local/bin ~/.config/systemd/user
|
||||||
|
|||||||
@@ -1,36 +0,0 @@
|
|||||||
{
|
|
||||||
"config_version": "3.0.0",
|
|
||||||
"archinstall-language": "Spanish",
|
|
||||||
"bootloader": "Grub",
|
|
||||||
"hostname": "arch-gnome",
|
|
||||||
"kernels": [
|
|
||||||
"linux",
|
|
||||||
"linux-lts"
|
|
||||||
],
|
|
||||||
"ntp": true,
|
|
||||||
"swap": true,
|
|
||||||
"timezone": "Europe/Madrid",
|
|
||||||
"locale_config": {
|
|
||||||
"kb_layout": "us-acentos",
|
|
||||||
"sys_enc": "UTF-8",
|
|
||||||
"sys_lang": "es_ES.UTF-8"
|
|
||||||
},
|
|
||||||
"mirror_config": {
|
|
||||||
"mirror_regions": {
|
|
||||||
"Spain": []
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"network_config": {
|
|
||||||
"type": "nm"
|
|
||||||
},
|
|
||||||
"audio_config": {
|
|
||||||
"audio": "pipewire"
|
|
||||||
},
|
|
||||||
"packages": [
|
|
||||||
"networkmanager",
|
|
||||||
"git",
|
|
||||||
"sudo",
|
|
||||||
"vim",
|
|
||||||
"curl"
|
|
||||||
]
|
|
||||||
}
|
|
||||||
-157
@@ -1,157 +0,0 @@
|
|||||||
#!/usr/bin/env bash
|
|
||||||
# Instalación + configuración de Arch con GNOME en UN comando desde el USB live.
|
|
||||||
#
|
|
||||||
# ./gnome/setup.sh
|
|
||||||
#
|
|
||||||
# Dos fases en el mismo fichero (ponytail: una sola fuente de verdad por DE,
|
|
||||||
# en vez de duplicar la lógica en un bootstrap + un post-install):
|
|
||||||
# - SETUP_PHASE=host -> corre archinstall y se re-lanza dentro del chroot
|
|
||||||
# - SETUP_PHASE=chroot -> instala paquetes/tema/chezmoi en el sistema nuevo
|
|
||||||
set -euo pipefail
|
|
||||||
|
|
||||||
REPO_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)"
|
|
||||||
DE="gnome"
|
|
||||||
SETUP_PHASE="${SETUP_PHASE:-host}"
|
|
||||||
GITEA="https://gitea.josevi.ovh/josevi"
|
|
||||||
|
|
||||||
# ---------------------------------------------------------------------------
|
|
||||||
# FASE 1 (USB live): archinstall + chroot
|
|
||||||
# ---------------------------------------------------------------------------
|
|
||||||
if [[ "$SETUP_PHASE" == "host" ]]; then
|
|
||||||
[[ $EUID -eq 0 ]] || { echo "Ejecuta como root desde el live ISO."; exit 1; }
|
|
||||||
|
|
||||||
read -rp "Usuario a crear: " INSTALL_USER
|
|
||||||
read -rsp "Token de Gitea (repo arch-configs privado, Enter si es público): " GITEA_TOKEN; echo
|
|
||||||
read -rp "Nombre para git [$INSTALL_USER]: " GIT_NAME; GIT_NAME="${GIT_NAME:-$INSTALL_USER}"
|
|
||||||
read -rp "Email para git [josevisw@gmail.com]: " GIT_EMAIL; GIT_EMAIL="${GIT_EMAIL:-josevisw@gmail.com}"
|
|
||||||
|
|
||||||
echo ">> Generando disk_config dimensionado a los discos reales..."
|
|
||||||
# archinstall 4.x quitó "Percent": el layout se calcula aquí (ver shared/gen-disk-config.py)
|
|
||||||
python3 "$REPO_DIR/shared/gen-disk-config.py" "$REPO_DIR/$DE/archinstall-config.json" >/tmp/archinstall-merged.json
|
|
||||||
|
|
||||||
echo ">> Lanzando archinstall (instala base + GNOME en /mnt)..."
|
|
||||||
archinstall --config /tmp/archinstall-merged.json --silent
|
|
||||||
|
|
||||||
echo ">> Copiando arch-setup al sistema nuevo y entrando en chroot..."
|
|
||||||
cp -r "$REPO_DIR" /mnt/root/arch-setup
|
|
||||||
arch-chroot /mnt env \
|
|
||||||
SETUP_PHASE=chroot INSTALL_USER="$INSTALL_USER" GITEA_TOKEN="$GITEA_TOKEN" \
|
|
||||||
GIT_NAME="$GIT_NAME" GIT_EMAIL="$GIT_EMAIL" \
|
|
||||||
bash "/root/arch-setup/$DE/setup.sh"
|
|
||||||
|
|
||||||
echo ">> Listo. Quita el USB y reinicia: reboot"
|
|
||||||
exit 0
|
|
||||||
fi
|
|
||||||
|
|
||||||
# ---------------------------------------------------------------------------
|
|
||||||
# FASE 2 (dentro del chroot)
|
|
||||||
# ---------------------------------------------------------------------------
|
|
||||||
: "${INSTALL_USER:?falta INSTALL_USER}"
|
|
||||||
source "$(dirname "${BASH_SOURCE[0]}")/../shared/packages-common.sh"
|
|
||||||
|
|
||||||
echo ">> Creando usuario $INSTALL_USER..."
|
|
||||||
id "$INSTALL_USER" &>/dev/null || useradd -m -G wheel -s /bin/zsh "$INSTALL_USER"
|
|
||||||
echo "Contraseña para $INSTALL_USER:"; passwd "$INSTALL_USER"
|
|
||||||
# wheel con sudo; NOPASSWD temporal para que paru/makepkg no se cuelguen
|
|
||||||
echo '%wheel ALL=(ALL:ALL) ALL' >/etc/sudoers.d/10-wheel
|
|
||||||
echo "$INSTALL_USER ALL=(ALL) NOPASSWD: ALL" >/etc/sudoers.d/99-setup-nopasswd
|
|
||||||
|
|
||||||
echo ">> GNOME mínimo + apps oficiales (pacman)..."
|
|
||||||
# GNOME curado en vez del grupo 'gnome' completo (que mete Maps, Weather, Music,
|
|
||||||
# Tour, Web/Epiphany, Contacts, Rygel...). archinstall solo instala la base;
|
|
||||||
# el escritorio y los drivers gráficos open-source los ponemos aquí.
|
|
||||||
install_pacman "${PACMAN_COMMON[@]}" \
|
|
||||||
gnome-shell gdm gnome-control-center gnome-session gnome-keyring \
|
|
||||||
xdg-desktop-portal-gnome xdg-user-dirs-gtk gvfs \
|
|
||||||
nautilus gnome-console gnome-text-editor gnome-calculator loupe \
|
|
||||||
gnome-tweaks gnome-themes-extra gnome-shell-extension-appindicator \
|
|
||||||
gnome-backgrounds power-profiles-daemon
|
|
||||||
|
|
||||||
echo ">> Bootloader (GRUB)..."
|
|
||||||
install_bootloader
|
|
||||||
|
|
||||||
echo ">> Configurando rollback de actualizaciones (snapper)..."
|
|
||||||
configure_btrfs_rollback
|
|
||||||
|
|
||||||
echo ">> Bootstrapeando paru y paquetes AUR..."
|
|
||||||
bootstrap_paru
|
|
||||||
install_aur "${AUR_COMMON[@]}" \
|
|
||||||
catppuccin-gtk-theme-mocha \
|
|
||||||
gnome-shell-extension-dash-to-dock \
|
|
||||||
gnome-shell-extension-caffeine \
|
|
||||||
gnome-shell-extension-blur-my-shell \
|
|
||||||
gnome-shell-extension-clipboard-indicator \
|
|
||||||
gnome-shell-extension-vitals
|
|
||||||
install_helpwire
|
|
||||||
install_claude_code
|
|
||||||
|
|
||||||
echo ">> Instalando Flatpaks comunes..."
|
|
||||||
install_flatpaks "${FLATPAK_COMMON[@]}"
|
|
||||||
|
|
||||||
echo ">> Servicios..."
|
|
||||||
systemctl enable gdm
|
|
||||||
systemctl enable NetworkManager
|
|
||||||
systemctl enable bluetooth
|
|
||||||
systemctl enable "syncthing@$INSTALL_USER.service"
|
|
||||||
systemctl enable tailscaled
|
|
||||||
systemctl enable power-profiles-daemon
|
|
||||||
systemctl enable cpupower
|
|
||||||
|
|
||||||
# --- Aspecto: se aplica en el PRIMER login gráfico ------------------------
|
|
||||||
# ponytail: dconf/gsettings necesitan sesión D-Bus, que no existe en chroot.
|
|
||||||
# Un oneshot de autostart lo aplica al primer login y se autodesactiva.
|
|
||||||
USER_HOME="/home/$INSTALL_USER"
|
|
||||||
install -d -o "$INSTALL_USER" -g "$INSTALL_USER" "$USER_HOME/.local/bin" "$USER_HOME/.config/autostart"
|
|
||||||
|
|
||||||
cat >"$USER_HOME/.local/bin/firstboot-theme.sh" <<'EOS'
|
|
||||||
#!/usr/bin/env bash
|
|
||||||
set -e
|
|
||||||
# Teclado: US internacional con teclas muertas
|
|
||||||
gsettings set org.gnome.desktop.input-sources sources "[('xkb', 'us+intl')]"
|
|
||||||
gsettings set org.gnome.desktop.interface color-scheme 'prefer-dark'
|
|
||||||
gsettings set org.gnome.desktop.interface gtk-theme 'catppuccin-mocha-blue-standard+default'
|
|
||||||
gsettings set org.gnome.desktop.interface icon-theme 'Papirus-Dark'
|
|
||||||
gsettings set org.gnome.desktop.interface font-name 'JetBrainsMono Nerd Font 11'
|
|
||||||
gsettings set org.gnome.desktop.interface monospace-font-name 'JetBrainsMono Nerd Font Mono 12'
|
|
||||||
for e in \
|
|
||||||
dash-to-dock@micxgx.gmail.com \
|
|
||||||
appindicatorsupport@rgcjonas.gmail.com \
|
|
||||||
blur-my-shell@aunetx \
|
|
||||||
caffeine@patapon.info \
|
|
||||||
clipboard-indicator@tudmotu.com \
|
|
||||||
Vitals@CoreCoding.com ; do
|
|
||||||
gnome-extensions enable "$e" 2>/dev/null || true
|
|
||||||
done
|
|
||||||
# Dock estilo macOS abajo
|
|
||||||
D=org.gnome.shell.extensions.dash-to-dock
|
|
||||||
gsettings set $D dock-position 'BOTTOM' 2>/dev/null || true
|
|
||||||
gsettings set $D extend-height false 2>/dev/null || true
|
|
||||||
gsettings set $D dock-fixed false 2>/dev/null || true
|
|
||||||
# autodesactivarse
|
|
||||||
rm -f "$HOME/.config/autostart/firstboot-theme.desktop"
|
|
||||||
EOS
|
|
||||||
chmod +x "$USER_HOME/.local/bin/firstboot-theme.sh"
|
|
||||||
|
|
||||||
cat >"$USER_HOME/.config/autostart/firstboot-theme.desktop" <<EOS
|
|
||||||
[Desktop Entry]
|
|
||||||
Type=Application
|
|
||||||
Name=First boot theme (GNOME)
|
|
||||||
Exec=$USER_HOME/.local/bin/firstboot-theme.sh
|
|
||||||
X-GNOME-Autostart-enabled=true
|
|
||||||
EOS
|
|
||||||
chown -R "$INSTALL_USER:$INSTALL_USER" "$USER_HOME/.local" "$USER_HOME/.config"
|
|
||||||
|
|
||||||
# --- chezmoi: dotfiles personales (repo arch-configs) --------------------------
|
|
||||||
# chezmoi ya se instaló arriba (PACMAN_COMMON, repos oficiales desde 2.x).
|
|
||||||
echo ">> chezmoi init --apply (repo arch-configs)..."
|
|
||||||
REMOTE="$GITEA/arch-configs.git"
|
|
||||||
[[ -n "${GITEA_TOKEN:-}" ]] && REMOTE="https://$INSTALL_USER:$GITEA_TOKEN@gitea.josevi.ovh/josevi/arch-configs.git"
|
|
||||||
as_user "export GIT_NAME='$GIT_NAME' GIT_EMAIL='$GIT_EMAIL'; \
|
|
||||||
chezmoi init --apply '$REMOTE'"
|
|
||||||
|
|
||||||
# --- pkgsync: sincronización de paquetes (repo arch-setup) -----------------
|
|
||||||
install_pkgsync
|
|
||||||
|
|
||||||
# quitar el NOPASSWD temporal
|
|
||||||
rm -f /etc/sudoers.d/99-setup-nopasswd
|
|
||||||
echo ">> Configuración de GNOME completada."
|
|
||||||
+4
-4
@@ -3,11 +3,11 @@
|
|||||||
#
|
#
|
||||||
# ./kde/setup.sh
|
# ./kde/setup.sh
|
||||||
#
|
#
|
||||||
# Misma estructura de 2 fases que gnome/setup.sh (ver ese fichero para detalle).
|
# Dos fases en el mismo fichero: SETUP_PHASE=host (USB live) lanza archinstall
|
||||||
|
# y se relanza dentro del chroot; SETUP_PHASE=chroot instala paquetes/tema/chezmoi.
|
||||||
set -euo pipefail
|
set -euo pipefail
|
||||||
|
|
||||||
REPO_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)"
|
REPO_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)"
|
||||||
DE="kde"
|
|
||||||
SETUP_PHASE="${SETUP_PHASE:-host}"
|
SETUP_PHASE="${SETUP_PHASE:-host}"
|
||||||
GITEA="https://gitea.josevi.ovh/josevi"
|
GITEA="https://gitea.josevi.ovh/josevi"
|
||||||
|
|
||||||
@@ -24,7 +24,7 @@ if [[ "$SETUP_PHASE" == "host" ]]; then
|
|||||||
|
|
||||||
echo ">> Generando disk_config dimensionado a los discos reales..."
|
echo ">> Generando disk_config dimensionado a los discos reales..."
|
||||||
# archinstall 4.x quitó "Percent": el layout se calcula aquí (ver shared/gen-disk-config.py)
|
# archinstall 4.x quitó "Percent": el layout se calcula aquí (ver shared/gen-disk-config.py)
|
||||||
python3 "$REPO_DIR/shared/gen-disk-config.py" "$REPO_DIR/$DE/archinstall-config.json" >/tmp/archinstall-merged.json
|
python3 "$REPO_DIR/shared/gen-disk-config.py" "$REPO_DIR/kde/archinstall-config.json" >/tmp/archinstall-merged.json
|
||||||
|
|
||||||
echo ">> Lanzando archinstall (instala base + KDE en /mnt)..."
|
echo ">> Lanzando archinstall (instala base + KDE en /mnt)..."
|
||||||
archinstall --config /tmp/archinstall-merged.json --silent
|
archinstall --config /tmp/archinstall-merged.json --silent
|
||||||
@@ -34,7 +34,7 @@ if [[ "$SETUP_PHASE" == "host" ]]; then
|
|||||||
arch-chroot /mnt env \
|
arch-chroot /mnt env \
|
||||||
SETUP_PHASE=chroot INSTALL_USER="$INSTALL_USER" GITEA_TOKEN="$GITEA_TOKEN" \
|
SETUP_PHASE=chroot INSTALL_USER="$INSTALL_USER" GITEA_TOKEN="$GITEA_TOKEN" \
|
||||||
GIT_NAME="$GIT_NAME" GIT_EMAIL="$GIT_EMAIL" \
|
GIT_NAME="$GIT_NAME" GIT_EMAIL="$GIT_EMAIL" \
|
||||||
bash "/root/arch-setup/$DE/setup.sh"
|
bash "/root/arch-setup/kde/setup.sh"
|
||||||
|
|
||||||
echo ">> Listo. Quita el USB y reinicia: reboot"
|
echo ">> Listo. Quita el USB y reinicia: reboot"
|
||||||
exit 0
|
exit 0
|
||||||
|
|||||||
+1
-1
@@ -431,7 +431,7 @@ cmd_audit() {
|
|||||||
echo "== flatpaks instalados, no declarados =="
|
echo "== flatpaks instalados, no declarados =="
|
||||||
comm -23 "$work/inst_flatpak" "$work/declared_flatpak"
|
comm -23 "$work/inst_flatpak" "$work/declared_flatpak"
|
||||||
echo
|
echo
|
||||||
echo "(nota: los paquetes específicos de KDE/GNOME hardcodeados en <de>/setup.sh"
|
echo "(nota: los paquetes específicos de KDE hardcodeados en kde/setup.sh"
|
||||||
echo " -- plasma-desktop, sddm, temas AUR, etc. -- siempre van a salir aquí: no"
|
echo " -- plasma-desktop, sddm, temas AUR, etc. -- siempre van a salir aquí: no"
|
||||||
echo " viven en los arrays de packages-common.sh por diseño, no es drift real)"
|
echo " viven en los arrays de packages-common.sh por diseño, no es drift real)"
|
||||||
|
|
||||||
|
|||||||
@@ -1,5 +1,6 @@
|
|||||||
#!/usr/bin/env bash
|
#!/usr/bin/env bash
|
||||||
# Paquetes comunes a GNOME y KDE. Lo sourcea cada <de>/setup.sh.
|
# Paquetes base, sourceados por kde/setup.sh (KDE Plasma es el único DE que
|
||||||
|
# instala este repo -- ver README "Decisiones").
|
||||||
# AUR-first: lo que está en repos oficiales va por pacman, el resto por paru.
|
# AUR-first: lo que está en repos oficiales va por pacman, el resto por paru.
|
||||||
|
|
||||||
# --- Repos oficiales (pacman) ---------------------------------------------
|
# --- Repos oficiales (pacman) ---------------------------------------------
|
||||||
@@ -25,8 +26,8 @@ PACMAN_COMMON=(
|
|||||||
# audio (PipeWire reemplaza a PulseAudio)
|
# audio (PipeWire reemplaza a PulseAudio)
|
||||||
pipewire pipewire-alsa pipewire-jack pipewire-pulse wireplumber libpulse
|
pipewire pipewire-alsa pipewire-jack pipewire-pulse wireplumber libpulse
|
||||||
gst-plugin-pipewire gst-plugins-good gst-plugins-bad gst-libav
|
gst-plugin-pipewire gst-plugins-good gst-plugins-bad gst-libav
|
||||||
# bluetooth: stack + daemon comunes. La UI va por DE: GNOME la trae vía
|
# bluetooth: stack + daemon comunes; la UI (bluedevil) se instala explícito
|
||||||
# gnome-control-center; KDE la instala explícito en kde/setup.sh.
|
# en kde/setup.sh.
|
||||||
bluez bluez-utils
|
bluez bluez-utils
|
||||||
# hardware: mismo par de máquinas físicas (ver PROJECT_CONTEXT.md)
|
# hardware: mismo par de máquinas físicas (ver PROJECT_CONTEXT.md)
|
||||||
amd-ucode sof-firmware btrfs-progs zram-generator cpupower power-profiles-daemon
|
amd-ucode sof-firmware btrfs-progs zram-generator cpupower power-profiles-daemon
|
||||||
@@ -41,11 +42,11 @@ PACMAN_COMMON=(
|
|||||||
# con exit code 1 y el menú de GRUB nunca ve los snapshots (visto en real
|
# con exit code 1 y el menú de GRUB nunca ve los snapshots (visto en real
|
||||||
# en Vampire-HM80: paquetes instalados pero grub-btrfsd en 'failed').
|
# en Vampire-HM80: paquetes instalados pero grub-btrfsd en 'failed').
|
||||||
snapper snap-pac grub-btrfs inotify-tools
|
snapper snap-pac grub-btrfs inotify-tools
|
||||||
# bootloader (antes hardcodeado en cada <de>/setup.sh, install_bootloader()
|
# bootloader (antes hardcodeado en kde/setup.sh, install_bootloader()
|
||||||
# también los instala explícito -- duplicado inofensivo con --needed, pero
|
# también los instala explícito -- duplicado inofensivo con --needed, pero
|
||||||
# ahora viven aquí para que pkgsync pueda declararlos/protegerlos)
|
# ahora viven aquí para que pkgsync pueda declararlos/protegerlos)
|
||||||
grub efibootmgr
|
grub efibootmgr
|
||||||
# drivers gráficos open-source (antes hardcodeados en cada <de>/setup.sh;
|
# drivers gráficos open-source (antes hardcodeados en kde/setup.sh;
|
||||||
# mismo hardware físico en ambas máquinas, ver PROJECT_CONTEXT.md)
|
# mismo hardware físico en ambas máquinas, ver PROJECT_CONTEXT.md)
|
||||||
mesa vulkan-icd-loader vulkan-radeon vulkan-intel intel-media-driver
|
mesa vulkan-icd-loader vulkan-radeon vulkan-intel intel-media-driver
|
||||||
# --- pkgsync: nuevos detectados (revisa y reorganiza a mano) ---
|
# --- pkgsync: nuevos detectados (revisa y reorganiza a mano) ---
|
||||||
|
|||||||
Reference in New Issue
Block a user