From f5f50db6e6b7ee763a5e11f24b5236072694ae56 Mon Sep 17 00:00:00 2001 From: Josevi Canet Date: Tue, 30 Jun 2026 19:14:31 +0200 Subject: [PATCH] Bluetooth, Karere; KDE a vanilla + capture-kde.sh MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 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 --- gnome/setup.sh | 1 + kde/setup.sh | 123 ++------------------------------------ shared/capture-kde.sh | 61 +++++++++++++++++++ shared/packages-common.sh | 3 + 4 files changed, 71 insertions(+), 117 deletions(-) create mode 100644 shared/capture-kde.sh diff --git a/gnome/setup.sh b/gnome/setup.sh index 9e642de..31db199 100755 --- a/gnome/setup.sh +++ b/gnome/setup.sh @@ -85,6 +85,7 @@ install_helpwire echo ">> Servicios..." systemctl enable gdm systemctl enable NetworkManager +systemctl enable bluetooth systemctl enable "syncthing@$INSTALL_USER.service" # --- Aspecto: se aplica en el PRIMER login gráfico ------------------------ diff --git a/kde/setup.sh b/kde/setup.sh index 4c61d31..75c5b1c 100755 --- a/kde/setup.sh +++ b/kde/setup.sh @@ -59,7 +59,7 @@ echo ">> KDE Plasma mínimo + apps oficiales (pacman)..." install_pacman "${PACMAN_COMMON[@]}" \ plasma-desktop sddm plasma-pa plasma-nm powerdevil kscreen systemsettings \ kwallet-pam xdg-desktop-portal-kde breeze-gtk kde-gtk-config kvantum \ - konsole dolphin kate ark spectacle kcalc gwenview okular neochat \ + konsole dolphin kate ark spectacle kcalc gwenview okular \ adwaita-fonts \ mesa vulkan-icd-loader vulkan-radeon vulkan-intel intel-media-driver @@ -68,129 +68,18 @@ install_bootloader echo ">> Bootstrapeando paru y paquetes AUR..." bootstrap_paru -install_aur "${AUR_COMMON[@]}" catppuccin-gtk-theme-mocha \ - kvantum-theme-catppuccin-git catppuccin-cursors-mocha \ - catppuccin-konsole-theme-git papirus-folders-catppuccin-git \ - catppuccin-sddm-theme-mocha klassy +install_aur "${AUR_COMMON[@]}" install_helpwire -echo ">> Tema de login (SDDM) y carpetas Papirus en azul Catppuccin..." -mkdir -p /etc/sddm.conf.d -cat >/etc/sddm.conf.d/theme.conf </dev/null || true - echo ">> Servicios..." systemctl enable sddm systemctl enable NetworkManager +systemctl enable bluetooth systemctl enable "syncthing@$INSTALL_USER.service" -# --- Aspecto: se aplica en el PRIMER login gráfico ------------------------ -# ponytail: el global theme de Plasma necesita sesión; lo aplica un oneshot -# de autostart. Base Breeze Dark + esquema de color Catppuccin Mocha + Papirus. -# upgrade path: layer del look-and-feel completo de catppuccin/kde si lo quieres. -USER_HOME="/home/$INSTALL_USER" -install -d -o "$INSTALL_USER" -g "$INSTALL_USER" \ - "$USER_HOME/.local/bin" "$USER_HOME/.config/autostart" \ - "$USER_HOME/.local/share/color-schemes" - -cat >"$USER_HOME/.local/bin/firstboot-theme.sh" <<'EOS' -#!/usr/bin/env bash -set -e -# El esquema CatppuccinMochaBlue.colors lo provee chezmoi (~/.local/share/color-schemes) -# Teclado: US internacional con teclas muertas -kwriteconfig6 --file kxkbrc --group Layout --key LayoutList "us" -kwriteconfig6 --file kxkbrc --group Layout --key VariantList "intl" -kwriteconfig6 --file kxkbrc --group Layout --key Use "true" -# Color, decoración, iconos, cursor; estilo Qt = Kvantum (Catppuccin) -plasma-apply-colorscheme CatppuccinMochaBlue 2>/dev/null || true -plasma-apply-desktoptheme breeze-dark 2>/dev/null || true -plasma-changeicons Papirus-Dark 2>/dev/null || true -plasma-apply-cursortheme catppuccin-mocha-dark-cursors 2>/dev/null || true -kwriteconfig6 --file kdeglobals --group KDE --key widgetStyle kvantum -mkdir -p "$HOME/.config/Kvantum" -kwriteconfig6 --file Kvantum/kvantum.kvconfig --group General --key theme catppuccin-mocha-blue -# Konsole: perfil con esquema Catppuccin por defecto -mkdir -p "$HOME/.local/share/konsole" -cat >"$HOME/.local/share/konsole/Catppuccin.profile" <"$HOME/.config/gtk-$v/settings.ini" < icono roto). -cat >"$HOME/.local/bin/kde-layout.js" <<'JS' -var all = panels(); -for (var i = 0; i < all.length; i++) { all[i].remove(); } -var top = new Panel; -top.location = "top"; top.floating = false; top.height = 28; -top.addWidget("org.kde.plasma.kickoff"); -top.addWidget("org.kde.plasma.appmenu"); -top.addWidget("org.kde.plasma.panelspacer"); -top.addWidget("org.kde.plasma.systemtray"); -top.addWidget("org.kde.plasma.digitalclock"); -var dock = new Panel; -dock.location = "bottom"; dock.floating = true; dock.height = 56; -dock.lengthMode = "fit"; dock.alignment = "center"; -var tasks = dock.addWidget("org.kde.plasma.icontasks"); -tasks.currentConfigGroup = ["General"]; -tasks.writeConfig("launchers", "applications:zen.desktop,applications:org.kde.dolphin.desktop,applications:org.kde.konsole.desktop,applications:code.desktop,applications:obsidian.desktop,applications:spotify.desktop,applications:eu.betterbird.Betterbird.desktop,applications:systemsettings.desktop"); -tasks.writeConfig("showOnlyCurrentDesktop", false); -tasks.reloadConfig(); -JS -# esperar a que plasmashell exponga su API (evita carrera en el primer login) -for i in $(seq 1 30); do qdbus6 org.kde.plasmashell >/dev/null 2>&1 && break; sleep 1; done -qdbus6 org.kde.plasmashell /PlasmaShell org.kde.PlasmaShell.evaluateScript "$(cat "$HOME/.local/bin/kde-layout.js")" 2>/dev/null || true -qdbus6 org.kde.KWin /KWin reconfigure 2>/dev/null || true -rm -f "$HOME/.config/autostart/firstboot-theme.desktop" -EOS -chmod +x "$USER_HOME/.local/bin/firstboot-theme.sh" - -cat >"$USER_HOME/.config/autostart/firstboot-theme.desktop" <> chezmoi init --apply (repo arch-configs)..." diff --git a/shared/capture-kde.sh b/shared/capture-kde.sh new file mode 100644 index 0000000..345734e --- /dev/null +++ b/shared/capture-kde.sh @@ -0,0 +1,61 @@ +#!/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" < revisar y meter en arch-configs con: chezmoi add +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" diff --git a/shared/packages-common.sh b/shared/packages-common.sh index 32ada21..2069089 100755 --- a/shared/packages-common.sh +++ b/shared/packages-common.sh @@ -16,6 +16,8 @@ PACMAN_COMMON=( papirus-icon-theme # red / utilidades base networkmanager flatpak openssh + # bluetooth (GNOME y KDE traen su propia UI; basta el stack + servicio) + bluez bluez-utils ) # --- AUR (paru) ------------------------------------------------------------ @@ -30,6 +32,7 @@ AUR_COMMON=( spotify ungoogled-chromium-bin input-remapper-git + karere ) # --- helpers usados por los setup.sh --------------------------------------