Files
arch-setup/kde/setup.sh
T
Josevi 9f0d0f1179 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.
2026-08-18 11:35:35 +02:00

128 lines
6.0 KiB
Bash

#!/usr/bin/env bash
# Instalación + configuración de Arch con KDE Plasma en UN comando desde el live.
#
# ./kde/setup.sh
#
# 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
REPO_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)"
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/kde/archinstall-config.json" >/tmp/archinstall-merged.json
echo ">> Lanzando archinstall (instala base + KDE 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/kde/setup.sh"
echo ">> Listo. Quita el USB y reinicia: reboot"
exit 0
fi
# ---------------------------------------------------------------------------
# FASE 2 (dentro del chroot)
# ---------------------------------------------------------------------------
: "${INSTALL_USER:?falta INSTALL_USER}"
# Log de toda la fase chroot (pacman/paru/chezmoi) dentro del sistema nuevo, así
# sobrevive al reinicio. archinstall ya tiene su propio log aparte.
exec > >(tee -a /var/log/arch-setup.log) 2>&1
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"
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 ">> KDE Plasma mínimo + apps oficiales (pacman)..."
# Plasma curado en vez del grupo 'plasma' completo (que mete discover, kwrited,
# khelpcenter, drkonqi, juegos kde, etc.). archinstall solo instala la base;
# el escritorio y los drivers gráficos open-source van aquí.
# plasma-systemmonitor SÍ se instala explícito (se usa a diario), pese a que el
# grupo 'plasma' completo se evita por el resto del bloat.
install_pacman "${PACMAN_COMMON[@]}" \
plasma-desktop sddm sddm-kcm plasma-pa plasma-nm bluedevil powerdevil kscreen systemsettings kinfocenter \
kwallet-pam ksshaskpass xdg-desktop-portal-kde breeze-gtk kde-gtk-config kvantum appmenu-gtk-module \
konsole dolphin kate ark spectacle kcalc gwenview okular kdeconnect kdegraphics-thumbnailers \
plasma-systemmonitor \
adwaita-fonts \
packagekit-qt6
# Sin discover: se usa pamac-all + pamac-tray-plasma-git como gestor gráfico.
# packagekit-qt6 lo requiere pamac-tray-plasma-git.
echo ">> Bootloader (GRUB)..."
install_bootloader
echo ">> Configurando rollback de actualizaciones (snapper)..."
configure_btrfs_rollback
echo ">> Bootstrapeando paru y paquetes AUR..."
bootstrap_paru
# Solo plasmoides que EXISTEN en AUR. Los de KDE Store/GitHub (gnome-pager, kMenu,
# kvitals, windowtitlereborn, claudeusageswitcher, tt.launchpadPlasma) NO están en
# AUR: viajan como dotfiles vía chezmoi (~/.local/share/plasma/plasmoids), capturados
# con shared/capture-kde.sh. No los añadas aquí.
install_aur "${AUR_COMMON[@]}" \
plasma6-applets-panel-colorizer kwin-effects-better-blur-dx kwin-effects-glass-git breeze-enhanced \
plasma6-themes-layan-git tela-icon-theme layan-cursor-theme-git \
plasma6-applets-appgrid plasma6-wallpapers-smart-video-wallpaper-reborn pamac-tray-plasma-git \
yin-yang kwin-decoration-sierra-breeze-enhanced-git
install_helpwire
install_claude_code
echo ">> Instalando Flatpaks comunes..."
install_flatpaks "${FLATPAK_COMMON[@]}"
echo ">> Servicios..."
systemctl enable sddm
systemctl enable NetworkManager
systemctl enable bluetooth
systemctl enable "syncthing@$INSTALL_USER.service"
systemctl enable tailscaled
systemctl enable power-profiles-daemon
systemctl enable cpupower
# Tema: Layan (global theme) + iconos Tela + cursores Bibata-Modern-Classic
# (bibata-cursor-theme-bin en AUR_COMMON), vía AUR (plasma6-themes-layan-git/
# tela-icon-theme/layan-cursor-theme-git de arriba, instalan en /usr/share, sin
# copiar binarios en dotfiles; layan-cursor-theme-git se deja instalado como
# alternativa aunque el cursor activo sea Bibata). El resto de la
# personalización (rc files, layout de paneles, splash Animated-Abstract-Cube)
# se captura del portátil con shared/capture-kde.sh y se replica vía chezmoi.
# Single-monitor como base.
# --- 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
rm -f /etc/sudoers.d/99-setup-nopasswd
echo ">> Configuración de KDE completada."