#!/usr/bin/env bash
set -e

echo "======================================"
echo "  Cai bo go UniKey cho Ubuntu"
echo "  Dung Fcitx5 + fcitx5-unikey"
echo "======================================"

if ! command -v apt >/dev/null 2>&1; then
  echo "Loi: Script nay chi ho tro Ubuntu/Debian dung apt."
  exit 1
fi

echo ""
echo "[1/7] Cap nhat danh sach goi..."
sudo apt update

echo ""
echo "[2/7] Cai Fcitx5 + UniKey..."
sudo apt install -y \
  fcitx5 \
  fcitx5-unikey \
  fcitx5-config-qt \
  fcitx5-frontend-gtk3 \
  fcitx5-frontend-gtk4 \
  fcitx5-frontend-qt5 \
  dbus-x11 \
  fonts-noto \
  fonts-noto-cjk \
  fonts-noto-color-emoji \
  im-config

echo ""
echo "[3/7] Dat Fcitx5 lam bo go mac dinh..."
im-config -n fcitx5 || true

echo ""
echo "[4/7] Cau hinh bien moi truong..."

mkdir -p "$HOME/.config/environment.d"

cat > "$HOME/.config/environment.d/fcitx5.conf" <<'EOF'
GTK_IM_MODULE=fcitx
QT_IM_MODULE=fcitx
XMODIFIERS=@im=fcitx
INPUT_METHOD=fcitx
SDL_IM_MODULE=fcitx
GLFW_IM_MODULE=ibus
EOF

# Backup .xprofile neu co
if [ -f "$HOME/.xprofile" ]; then
  cp "$HOME/.xprofile" "$HOME/.xprofile.bak.$(date +%Y%m%d%H%M%S)"
fi

# Them bien moi truong vao .xprofile neu chua co
touch "$HOME/.xprofile"

grep -q "GTK_IM_MODULE=fcitx" "$HOME/.xprofile" || cat >> "$HOME/.xprofile" <<'EOF'

# Fcitx5 input method
export GTK_IM_MODULE=fcitx
export QT_IM_MODULE=fcitx
export XMODIFIERS=@im=fcitx
export INPUT_METHOD=fcitx
export SDL_IM_MODULE=fcitx
export GLFW_IM_MODULE=ibus
EOF

echo ""
echo "[5/7] Tao autostart cho Fcitx5..."

mkdir -p "$HOME/.config/autostart"

if [ -f /usr/share/applications/org.fcitx.Fcitx5.desktop ]; then
  cp /usr/share/applications/org.fcitx.Fcitx5.desktop "$HOME/.config/autostart/"
else
  cat > "$HOME/.config/autostart/fcitx5.desktop" <<'EOF'
[Desktop Entry]
Type=Application
Name=Fcitx 5
Exec=fcitx5
Hidden=false
NoDisplay=false
X-GNOME-Autostart-enabled=true
EOF
fi

echo ""
echo "[6/7] Them UniKey vao danh sach bo go Fcitx5..."

mkdir -p "$HOME/.config/fcitx5"

# Backup profile cu neu co
if [ -f "$HOME/.config/fcitx5/profile" ]; then
  cp "$HOME/.config/fcitx5/profile" "$HOME/.config/fcitx5/profile.bak.$(date +%Y%m%d%H%M%S)"
fi

cat > "$HOME/.config/fcitx5/profile" <<'EOF'
[Groups/0]
Name=Default
Default Layout=us
DefaultIM=unikey

[Groups/0/Items/0]
Name=keyboard-us
Layout=

[Groups/0/Items/1]
Name=unikey
Layout=

[GroupOrder]
0=Default
EOF

echo ""
echo "[7/7] Khoi dong lai Fcitx5..."

pkill -x fcitx5 >/dev/null 2>&1 || true
nohup fcitx5 >/dev/null 2>&1 &

echo ""
echo "======================================"
echo "  DA CAI XONG UNIKEY"
echo "======================================"
echo ""
echo "Viec can lam bay gio:"
echo "1. Dang xuat roi dang nhap lai Ubuntu."
echo "2. Mo ung dung bat ky, bam Ctrl + Space de doi bo go."
echo "3. Neu chua thay UniKey, chay lenh:"
echo "   fcitx5-config-qt"
echo "   Sau do them 'UniKey' vao danh sach Input Method."
echo ""
echo "Kiem tra Fcitx5:"
echo "   fcitx5-diagnose"
echo ""
