#!/bin/bash
# WeChat (official AppImage) for Sailfish OS - launcher wrapper
#
# 本 RPM 自带的依赖库在 /usr/lib/wechat-sailfish
# AppImage 本体请自备（默认找 /opt/wechat/WeChatLinux_arm64.AppImage）

# Wayland 会话（lipstick 默认值，允许外部覆盖）
export XDG_RUNTIME_DIR=${XDG_RUNTIME_DIR:-/run/user/100000}
if [ -z "$WAYLAND_DISPLAY" ]; then
  if [ -S /run/display/wayland-0 ]; then
    export WAYLAND_DISPLAY=/run/display/wayland-0
  else
    export WAYLAND_DISPLAY=../../display/wayland-0
  fi
fi

# Ubuntu 24.04 noble arm64 依赖库（X11/xcb/cups/gbm/…，小程序运行时 WeChatAppEx 需要）+ libatomic
export LD_LIBRARY_PATH=/usr/lib/wechat-sailfish:/usr/lib64:$LD_LIBRARY_PATH

# 字体/界面放大：默认 2 倍，可用 WECHAT_SCALE=1.5/2/2.5 覆盖
SCALE="${WECHAT_SCALE:-2}"
unset QT_WAYLAND_FORCE_DPI QT_FONT_DPI QT_FONT_DPI_OVERRIDE QT_SCREEN_SCALE_FACTORS
export QT_SCALE_FACTOR="$SCALE"
export QT_SCALE_FACTOR_ROUNDING_POLICY=PassThrough

# 纯软件渲染：lipstick 的 EGL 对外部程序不可用
export QT_OPENGL=software
export QT_QUICK_BACKEND=software
export LIBGL_ALWAYS_SOFTWARE=1
export QT_XCB_GL_INTEGRATION=none

# 输入法：优先走 Wayland text-input，失败时用 wechat-input 输入板
export QT_IM_MODULE=Maliit
export XMODIFIERS="@im=maliit"
export GDK_BACKEND=wayland

# 强制全屏：微信自己把窗口钉在 560x760，这个补丁改写 min/max size 并补发
# xdg_toplevel.set_fullscreen，让窗口铺满屏幕（WECHAT_FS=0 可关闭）
export LD_PRELOAD=/usr/lib/wechat-sailfish/libwechat-fullscreen.so${LD_PRELOAD:+:$LD_PRELOAD}

# 查找 AppImage：环境变量优先，其次常见目录，版本无关
APPIMAGE=""
if [ -n "$WECHAT_APPIMAGE" ] && [ -x "$WECHAT_APPIMAGE" ]; then
  APPIMAGE="$WECHAT_APPIMAGE"
fi
if [ -z "$APPIMAGE" ]; then
for cand in /opt/wechat/WeChatLinux_arm64.AppImage \
             /opt/wechat/*.AppImage \
             "$HOME/Documents/WeChatLinux_arm64.AppImage" \
             "$HOME/Downloads/WeChatLinux_arm64.AppImage" \
             "$HOME/Documents"/*.AppImage; do
  [ -e "$cand" ] || continue
  if [ -x "$cand" ]; then
    APPIMAGE="$cand"
    break
  fi
done
fi

if [ -z "$APPIMAGE" ]; then
  echo "错误：找不到微信 AppImage，请放到 /opt/wechat/ 或 ~/Documents/ 下" >&2
  echo "或指定：WECHAT_APPIMAGE=/path/to/WeChatLinux_arm64.AppImage wechat-sailfish" >&2
  exit 1
fi

exec "$APPIMAGE" "$@"
