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>
This commit is contained in:
2026-06-30 19:14:31 +02:00
co-authored by Claude Opus 4.8
parent 45dd2e34e2
commit f5f50db6e6
4 changed files with 71 additions and 117 deletions
+1
View File
@@ -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 ------------------------
+6 -117
View File
@@ -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 <<SDDM
[Theme]
Current=catppuccin-mocha-blue
SDDM
papirus-folders -C cat-mocha-blue --theme Papirus-Dark 2>/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" <<PRO
[Appearance]
ColorScheme=catppuccin-mocha
[General]
Name=Catppuccin
Parent=FALLBACK/
PRO
kwriteconfig6 --file konsolerc --group "Desktop Entry" --key DefaultProfile Catppuccin.profile
# Apps GTK (GIMP, etc.) con tema Catppuccin + iconos Papirus
for v in 3.0 4.0; do
mkdir -p "$HOME/.config/gtk-$v"
cat >"$HOME/.config/gtk-$v/settings.ini" <<INI
[Settings]
gtk-theme-name=catppuccin-mocha-blue-standard+default
gtk-icon-theme-name=Papirus-Dark
gtk-application-prefer-dark-theme=true
INI
done
# Fuentes: Adwaita Sans (UI, ExtraLight) + Adwaita Mono (monoespaciada).
SANS="Adwaita Sans,12,-1,5,200,0,0,0,0,0,0,0,0,0,0,1,ExtraLight,0,0"
kwriteconfig6 --file kdeglobals --group General --key font "$SANS"
kwriteconfig6 --file kdeglobals --group General --key menuFont "$SANS"
kwriteconfig6 --file kdeglobals --group General --key toolBarFont "$SANS"
kwriteconfig6 --file kdeglobals --group General --key smallestReadableFont "Adwaita Sans,10,-1,5,200,0,0,0,0,0,0,0,0,0,0,1,ExtraLight,0,0"
kwriteconfig6 --file kdeglobals --group WM --key activeFont "$SANS"
kwriteconfig6 --file kdeglobals --group General --key fixed "Adwaita Mono,12,-1,5,400,0,0,0,0,0,0,0,0,0,0,1,,0,0"
# Botones de ventana estilo macOS (cerrar/min/max a la izquierda)
kwriteconfig6 --file kwinrc --group org.kde.kdecoration2 --key ButtonsOnLeft "XIA"
kwriteconfig6 --file kwinrc --group org.kde.kdecoration2 --key ButtonsOnRight ""
# --- Fase 3: pulido (animaciones, desenfoque, detalles) -----------------
# Decoración Klassy: esquinas redondeadas estilo macOS (Plasma 6 no las trae).
kwriteconfig6 --file kwinrc --group org.kde.kdecoration2 --key library "org.kde.klassy"
kwriteconfig6 --file kwinrc --group org.kde.kdecoration2 --key theme "Klassy"
# Desenfoque nativo de KWin tras paneles/dock/menús (sin deps).
kwriteconfig6 --file kwinrc --group Plugins --key blurEnabled true
kwriteconfig6 --file kwinrc --group Plugins --key contrastEnabled true
# Dim de ventanas inactivas. (El minimizar se deja en el "squash" por defecto:
# magic lamp es shader GL y no carga sobre render software/VM; squash va siempre.)
kwriteconfig6 --file kwinrc --group Plugins --key diminactiveEnabled true
# Velocidad de animaciones un punto más ágil (1.0 = default, <1 más rápido).
kwriteconfig6 --file kdeglobals --group KDE --key AnimationDurationFactor 0.75
# Layout macOS: barra superior (menú global) + dock inferior flotante.
# Sustituye el panel por defecto (que además clavaba Discover -> 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" <<EOS
[Desktop Entry]
Type=Application
Name=First boot theme (KDE)
Exec=$USER_HOME/.local/bin/firstboot-theme.sh
EOS
chown -R "$INSTALL_USER:$INSTALL_USER" "$USER_HOME/.local" "$USER_HOME/.config"
# KDE se deja vanilla a propósito: la personalización (tema, layout, fuentes,
# decoración) se captura del portátil con shared/capture-kde.sh y se replica vía
# chezmoi (dotfiles) + paquetes en este setup.sh. Single-monitor como base.
# --- chezmoi: dotfiles personales (repo arch-configs) --------------------------
echo ">> chezmoi init --apply (repo arch-configs)..."
+61
View File
@@ -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" <<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"
+3
View File
@@ -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 --------------------------------------