#!/bin/bash if [ ! -z "$WAYLAND_DISPLAY" ]; then echo "Wayland detected. Do not check wmclass" zenity --progress --title="星火Windows应用兼容助手" --text="正在为您启动以下应用:$WINE_APP_NAME" --pulsate --width=400 --auto-close --no-cancel --timeout=3 exit fi if [ -z "$(which wmctrl)" ]; then echo "No wmctrl installed. Do not check wmclass" zenity --progress --title="星火Windows应用兼容助手" --text="正在为您启动以下应用:$WINE_APP_NAME" --pulsate --width=400 --auto-close --no-cancel --timeout=3 exit fi target_wmclass=".$WINE_WMCLASS" function check_window() { # 使用 wmctrl 命令列出所有窗口,并使用 grep 过滤出特定的 WMCLASS windows=$(wmctrl -lx | grep "$target_wmclass") # 如果窗口存在,则关闭提示 if [ -n "$windows" ]; then # 提取窗口ID window_id=$(echo "$windows" | awk '{print $1}') echo "Window with WMCLASS '$target_wmclass' found" exit else echo "Window with WMCLASS '$target_wmclass' not found." fi } function check_wmclass(){ # 递归检测窗口是否存在的函数 # 每隔一段时间检测一次窗口是否存在 while true; do check_window # 等待一段时间后再次检测 sleep 1 done } check_wmclass | zenity --progress --title="星火Windows应用兼容助手" --text="正在为您启动以下应用:$WINE_APP_NAME" --pulsate --width=400 --auto-close --no-cancel --timeout=10