#!/bin/bash
# Meta+A abre el agente desde cualquier sitio.
#
# Un sistema operativo con IA delante no puede obligarte a buscar una ventana
# para hablar con él. La tecla es la diferencia entre una aplicación que está
# instalada y una que se usa.
#
# Se escribe UNA vez. Si ya hay algo escrito para el agente -lo nuestro de un
# arranque anterior, o lo que la persona haya decidido- no se toca: un atajo que
# el sistema te repone cada vez que entras no es una comodidad, es una pelea.
set -u

ATAJOS="${XDG_CONFIG_HOME:-$HOME/.config}/kglobalshortcutsrc"
ENTRADA="filmos-agente.desktop"
COMBINACION="Meta+A"

command -v kwriteconfig6 >/dev/null 2>&1 || exit 0
[ -r "/usr/share/applications/$ENTRADA" ] || exit 0

# Ya hay una decisión tomada sobre el agente. Una decisión de verdad se ve:
# KDE escribe `_launch=none,none,...` cuando alguien le quita el atajo. Un
# `_launch=` VACÍO no es una decisión, es un fichero roto —pasa si algo toca
# KGlobalAccel por D-Bus, que persiste lo que él cree y se lleva por delante lo
# que había escrito— y eso sí se repara.
if grep -q "^\[services\]\[$ENTRADA\]" "$ATAJOS" 2>/dev/null; then
  ROTO="$(sed -n "/^\[services\]\[$ENTRADA\]/,/^\[/p" "$ATAJOS" 2>/dev/null \
    | grep -c "^_launch=$" || true)"
  [ "$ROTO" = "1" ] || exit 0
fi

# La combinación es de otro. Antes que quitársela, el agente se queda sin tecla:
# robar un atajo que ya funciona rompe algo que la persona usa hoy.
if grep -qE "${COMBINACION}(,|$(printf '\t')|$)" "$ATAJOS" 2>/dev/null; then
  exit 0
fi

kwriteconfig6 --file kglobalshortcutsrc --group services --group "$ENTRADA" \
  --key "_k_friendly_name" "Agente de filmos"
kwriteconfig6 --file kglobalshortcutsrc --group services --group "$ENTRADA" \
  --key "_launch" "${COMBINACION},none,Agente de filmos"
