Files
arch-setup/shared/capture-kde.sh
T
joseviandClaude Opus 4.8 f5f50db6e6 Bluetooth, Karere; KDE a vanilla + capture-kde.sh
- 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>
2026-06-30 19:14:31 +02:00

62 lines
2.7 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ú
)
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 $(hostname) el $(date -I).
config/, share/ -> revisar y meter en arch-configs con: chezmoi add <ruta>
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"