#!/bin/bash
# Aplica el aspecto de filmos la PRIMERA vez que un usuario entra, y nunca más.
#
# Existe porque los valores de /etc/xdg solo mandan mientras el usuario no tenga
# los suyos, y Plasma escribe los suyos en el primer arranque. Resultado real,
# visto en la primera estación instalada: `kdeglobals` decía
# «ColorScheme=Filmos» y tenía dentro los colores CLAROS de Breeze. La marca
# estaba instalada y no se veía por ninguna parte.
#
# Se aplica una vez y se marca. A partir de ahí el escritorio es del usuario: si
# lo cambia, nadie se lo devuelve. Un sistema que te repone su tema cada vez que
# entras no es una identidad, es una pelea.
set -u

MARCA="${XDG_DATA_HOME:-$HOME/.local/share}/filmos/aspecto-aplicado"
FONDO=/usr/share/wallpapers/filmos/contents/images/2560x1440.svg

[ -e "$MARCA" ] && exit 0
command -v plasma-apply-colorscheme >/dev/null || exit 0

aplicar() {
  # El esquema puede estar puesto por NOMBRE y no por color: es justo el caso
  # que motivó todo esto. Se fuerza pasando por otro esquema y volviendo.
  plasma-apply-colorscheme BreezeDark >/dev/null 2>&1
  plasma-apply-colorscheme Filmos >/dev/null 2>&1

  plasma-apply-desktoptheme breeze-dark >/dev/null 2>&1
  [ -r "$FONDO" ] && plasma-apply-wallpaperimage "$FONDO" >/dev/null 2>&1

  # Tipografías del ecosistema: Sora para títulos, Inter para interfaz,
  # JetBrains Mono para lo monoespaciado.
  kwriteconfig6 --file kdeglobals --group General --key font "Inter,10,-1,5,400,0,0,0,0,0"
  kwriteconfig6 --file kdeglobals --group General --key menuFont "Inter,10,-1,5,400,0,0,0,0,0"
  kwriteconfig6 --file kdeglobals --group General --key toolBarFont "Inter,9,-1,5,400,0,0,0,0,0"
  kwriteconfig6 --file kdeglobals --group General --key smallestReadableFont "Inter,8,-1,5,400,0,0,0,0,0"
  kwriteconfig6 --file kdeglobals --group General --key fixed "JetBrains Mono,10,-1,5,400,0,0,0,0,0"
  kwriteconfig6 --file kdeglobals --group WM --key activeFont "Sora,10,-1,5,600,0,0,0,0,0"
  kwriteconfig6 --file kdeglobals --group General --key AccentColor "139,123,255"
  kwriteconfig6 --file kdeglobals --group General --key accentColorFromWallpaper false

  # La pantalla de bloqueo es lo primero que se ve al volver a la mesa.
  [ -r "$FONDO" ] && kwriteconfig6 --file kscreenlockerrc \
    --group Greeter --group Wallpaper --group org.kde.image --group General \
    --key Image "$FONDO"

  # Las reglas de ventana -Resolve manda sobre la GPU, el botón del agente en su
  # esquina- las trae filmos-identity en /etc/xdg. Se copian al usuario solo si
  # no tiene las suyas: las reglas de alguien son suyas y no se mezclan a ciegas.
  REGLAS="${XDG_CONFIG_HOME:-$HOME/.config}/kwinrulesrc"
  if [ ! -e "$REGLAS" ] && [ -r /etc/xdg/kwinrulesrc ]; then
    cp /etc/xdg/kwinrulesrc "$REGLAS"
    qdbus6 org.kde.KWin /KWin reconfigure >/dev/null 2>&1 \
      || qdbus org.kde.KWin /KWin reconfigure >/dev/null 2>&1
  fi

  # La terminal, que en esta máquina se usa más que el navegador.
  if [ -r /usr/share/konsole/filmos.profile ] \
     && ! grep -q "^DefaultProfile=" "${XDG_CONFIG_HOME:-$HOME/.config}/konsolerc" 2>/dev/null; then
    kwriteconfig6 --file konsolerc --group "Desktop Entry" --key DefaultProfile "filmos.profile"
  fi
}

aplicar

mkdir -p "$(dirname "$MARCA")"
{
  printf 'aplicado=%s\n' "$(date -u +%Y-%m-%dT%H:%M:%SZ)"
  printf 'por=filmos-look\n'
  printf 'nota=el escritorio es tuyo a partir de aqui; esto no se repite\n'
} > "$MARCA"
