#!/bin/bash # ============================================================================== # BootRepairTool 启动脚本 # 解决 Arch Linux 等系统上的 X11 字体渲染问题 # ============================================================================== # 获取脚本实际所在目录(处理软链接情况) SCRIPT_SOURCE="${BASH_SOURCE[0]}" while [ -L "$SCRIPT_SOURCE" ]; do SCRIPT_DIR="$(cd "$(dirname "$SCRIPT_SOURCE")" && pwd)" SCRIPT_SOURCE="$(readlink "$SCRIPT_SOURCE")" [[ $SCRIPT_SOURCE != /* ]] && SCRIPT_SOURCE="$SCRIPT_DIR/$SCRIPT_SOURCE" done SCRIPT_DIR="$(cd "$(dirname "$SCRIPT_SOURCE")" && pwd)" # 如果是从 /bin 软链接启动,则使用实际安装目录 if [ "$SCRIPT_DIR" = "/bin" ] || [ "$SCRIPT_DIR" = "/usr/bin" ]; then SCRIPT_DIR="/opt/boot-repair-tool" fi # 设置字体渲染环境变量,解决 "BadLength (poly request too large)" 错误 export XLIB_SKIP_ARGB_VISUALS=1 # 禁用某些 X11 RENDER 扩展功能 export GDK_NATIVE_WINDOWS=1 # 设置 tkinter 使用基本字体渲染 export TCL_DONT_USE_RENDER_EXTENSION=1 # 如果使用 Wayland,强制使用 XWayland if [ "$XDG_SESSION_TYPE" = "wayland" ]; then export GDK_BACKEND=x11 fi # 执行实际程序 exec "${SCRIPT_DIR}/LinuxGrubRepair.bin" "$@"