Compare commits
9
Commits
68e30e9feb
..
main
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
5c353e7287 | ||
|
|
9ad957f4a0 | ||
|
|
2c288e1aec | ||
|
|
da076af6ad | ||
|
|
9a9f6d9931 | ||
|
|
923da6d375 | ||
|
|
f86e424491 | ||
|
|
a8b4e3f51d | ||
|
|
226b439684 |
Regular → Executable
+52
-30
@@ -74,54 +74,76 @@ install_pacman "${PACMAN_COMMON[@]}" \
|
|||||||
echo ">> Bootloader (GRUB)..."
|
echo ">> Bootloader (GRUB)..."
|
||||||
install_bootloader
|
install_bootloader
|
||||||
|
|
||||||
echo ">> Configurando rollback de actualizaciones (snapper)..."
|
|
||||||
configure_btrfs_rollback
|
|
||||||
|
|
||||||
echo ">> Bootstrapeando paru y paquetes AUR..."
|
echo ">> Bootstrapeando paru y paquetes AUR..."
|
||||||
bootstrap_paru
|
bootstrap_paru
|
||||||
# Solo plasmoides que EXISTEN en AUR. Los de KDE Store/GitHub (gnome-pager, kMenu,
|
# Solo plasmoides que EXISTEN en AUR. Los de KDE Store/GitHub (gnome-pager, kMenu,
|
||||||
# kvitals, windowtitlereborn, claudeusageswitcher, tt.launchpadPlasma) NO están en
|
# kvitals, windowtitlereborn, commandoutput, codexbar) NO están en AUR: viajan
|
||||||
# AUR: viajan como dotfiles vía chezmoi (~/.local/share/plasma/plasmoids), capturados
|
# como dotfiles vía chezmoi (~/.local/share/plasma/plasmoids), capturados con
|
||||||
# con shared/capture-kde.sh. No los añadas aquí.
|
# shared/capture-kde.sh. No los añadas aquí. (claudeusageswitcher y
|
||||||
|
# tt.launchpadPlasma viajaron así hasta que se quitaron por no usarse en
|
||||||
|
# ningún panel real -- auditoría 2026-09-20.)
|
||||||
install_aur "${AUR_COMMON[@]}" \
|
install_aur "${AUR_COMMON[@]}" \
|
||||||
plasma6-applets-panel-colorizer kwin-effects-better-blur-dx kwin-effects-glass-git breeze-enhanced \
|
kwin-effects-glass-git tela-icon-theme \
|
||||||
plasma6-themes-layan-git tela-icon-theme layan-cursor-theme-git \
|
|
||||||
plasma6-applets-appgrid plasma6-wallpapers-smart-video-wallpaper-reborn pamac-tray-plasma-git \
|
plasma6-applets-appgrid plasma6-wallpapers-smart-video-wallpaper-reborn pamac-tray-plasma-git \
|
||||||
yin-yang kwin-decoration-sierra-breeze-enhanced-git
|
yin-yang kwin-decoration-sierra-breeze-enhanced-git
|
||||||
install_helpwire
|
run_optional "install_helpwire" install_helpwire
|
||||||
install_claude_code
|
run_optional "install_claude_code" install_claude_code
|
||||||
|
|
||||||
echo ">> Instalando Flatpaks comunes..."
|
run_optional "install_flatpaks" install_flatpaks "${FLATPAK_COMMON[@]}"
|
||||||
install_flatpaks "${FLATPAK_COMMON[@]}"
|
|
||||||
|
|
||||||
echo ">> Servicios..."
|
enable_services() {
|
||||||
systemctl enable sddm
|
systemctl enable sddm
|
||||||
systemctl enable NetworkManager
|
systemctl enable NetworkManager
|
||||||
systemctl enable bluetooth
|
systemctl enable bluetooth
|
||||||
systemctl enable "syncthing@$INSTALL_USER.service"
|
systemctl enable "syncthing@$INSTALL_USER.service"
|
||||||
systemctl enable tailscaled
|
systemctl enable tailscaled
|
||||||
systemctl enable power-profiles-daemon
|
systemctl enable power-profiles-daemon
|
||||||
systemctl enable cpupower
|
systemctl enable cpupower
|
||||||
|
}
|
||||||
|
run_optional "enable_services" enable_services
|
||||||
|
|
||||||
# Tema: Layan (global theme) + iconos Tela + cursores Bibata-Modern-Classic
|
# Tema: look-and-feel propios Vampire-Light/Vampire-dark (ver PROJECT_CONTEXT.md)
|
||||||
# (bibata-cursor-theme-bin en AUR_COMMON), vía AUR (plasma6-themes-layan-git/
|
# + iconos Tela (tela-icon-theme de arriba) + cursores Bibata-Modern-Classic
|
||||||
# tela-icon-theme/layan-cursor-theme-git de arriba, instalan en /usr/share, sin
|
# (bibata-cursor-theme-bin en AUR_COMMON), vía AUR, instalan en /usr/share, sin
|
||||||
# copiar binarios en dotfiles; layan-cursor-theme-git se deja instalado como
|
# copiar binarios en dotfiles. El resto de la personalización (rc files,
|
||||||
# alternativa aunque el cursor activo sea Bibata). El resto de la
|
# layout de paneles, splash Animated-Abstract-Cube, los propios paquetes
|
||||||
# personalización (rc files, layout de paneles, splash Animated-Abstract-Cube)
|
# look-and-feel Vampire-*) se captura del portátil con shared/capture-kde.sh
|
||||||
# se captura del portátil con shared/capture-kde.sh y se replica vía chezmoi.
|
# y se replica vía chezmoi. Single-monitor como base.
|
||||||
# Single-monitor como base.
|
|
||||||
|
|
||||||
# --- chezmoi: dotfiles personales (repo arch-configs) --------------------------
|
# --- chezmoi: dotfiles personales (repo arch-configs) --------------------------
|
||||||
# chezmoi ya se instaló arriba (PACMAN_COMMON, repos oficiales desde 2.x).
|
# chezmoi ya se instaló arriba (PACMAN_COMMON, repos oficiales desde 2.x).
|
||||||
echo ">> chezmoi init --apply (repo arch-configs)..."
|
echo ">> chezmoi init --apply (repo arch-configs)..."
|
||||||
REMOTE="$GITEA/arch-configs.git"
|
REMOTE="$GITEA/arch-configs.git"
|
||||||
[[ -n "${GITEA_TOKEN:-}" ]] && REMOTE="https://$INSTALL_USER:$GITEA_TOKEN@gitea.josevi.ovh/josevi/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() {
|
||||||
|
as_user "export GIT_NAME='$GIT_NAME' GIT_EMAIL='$GIT_EMAIL'; \
|
||||||
chezmoi init --apply '$REMOTE'"
|
chezmoi init --apply '$REMOTE'"
|
||||||
|
}
|
||||||
|
run_optional "chezmoi init --apply" chezmoi_init_apply
|
||||||
|
|
||||||
# --- pkgsync: sincronización de paquetes (repo arch-setup) -----------------
|
# --- pkgsync: sincronización de paquetes (repo arch-setup) -----------------
|
||||||
install_pkgsync
|
run_optional "install_pkgsync" install_pkgsync
|
||||||
|
|
||||||
|
# Snapper AL FINAL, no tras install_bootloader: snap-pac crea un snapshot
|
||||||
|
# pre+post por cada transacción de pacman/paru en cuanto existe el config de
|
||||||
|
# snapper, y dentro del chroot no hay systemd corriendo para que el timer de
|
||||||
|
# cleanup limite NUMBER_LIMIT -- ninguna limpieza puede correr hasta el primer
|
||||||
|
# arranque real. Con snapper configurado antes de las ~30 instalaciones AUR
|
||||||
|
# (cada una su propia transacción), se acumulan decenas de snapshots sin poda
|
||||||
|
# posible; en una VM de prueba con disco pequeño esto llenó el disco entero
|
||||||
|
# (visto en real). Configurándolo al final, ya con el sistema instalado, no se
|
||||||
|
# snapshotea la propia instalación -- el primer snapshot legítimo será el de
|
||||||
|
# un 'pacman -Syu' real ya con el sistema arrancado, que es para lo que existe
|
||||||
|
# el rollback.
|
||||||
|
echo ">> Configurando rollback de actualizaciones (snapper)..."
|
||||||
|
run_optional "configure_btrfs_rollback" configure_btrfs_rollback
|
||||||
|
|
||||||
rm -f /etc/sudoers.d/99-setup-nopasswd
|
rm -f /etc/sudoers.d/99-setup-nopasswd
|
||||||
|
|
||||||
|
if ((${#FAILED_STEPS[@]})); then
|
||||||
|
echo
|
||||||
|
echo "⚠️ Instalación completada con avisos. Pasos que fallaron y necesitan revisión manual:"
|
||||||
|
printf ' - %s\n' "${FAILED_STEPS[@]}"
|
||||||
|
fi
|
||||||
|
|
||||||
echo ">> Configuración de KDE completada."
|
echo ">> Configuración de KDE completada."
|
||||||
|
|||||||
@@ -20,7 +20,6 @@ PACMAN_COMMON=(
|
|||||||
hunspell-en_us hunspell-es_es
|
hunspell-en_us hunspell-es_es
|
||||||
# fuentes / iconos compartidos
|
# fuentes / iconos compartidos
|
||||||
ttf-jetbrains-mono-nerd ttf-firacode-nerd noto-fonts noto-fonts-emoji
|
ttf-jetbrains-mono-nerd ttf-firacode-nerd noto-fonts noto-fonts-emoji
|
||||||
papirus-icon-theme
|
|
||||||
# red / utilidades base
|
# red / utilidades base
|
||||||
networkmanager flatpak openssh networkmanager-openvpn openvpn tailscale wpa_supplicant
|
networkmanager flatpak openssh networkmanager-openvpn openvpn tailscale wpa_supplicant
|
||||||
# audio (PipeWire reemplaza a PulseAudio)
|
# audio (PipeWire reemplaza a PulseAudio)
|
||||||
@@ -71,7 +70,6 @@ FLATPAK_COMMON=(
|
|||||||
com.heroicgameslauncher.hgl
|
com.heroicgameslauncher.hgl
|
||||||
io.github.tobagin.karere
|
io.github.tobagin.karere
|
||||||
org.gnome.gitlab.cheywood.Buffer
|
org.gnome.gitlab.cheywood.Buffer
|
||||||
com.mojang.Minecraft
|
|
||||||
)
|
)
|
||||||
|
|
||||||
# --- AUR (paru) ------------------------------------------------------------
|
# --- AUR (paru) ------------------------------------------------------------
|
||||||
@@ -88,22 +86,31 @@ AUR_COMMON=(
|
|||||||
ventoy-bin
|
ventoy-bin
|
||||||
woeusb-ng
|
woeusb-ng
|
||||||
bibata-cursor-theme-bin
|
bibata-cursor-theme-bin
|
||||||
googledot-cursor-theme
|
|
||||||
pamac-all
|
pamac-all
|
||||||
yay
|
yay
|
||||||
# herramientas adicionales presentes en la máquina maestra
|
# herramientas adicionales presentes en la máquina maestra
|
||||||
autofirma debtap gotify-desktop openlogi stably-orca-bin
|
autofirma debtap gotify-desktop stably-orca-bin
|
||||||
codexbar-cli
|
codexbar-cli
|
||||||
metapac
|
metapac
|
||||||
paru
|
paru
|
||||||
tauri-cli
|
spotifast-bin
|
||||||
android-sdk-platform-tools
|
|
||||||
fastpotify-bin
|
|
||||||
klassy
|
|
||||||
kwin-effect-rounded-corners-git
|
|
||||||
)
|
)
|
||||||
|
|
||||||
# --- helpers usados por los setup.sh --------------------------------------
|
# --- helpers usados por los setup.sh --------------------------------------
|
||||||
|
|
||||||
|
# Ejecuta un paso NO crítico: si falla, lo registra en FAILED_STEPS y
|
||||||
|
# CONTINÚA en vez de abortar todo el script (set -e no debe tirar una
|
||||||
|
# instalación de 1h por un mirror caído o un D-Bus que falta en el chroot).
|
||||||
|
FAILED_STEPS=()
|
||||||
|
run_optional() {
|
||||||
|
local desc="$1"; shift
|
||||||
|
echo ">> $desc"
|
||||||
|
if ! "$@"; then
|
||||||
|
FAILED_STEPS+=("$desc")
|
||||||
|
echo "!! Falló (no crítico, revisa a mano luego): $desc" >&2
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
install_pacman() { pacman -S --needed --noconfirm "$@"; }
|
install_pacman() { pacman -S --needed --noconfirm "$@"; }
|
||||||
|
|
||||||
# paru se construye como usuario normal (makepkg no corre como root).
|
# paru se construye como usuario normal (makepkg no corre como root).
|
||||||
|
|||||||
Reference in New Issue
Block a user