mirror of
https://gitee.com/gfdgd-xi/deep-wine-runner
synced 2025-12-14 19:12:04 +08:00
初步实现高级打包器脚本文件的抽离(未测试可用性)
This commit is contained in:
57
packager-config/deepinwine/tools/spark-wine-banner
Executable file
57
packager-config/deepinwine/tools/spark-wine-banner
Executable file
@@ -0,0 +1,57 @@
|
||||
#!/bin/bash
|
||||
|
||||
##### 若有pybanner则尝试启动
|
||||
#if [ -e ${SHELL_DIR}/spark-dwine-helper/pybanner/pybanner.py ];then
|
||||
#echo "Protocol upgrade: Trying to activate python banner..."
|
||||
#python3 ${SHELL_DIR}/spark-dwine-helper/pybanner/pybanner.py
|
||||
#if [ "$?" = "0" ];then
|
||||
#exit
|
||||
#else
|
||||
#echo "Failed to activate. Fallback to normal zenity."
|
||||
#fi
|
||||
#fi
|
||||
|
||||
|
||||
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=20
|
||||
Reference in New Issue
Block a user