#!/usr/bin/env bash # Captura la personalización de KDE de ESTA máquina (el portátil, ya a tu gusto) # para replicarla como instalación base: dotfiles -> chezmoi, paquetes -> setup.sh. # # ./shared/capture-kde.sh [DIR_SALIDA] (por defecto: ./kde-capture) # # IMPORTANTE: cierra la sesión de Plasma y ejecútalo desde una TTY (Ctrl+Alt+F3). # Plasma reescribe sus rc al salir/recargar; capturar con la sesión viva pilla # ficheros a medias. set -euo pipefail OUT="${1:-$PWD/kde-capture}" CFG="$HOME/.config" SHARE="$HOME/.local/share" # Allowlist: solo lo que es portable a otra máquina. Se EXCLUDE a propósito lo # hardware-specific (kscreen = layout de monitores) porque la base es single # monitor y en multimonitor rompe. Ver README. config_files=( kdeglobals # tema, colores, fuentes, widget style kwinrc # decoración, efectos, blur, botones de ventana kxkbrc # teclado (us+intl) plasmarc plasmashellrc plasma-org.kde.plasma.desktop-appletsrc # paneles/dock/widgets (1 pantalla) konsolerc dolphinrc katerc kscreenlockerrc ksplashrc Kvantum # tema Qt (dir) gtk-3.0/settings.ini gtk-4.0/settings.ini # apps GTK ) share_dirs=( color-schemes # esquemas de color propios konsole # perfiles de Konsole plasma/look-and-feel # global theme si lo hiciste tú plasma/plasmoids # widgets de KDE Store/GitHub (no están en AUR); el panel # los referencia por id, así que SIN esto quedan huecos vacíos ) mkdir -p "$OUT/config" "$OUT/share" # cp --parents conserva la ruta relativa; por eso el subshell hace cd al origen. ( cd "$CFG" && for f in "${config_files[@]}"; do [[ -e $f ]] && cp -r --parents "$f" "$OUT/config/"; done ) || true ( cd "$SHARE" && for d in "${share_dirs[@]}"; do [[ -e $d ]] && cp -r --parents "$d" "$OUT/share/"; done ) || true # Paquetes: nativos explícitos y AUR por separado, para meterlos en # packages-common.sh / setup.sh. pacman -Qqen >"$OUT/packages-native.txt" # repos oficiales, instalados a mano pacman -Qqm >"$OUT/packages-aur.txt" # foráneos (AUR) cat >"$OUT/README.txt" < revisar y meter en arch-configs con: chezmoi add OJO share/plasma/plasmoids/: widgets de KDE Store/GitHub que NO están en AUR. Van como dotfiles (chezmoi), NO como paquete. chezmoi los replica en el sistema nuevo y el panel los coge por id. Si un id no casa con el del appletsrc, edita el "Id" del metadata.json del plasmoide para que coincida. packages-native.txt / packages-aur.txt -> diff contra packages-common.sh y kde/setup.sh; añade los que falten. EXCLUIDO a propósito (hardware-specific, NO replicar en la base single-monitor): ~/.config/kscreen* y ~/.local/share/kscreen/ (layout de monitores) powermanagementprofilesrc puede traer perfiles batería/AC del portátil: revisa. EOF echo ">> Capturado en: $OUT" echo " $(find "$OUT/config" "$OUT/share" -type f | wc -l) ficheros de config" echo " nativos: $(wc -l <"$OUT/packages-native.txt") AUR: $(wc -l <"$OUT/packages-aur.txt")" echo " lee $OUT/README.txt"