El chmod/chown de /.snapshots no basta -- snapper tiene su propia lista de
permitidos (ALLOW_USERS/ALLOW_GROUPS) en la config, independiente de los
permisos de fichero. Sin esto 'snapper -c root list' da 'Sin permisos' para
cualquiera que no sea root. Detectado en real en Vampire-HM80.
Detectado en real en Vampire-HM80: los 3 paquetes de rollback btrfs estaban
declarados e instalados, pero grub-btrfsd moría con exit 1 porque pacman
--needed no arrastra dependencias opcionales. Sin inotify-tools el daemon
nunca regenera el grub.cfg con los snapshots -- toda la red de seguridad de
rollback quedaba muda en silencio.
Nuevo pkgsync/pkgsync.sh + servicios systemd --user (push al cerrar sesión,
pull+diff+notifica al iniciar sesión, sin aplicar cambios solo) usando
metapac como motor de diff/aplicación sobre los arrays de
packages-common.sh. Lista de paquetes críticos protegidos de borrado
automático, fichero de overrides local para divergencias entre máquinas, y
comandos de introspección (diff/log/incoming/audit).
De paso, grub/efibootmgr y los drivers gráficos pasan de estar hardcodeados
en cada <de>/setup.sh a vivir en PACMAN_COMMON, para que pkgsync pueda
declararlos y protegerlos.
- 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.
- vim, usbutils, gvfs-mtp, chezmoi (ya en repos oficiales, fuera de AUR),
kdegraphics-thumbnailers, breeze-enhanced, yin-yang, heroic-games-launcher-bin.
- Quita discover/packagekit-qt6 de kde/setup.sh: ya no se usan, pamac-all es
el único gestor gráfico.
- claude-code sale de AUR_COMMON (se desincroniza) y pasa a instalador nativo
oficial vía install_claude_code() en shared/packages-common.sh, llamado
desde ambos setup.sh.
- Karere se queda en AUR_COMMON tal cual pese a que en la práctica corre por
Flatpak en esta máquina (el build de AUR es inestable, ver comentario ya
existente en install_aur); Heroic pasa a AUR (tenía alternativa estable).
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Se había dejado fuera por contradecir el "AUR-first, resto por paru" de los
comentarios, pero esta máquina es la fuente de verdad: si está instalado y
funcionando aquí, se replica tal cual.
Añade a los scripts lo que llevaba usando semanas sin estar versionado
(kdeconnect, kinfocenter, sddm-kcm, guvcview, kvirc, hunspell es/en,
plasma6-applets-panel-colorizer, kwin-effects-better-blur-dx). Quita
input-remapper-git de AUR_COMMON: decidido no instalarlo por defecto.
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
El Plasma curado no incluía la integración de Bluetooth, así que el
módulo en Preferencias del Sistema y el applet de bandeja no aparecían
pese a tener bluez + servicio activos. GNOME no se ve afectado: su UI
llega vía gnome-control-center.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
- KDE: discover + packagekit-qt6 (tienda; backend flatpak ya vía flatpak)
- as_user exporta RUSTUP_HOME/CARGO_HOME: paquetes Rust (karere) no intentan
escribir /root/.rustup bajo el fakeroot de makepkg
- install_aur instala uno a uno: un PKGBUILD roto ya no tumba el lote ni chezmoi
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
- bluez/bluez-utils + bluetooth.service en GNOME y KDE
- AUR: añade karere (cliente WhatsApp), quita neochat (Matrix) de KDE
- KDE sin personalización: fuera temas Catppuccin/Klassy, SDDM y firstboot-theme
- shared/capture-kde.sh: vuelca config portable + paquetes del portátil para
replicar la base (single-monitor; excluye kscreen hardware-specific)
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
El .INSTALL que genera debtap tiene un error de sintaxis y no registra el
lanzador, que queda en /opt/HelpWire/Operator/desktop. Lo copiamos a
/usr/share/applications e icons/hicolor para que aparezca en el menú.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
archinstall 4.3 instala el paquete grub y detecta la ESP, pero no ejecuta
grub-install/grub-mkconfig con el esquema /boot ext4 separado + ESP, dejando
el sistema sin bootloader. Nuevo helper install_bootloader() en shared, que
ambos setup.sh llaman tras los paquetes pacman.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
- disk_config: archinstall 4.3 cambió el schema (exige sector_size, sin
unidad Percent). Nuevo shared/gen-disk-config.py genera el layout con los
modelos de archinstall, dimensionado al disco real; ambos setup.sh lo
invocan y se quita el disk_config 3.0 muerto de los JSON.
- paru: compilar de fuente, no paru-bin (su binario enlaza contra una
libalpm.so concreta y rompe si la del sistema nuevo difiere).
- rustup default stable antes de compilar paru (si no, no hay cargo).
- helpwire: debtap nombra el paquete 'helpwire', no 'helpwire-operator';
convertir en dir limpio e instalar el único .zst.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>