#!/usr/bin/env bash
# Gut Kate → AMOURANTHRTX Night · SPV tools · project · composite launcher
set -euo pipefail
HERE="$(cd "$(dirname "$0")" && pwd)"
WB="$(cd "$HERE/.." && pwd)"
XROOT="$(cd "$WB/../.." && pwd)"
CFG="${XDG_CONFIG_HOME:-$HOME/.config}"
DATA="${XDG_DATA_HOME:-$HOME/.local/share}"

echo "AMOURANTHRTX Kate install · $HERE"

# dark SPV color theme
mkdir -p "$DATA/org.kde.syntax-highlighting/themes"
if [[ -f "$HERE/AMOURANTHRTX-Night.theme" ]]; then
  cp -f "$HERE/AMOURANTHRTX-Night.theme" "$DATA/org.kde.syntax-highlighting/themes/"
fi

# backup + install katerc
if [[ -f "$CFG/katerc" && ! -f "$CFG/katerc.bak-pre-amouranth" ]]; then
  cp -f "$CFG/katerc" "$CFG/katerc.bak-pre-amouranth"
fi
cp -f "$HERE/katerc.amouranth" "$CFG/katerc"

# kdeglobals dark
if [[ -f "$CFG/kdeglobals" ]]; then
  if ! grep -q 'ColorScheme=BreezeDark' "$CFG/kdeglobals" 2>/dev/null; then
    if grep -q '^\[General\]' "$CFG/kdeglobals"; then
      sed -i 's/^ColorScheme=.*/ColorScheme=BreezeDark/' "$CFG/kdeglobals" || true
    fi
  fi
fi
# ensure ColorEffects
grep -q 'ColorScheme=BreezeDark' "$CFG/kdeglobals" 2>/dev/null || \
  printf '\n[General]\nColorScheme=BreezeDark\n' >> "$CFG/kdeglobals"

# external tools
mkdir -p "$CFG/kate/externaltools"
cp -f "$HERE/externaltools/"*.ini "$CFG/kate/externaltools/" 2>/dev/null || true

# session · Kate in SPV land (term + kate plug + compute sources)
mkdir -p "$CFG/kate/sessions"
cat > "$CFG/kate/sessions/AMOURANTHRTX" <<EOF
[Documents]
Active Document Index=0
Document 0=$XROOT/RTXLayer/engine/sheets/essie_menu.html
Document 1=$XROOT/RTXLayer/webbrowser/spvs/kate.js
Document 2=$XROOT/RTXLayer/webbrowser/spvs/term.js
Document 3=$XROOT/RTXLayer/webbrowser/spvs/js_all.js
Document 4=$XROOT/RTXLayer/webbrowser/js/commands.js
Document 5=$XROOT/RTXLayer/engine/shaders/atoms.comp
Document 6=$XROOT/RTXLayer/webbrowser/spvs/fox.js

[MainWindow]
Window-Maximized=true
EOF

# project symlink into webbrowser root for easy open
ln -sfn "$HERE/project/AMOURANTHRTX.kateproject" "$WB/AMOURANTHRTX.kateproject"

# desktop launcher
mkdir -p "$HOME/Desktop"
cat > "$HOME/Desktop/AMOURANTHRTX-Kate.desktop" <<EOF
[Desktop Entry]
Type=Application
Name=AMOURANTHRTX Kate
Comment=Gutted dark Kate · SPV · composite AMOURANTHRTX
Exec=$HERE/launch-composite.sh
Icon=kate
Terminal=false
Categories=Development;TextEditor;
EOF
chmod +x "$HERE/launch-composite.sh" "$HERE/install-amouranth-kate.sh" 2>/dev/null || true
chmod +x "$HOME/Desktop/AMOURANTHRTX-Kate.desktop" 2>/dev/null || true

# kill host Konsole habit · Kate Tools → ESSIE seats (Output pane)
# if user still has katekonsoleplugin, our katerc disables it
if command -v kwriteconfig6 >/dev/null 2>&1; then
  kwriteconfig6 --file katerc --group Plugins --key katekonsolepluginEnabled false 2>/dev/null || true
  kwriteconfig6 --file katerc --group Plugins --key katekonsoleplugin false 2>/dev/null || true
elif command -v kwriteconfig5 >/dev/null 2>&1; then
  kwriteconfig5 --file katerc --group Plugins --key katekonsolepluginEnabled false 2>/dev/null || true
fi

echo "OK · Kate in SPV land · no Konsole · term plug + engine graphics"
echo "  Tools: ESSIE · Seat Kate / term / JS100 / Fox / Engine / Build SPVs"
echo "  Seat:  wb in kate | wb in term"
echo "launch: $HERE/launch-composite.sh"
echo "or:     wb kate"
