Files
arch-setup/shared/capture-kde.sh
T
joseviandClaude Opus 4.8 178768a5ad kde: capturar plasmoids del Store/GitHub (no viajaban)
capture-kde.sh no incluia ~/.local/share/plasma/plasmoids, asi que los
widgets de KDE Store/GitHub (no estan en AUR) nunca llegaban al repo de
dotfiles y el panel quedaba con huecos vacios. Anadido a la allowlist +
nota en setup.sh de que van por chezmoi, no por AUR.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-08 20:42:09 +02:00

68 lines
3.1 KiB
Bash

#!/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" <<EOF
Captura KDE de $(uname -n) el $(date -I).
config/, share/ -> revisar y meter en arch-configs con: chezmoi add <ruta>
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"