feat: rollback btrfs + kernel LTS + sync paquetes/flatpaks
- 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.
This commit is contained in:
@@ -4,7 +4,8 @@
|
|||||||
"bootloader": "Grub",
|
"bootloader": "Grub",
|
||||||
"hostname": "arch-gnome",
|
"hostname": "arch-gnome",
|
||||||
"kernels": [
|
"kernels": [
|
||||||
"linux"
|
"linux",
|
||||||
|
"linux-lts"
|
||||||
],
|
],
|
||||||
"ntp": true,
|
"ntp": true,
|
||||||
"swap": true,
|
"swap": true,
|
||||||
|
|||||||
@@ -71,6 +71,9 @@ 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
|
||||||
install_aur "${AUR_COMMON[@]}" \
|
install_aur "${AUR_COMMON[@]}" \
|
||||||
@@ -83,6 +86,9 @@ install_aur "${AUR_COMMON[@]}" \
|
|||||||
install_helpwire
|
install_helpwire
|
||||||
install_claude_code
|
install_claude_code
|
||||||
|
|
||||||
|
echo ">> Instalando Flatpaks comunes..."
|
||||||
|
install_flatpaks "${FLATPAK_COMMON[@]}"
|
||||||
|
|
||||||
echo ">> Servicios..."
|
echo ">> Servicios..."
|
||||||
systemctl enable gdm
|
systemctl enable gdm
|
||||||
systemctl enable NetworkManager
|
systemctl enable NetworkManager
|
||||||
|
|||||||
@@ -4,7 +4,8 @@
|
|||||||
"bootloader": "Grub",
|
"bootloader": "Grub",
|
||||||
"hostname": "arch-kde",
|
"hostname": "arch-kde",
|
||||||
"kernels": [
|
"kernels": [
|
||||||
"linux"
|
"linux",
|
||||||
|
"linux-lts"
|
||||||
],
|
],
|
||||||
"ntp": true,
|
"ntp": true,
|
||||||
"swap": true,
|
"swap": true,
|
||||||
|
|||||||
+11
-3
@@ -67,12 +67,17 @@ install_pacman "${PACMAN_COMMON[@]}" \
|
|||||||
konsole dolphin kate ark spectacle kcalc gwenview okular kdeconnect kdegraphics-thumbnailers \
|
konsole dolphin kate ark spectacle kcalc gwenview okular kdeconnect kdegraphics-thumbnailers \
|
||||||
plasma-systemmonitor \
|
plasma-systemmonitor \
|
||||||
adwaita-fonts \
|
adwaita-fonts \
|
||||||
mesa vulkan-icd-loader vulkan-radeon vulkan-intel intel-media-driver
|
mesa vulkan-icd-loader vulkan-radeon vulkan-intel intel-media-driver \
|
||||||
# Sin discover/packagekit-qt6: se usa pamac-all (AUR_COMMON) como gestor gráfico.
|
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)..."
|
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,
|
||||||
@@ -83,10 +88,13 @@ install_aur "${AUR_COMMON[@]}" \
|
|||||||
plasma6-applets-panel-colorizer kwin-effects-better-blur-dx kwin-effects-glass-git breeze-enhanced \
|
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-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
|
yin-yang kwin-decoration-sierra-breeze-enhanced-git
|
||||||
install_helpwire
|
install_helpwire
|
||||||
install_claude_code
|
install_claude_code
|
||||||
|
|
||||||
|
echo ">> Instalando Flatpaks comunes..."
|
||||||
|
install_flatpaks "${FLATPAK_COMMON[@]}"
|
||||||
|
|
||||||
echo ">> Servicios..."
|
echo ">> Servicios..."
|
||||||
systemctl enable sddm
|
systemctl enable sddm
|
||||||
systemctl enable NetworkManager
|
systemctl enable NetworkManager
|
||||||
|
|||||||
@@ -3,16 +3,18 @@
|
|||||||
# 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) ---------------------------------------------
|
||||||
|
# Sincronizado con la instalación real de la máquina maestra. Si un paquete no
|
||||||
|
# está presente aquí, se elimina del instalador.
|
||||||
PACMAN_COMMON=(
|
PACMAN_COMMON=(
|
||||||
# base / shell / CLI moderno
|
# base / shell / CLI moderno
|
||||||
zsh starship fzf ripgrep bat eza btop zoxide fd tldr fastfetch 7zip vim usbutils
|
zsh starship fzf ripgrep bat eza btop zoxide fd tldr fastfetch 7zip vim usbutils
|
||||||
# dev toolchain (Podman en vez de Docker + capa de compat)
|
# dev toolchain (Podman en vez de Docker + capa de compat)
|
||||||
git base-devel podman podman-docker buildah
|
git base-devel podman podman-docker buildah
|
||||||
nodejs npm python python-pip rustup
|
nodejs npm python python-pip rustup github-cli
|
||||||
# sync de dotfiles (repo arch-configs) -- en repos oficiales desde 2.x, ya no hace falta AUR
|
# sync de dotfiles (repo arch-configs) -- en repos oficiales desde 2.x
|
||||||
chezmoi
|
chezmoi
|
||||||
# apps de escritorio que SÍ están en extra
|
# apps de escritorio que SÍ están en extra
|
||||||
bitwarden dbeaver obsidian gimp syncthing remmina freerdp apostrophe guvcview kvirc vlc vlc-plugin-ffmpeg
|
bitwarden dbeaver gimp syncthing remmina freerdp apostrophe guvcview kvirc vlc vlc-plugin-ffmpeg
|
||||||
# diccionarios (corrector ortográfico en apps GTK/Qt)
|
# diccionarios (corrector ortográfico en apps GTK/Qt)
|
||||||
hunspell-en_us hunspell-es_es
|
hunspell-en_us hunspell-es_es
|
||||||
# fuentes / iconos compartidos
|
# fuentes / iconos compartidos
|
||||||
@@ -24,14 +26,27 @@ PACMAN_COMMON=(
|
|||||||
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 va por DE: GNOME la trae vía
|
||||||
# gnome-control-center (depende de gnome-bluetooth); KDE NO, porque usamos un
|
# gnome-control-center; KDE la instala explícito en kde/setup.sh.
|
||||||
# Plasma curado, así que bluedevil se instala explícito 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
|
||||||
ibus wl-clipboard wmctrl
|
ibus wl-clipboard wmctrl smartmontools
|
||||||
# gvfs backend para montar móviles Android por MTP (Dolphin/Nautilus)
|
# gvfs backend para montar móviles Android por MTP (Dolphin/Nautilus)
|
||||||
gvfs-mtp
|
gvfs-mtp
|
||||||
|
# kernels: último + LTS como fallback ante actualizaciones rotas
|
||||||
|
linux linux-lts linux-lts-headers linux-firmware
|
||||||
|
# rollback de actualizaciones atómicas sobre btrfs
|
||||||
|
snapper snap-pac grub-btrfs
|
||||||
|
)
|
||||||
|
|
||||||
|
# --- Flatpak ---------------------------------------------------------------
|
||||||
|
# Aplicaciones que en la máquina maestra están instaladas como Flatpak.
|
||||||
|
# Antes algunas de estas vivían en AUR (p.ej. heroic-games-launcher-bin,
|
||||||
|
# karere); ahora se gestionan desde Flathub.
|
||||||
|
FLATPAK_COMMON=(
|
||||||
|
com.heroicgameslauncher.hgl
|
||||||
|
io.github.tobagin.karere
|
||||||
|
org.gnome.gitlab.cheywood.Buffer
|
||||||
)
|
)
|
||||||
|
|
||||||
# --- AUR (paru) ------------------------------------------------------------
|
# --- AUR (paru) ------------------------------------------------------------
|
||||||
@@ -43,19 +58,18 @@ AUR_COMMON=(
|
|||||||
zen-browser-bin
|
zen-browser-bin
|
||||||
visual-studio-code-bin
|
visual-studio-code-bin
|
||||||
vscodium-bin
|
vscodium-bin
|
||||||
davmail
|
|
||||||
betterbird-bin
|
betterbird-bin
|
||||||
onlyoffice-bin
|
onlyoffice-bin
|
||||||
spotify
|
spotify
|
||||||
ungoogled-chromium-bin
|
ungoogled-chromium-bin
|
||||||
karere
|
|
||||||
ventoy-bin
|
ventoy-bin
|
||||||
woeusb-ng
|
woeusb-ng
|
||||||
bibata-cursor-theme-bin
|
bibata-cursor-theme-bin
|
||||||
googledot-cursor-theme
|
googledot-cursor-theme
|
||||||
pamac-all
|
pamac-all
|
||||||
yay
|
yay
|
||||||
heroic-games-launcher-bin
|
# herramientas adicionales presentes en la máquina maestra
|
||||||
|
autofirma debtap gotify-desktop openlogi stably-orca-bin
|
||||||
)
|
)
|
||||||
|
|
||||||
# --- helpers usados por los setup.sh --------------------------------------
|
# --- helpers usados por los setup.sh --------------------------------------
|
||||||
@@ -128,3 +142,62 @@ install_helpwire() {
|
|||||||
install_claude_code() {
|
install_claude_code() {
|
||||||
as_user "curl -fsSL https://claude.ai/install.sh | bash"
|
as_user "curl -fsSL https://claude.ai/install.sh | bash"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
# Instala aplicaciones desde Flathub. Se usa para apps que en la máquina
|
||||||
|
# maestra están como Flatpak, aunque antes estuvieran en AUR.
|
||||||
|
install_flatpaks() {
|
||||||
|
echo ">> Instalando Flatpaks comunes..."
|
||||||
|
if ! command -v flatpak &>/dev/null; then
|
||||||
|
echo "!! flatpak no está disponible; omitiendo Flatpaks." >&2
|
||||||
|
return 0
|
||||||
|
fi
|
||||||
|
|
||||||
|
flatpak remote-add --if-not-exists flathub https://flathub.org/repo/flathub.flatpakrepo
|
||||||
|
|
||||||
|
local app failed=()
|
||||||
|
for app in "$@"; do
|
||||||
|
flatpak install -y --noninteractive flathub "$app" || failed+=("$app")
|
||||||
|
done
|
||||||
|
((${#failed[@]})) && echo "!! Flatpak falló (revisa a mano): ${failed[*]}" >&2
|
||||||
|
return 0
|
||||||
|
}
|
||||||
|
|
||||||
|
# Configura snapper + snap-pac + grub-btrfs para rollback de actualizaciones.
|
||||||
|
# snap-pac crea snapshots automaticos antes/después de cada 'pacman -Syu'.
|
||||||
|
# grub-btrfs añade las entradas de snapshots al menú de GRUB.
|
||||||
|
configure_btrfs_rollback() {
|
||||||
|
echo ">> Configurando rollback btrfs (snapper + snap-pac + grub-btrfs)..."
|
||||||
|
|
||||||
|
# Asegurar que / es btrfs; si no, no hacemos nada.
|
||||||
|
if ! findmnt -nro FSTYPE / | grep -q btrfs; then
|
||||||
|
echo "!! Advertencia: / no es btrfs; omitiendo configuración de snapper." >&2
|
||||||
|
return 0
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Crear configuración de snapper para / si no existe.
|
||||||
|
if [[ ! -f /etc/snapper/configs/root ]]; then
|
||||||
|
snapper -c root create-config /
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Solo queremos snapshots automáticos de pacman (snap-pac), no por tiempo.
|
||||||
|
# Esto evita que se acumulen snapshots innecesarios y se coma espacio.
|
||||||
|
snapper -c root set-config \
|
||||||
|
TIMELINE_CREATE=no \
|
||||||
|
TIMELINE_LIMIT_HOURLY=0 \
|
||||||
|
TIMELINE_LIMIT_DAILY=0 \
|
||||||
|
TIMELINE_LIMIT_WEEKLY=0 \
|
||||||
|
TIMELINE_LIMIT_MONTHLY=0 \
|
||||||
|
TIMELINE_LIMIT_YEARLY=0 \
|
||||||
|
NUMBER_LIMIT=10 \
|
||||||
|
NUMBER_LIMIT_IMPORTANT=10
|
||||||
|
|
||||||
|
# Ajustar permisos para que el usuario pueda listar snapshots.
|
||||||
|
chmod 750 /.snapshots
|
||||||
|
chown :wheel /.snapshots 2>/dev/null || true
|
||||||
|
|
||||||
|
# Habilitar el daemon que regenera el menú de GRUB cuando cambian los snapshots.
|
||||||
|
systemctl enable grub-btrfsd
|
||||||
|
|
||||||
|
# Regenerar menú de GRUB con las entradas de snapshots.
|
||||||
|
grub-mkconfig -o /boot/grub/grub.cfg
|
||||||
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user