From aaeb80fde375ee2bb2b0bddc8fca139a5be41dfd Mon Sep 17 00:00:00 2001 From: gfdgd_xi <3025613752@qq.com> Date: Sat, 3 Aug 2024 07:27:57 +0800 Subject: [PATCH] =?UTF-8?q?=E5=BC=80=E5=A7=8B=E5=B0=9D=E8=AF=95=E5=B9=B6?= =?UTF-8?q?=E5=85=A5wine=20helper?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- helper/bashimport/log-function.bashimport | 39 ++ helper/bashimport/transhell.bashimport | 32 ++ .../deepin-wine8-stable | 36 ++ .../log-function.bashimport | 39 ++ .../spark-dwine-helper/pybanner/fallback.png | Bin 0 -> 199591 bytes .../spark-dwine-helper/pybanner/pybanner.py | 127 +++++ .../scale-set-helper/bunny.txt | 92 ++++ .../scale-set-helper/get-scale.sh | 86 +++ .../scale-set-helper/set-wine-scale.sh | 210 ++++++++ .../transhell/get-scale.sh_en_US.transhell | 8 + .../transhell/get-scale.sh_zh_CN.transhell | 8 + .../wine-app-launcher/wine-app-launcher.sh | 201 +++++++ helper/spark-wine-banner | 57 ++ helper/spark_get_tray_window | 22 + helper/spark_gl-wine/gdid3d.reg | Bin 0 -> 210 bytes helper/spark_gl-wine/gl-wine32 | Bin 0 -> 25667 bytes helper/spark_gl-wine/gl-wine64 | Bin 0 -> 26401 bytes helper/spark_gl-wine/run_gl.sh | 19 + helper/spark_kill.sh | 272 ++++++++++ helper/spark_run_v4.sh | 500 ++++++++++++++++++ helper/spark_run_v4_app_configs/Deepin-CS6.sh | 22 + .../spark_run_v4_app_configs/Deepin-Dding.sh | 4 + .../Deepin-Evernote.sh | 9 + .../Deepin-FastReadPDF.sh | 9 + .../Deepin-Foxmail.sh | 2 + .../spark_run_v4_app_configs/Deepin-MTXX.sh | 9 + .../Deepin-QQ-Spark.sh | 1 + helper/spark_run_v4_app_configs/Deepin-QQ.sh | 25 + .../spark_run_v4_app_configs/Deepin-QQBydr.sh | 3 + .../spark_run_v4_app_configs/Deepin-QQGame.sh | 4 + .../Deepin-QQHlddz.sh | 3 + .../spark_run_v4_app_configs/Deepin-QQMnsj.sh | 3 + .../spark_run_v4_app_configs/Deepin-QQSszb.sh | 3 + helper/spark_run_v4_app_configs/Deepin-THS.sh | 23 + helper/spark_run_v4_app_configs/Deepin-TIM.sh | 17 + .../Deepin-TencentVideo.sh | 5 + .../spark_run_v4_app_configs/Deepin-WXWork.sh | 9 + .../Deepin-WangWang.sh | 9 + .../spark_run_v4_app_configs/Deepin-WeChat.sh | 2 + .../spark_run_v4_app_configs/Deepin-ZhuMu.sh | 18 + helper/spark_run_v4_app_configs/IE8.sh | 3 + .../Spark-CloudMusic.sh | 4 + .../Spark-MailMaster.sh | 3 + helper/spark_run_v4_app_configs/Spark-MuBu.sh | 4 + helper/spark_run_v4_app_configs/Spark-QQ.sh | 1 + .../spark_run_v4_app_configs/Spark-QQMusic.sh | 16 + helper/spark_run_v4_app_configs/Spark-TIM.sh | 1 + .../spark_run_v4_app_configs/Spark-WeCom.sh | 1 + .../spark_run_v4_app_configs/Spark-douyin.sh | 6 + .../spark_run_v4_app_configs/Spark-ecloud.sh | 2 + .../spark_run_v4_app_configs/Spark-flyele.sh | 5 + .../spark_run_v4_app_configs/Spark-weixin.sh | 37 ++ helper/spark_run_v4_app_configs/Wine-QQ.sh | 1 + .../wxwork-spark-uk.sh | 1 + helper/spark_updater | 42 ++ .../transhell/spark_run_v4.sh_en_US.transhell | 3 + .../transhell/spark_run_v4.sh_zh_CN.transhell | 4 + 57 files changed, 2062 insertions(+) create mode 100644 helper/bashimport/log-function.bashimport create mode 100755 helper/bashimport/transhell.bashimport create mode 100755 helper/spark-dwine-helper/deepin-wine8-stable-wrapper/deepin-wine8-stable create mode 100644 helper/spark-dwine-helper/deepin-wine8-stable-wrapper/log-function.bashimport create mode 100755 helper/spark-dwine-helper/pybanner/fallback.png create mode 100644 helper/spark-dwine-helper/pybanner/pybanner.py create mode 100644 helper/spark-dwine-helper/scale-set-helper/bunny.txt create mode 100755 helper/spark-dwine-helper/scale-set-helper/get-scale.sh create mode 100755 helper/spark-dwine-helper/scale-set-helper/set-wine-scale.sh create mode 100644 helper/spark-dwine-helper/scale-set-helper/transhell/get-scale.sh_en_US.transhell create mode 100644 helper/spark-dwine-helper/scale-set-helper/transhell/get-scale.sh_zh_CN.transhell create mode 100755 helper/spark-dwine-helper/wine-app-launcher/wine-app-launcher.sh create mode 100755 helper/spark-wine-banner create mode 100755 helper/spark_get_tray_window create mode 100644 helper/spark_gl-wine/gdid3d.reg create mode 100755 helper/spark_gl-wine/gl-wine32 create mode 100755 helper/spark_gl-wine/gl-wine64 create mode 100755 helper/spark_gl-wine/run_gl.sh create mode 100755 helper/spark_kill.sh create mode 100755 helper/spark_run_v4.sh create mode 100644 helper/spark_run_v4_app_configs/Deepin-CS6.sh create mode 100644 helper/spark_run_v4_app_configs/Deepin-Dding.sh create mode 100644 helper/spark_run_v4_app_configs/Deepin-Evernote.sh create mode 100644 helper/spark_run_v4_app_configs/Deepin-FastReadPDF.sh create mode 100644 helper/spark_run_v4_app_configs/Deepin-Foxmail.sh create mode 100644 helper/spark_run_v4_app_configs/Deepin-MTXX.sh create mode 120000 helper/spark_run_v4_app_configs/Deepin-QQ-Spark.sh create mode 100644 helper/spark_run_v4_app_configs/Deepin-QQ.sh create mode 100644 helper/spark_run_v4_app_configs/Deepin-QQBydr.sh create mode 100644 helper/spark_run_v4_app_configs/Deepin-QQGame.sh create mode 100644 helper/spark_run_v4_app_configs/Deepin-QQHlddz.sh create mode 100644 helper/spark_run_v4_app_configs/Deepin-QQMnsj.sh create mode 100644 helper/spark_run_v4_app_configs/Deepin-QQSszb.sh create mode 100644 helper/spark_run_v4_app_configs/Deepin-THS.sh create mode 100644 helper/spark_run_v4_app_configs/Deepin-TIM.sh create mode 100644 helper/spark_run_v4_app_configs/Deepin-TencentVideo.sh create mode 100644 helper/spark_run_v4_app_configs/Deepin-WXWork.sh create mode 100644 helper/spark_run_v4_app_configs/Deepin-WangWang.sh create mode 100644 helper/spark_run_v4_app_configs/Deepin-WeChat.sh create mode 100644 helper/spark_run_v4_app_configs/Deepin-ZhuMu.sh create mode 100644 helper/spark_run_v4_app_configs/IE8.sh create mode 100644 helper/spark_run_v4_app_configs/Spark-CloudMusic.sh create mode 100644 helper/spark_run_v4_app_configs/Spark-MailMaster.sh create mode 100644 helper/spark_run_v4_app_configs/Spark-MuBu.sh create mode 120000 helper/spark_run_v4_app_configs/Spark-QQ.sh create mode 100644 helper/spark_run_v4_app_configs/Spark-QQMusic.sh create mode 120000 helper/spark_run_v4_app_configs/Spark-TIM.sh create mode 120000 helper/spark_run_v4_app_configs/Spark-WeCom.sh create mode 100644 helper/spark_run_v4_app_configs/Spark-douyin.sh create mode 100644 helper/spark_run_v4_app_configs/Spark-ecloud.sh create mode 100644 helper/spark_run_v4_app_configs/Spark-flyele.sh create mode 100644 helper/spark_run_v4_app_configs/Spark-weixin.sh create mode 120000 helper/spark_run_v4_app_configs/Wine-QQ.sh create mode 120000 helper/spark_run_v4_app_configs/wxwork-spark-uk.sh create mode 100755 helper/spark_updater create mode 100644 helper/transhell/spark_run_v4.sh_en_US.transhell create mode 100644 helper/transhell/spark_run_v4.sh_zh_CN.transhell diff --git a/helper/bashimport/log-function.bashimport b/helper/bashimport/log-function.bashimport new file mode 100644 index 0000000..96c31ae --- /dev/null +++ b/helper/bashimport/log-function.bashimport @@ -0,0 +1,39 @@ +# ===== Log ===== +# log.info xxx +# log.warn xxx +# log.info xxx +# log.debug xxx +# 带颜色的echo +function log.color_output() { + local color=$1 + shift 1 + + echo >&2 -e "\033[${color}m$@\033[0m" + return 0 +} + +# Log is named without prefix "utils." for convenience +# Usage: log.log ...content +function log.log() { + if [[ $# < 2 ]]; then + return -1 + fi + + local level=$1 + shift 1 + + case $level in + error) log.color_output "0;31" "[ERROR] $@" ;; + warn) log.color_output "1;33" "[WARN] $@" ;; + info) log.color_output "1;37" "[INFO] $@" ;; + debug) log.color_output "1;30" "[DEBUG] $@" ;; + esac + + return 0 +} + +function log.error() { log.log "error" "$@"; } +function log.warn() { log.log "warn" $@; } +function log.info() { log.log "info" $@; } +function log.debug() { log.log "debug" $@; } + diff --git a/helper/bashimport/transhell.bashimport b/helper/bashimport/transhell.bashimport new file mode 100755 index 0000000..d09e451 --- /dev/null +++ b/helper/bashimport/transhell.bashimport @@ -0,0 +1,32 @@ +#!/bin/bash + +##load transhell +function load_transhell_debug() +{ +local WORK_PATH="$(dirname $(realpath $0))" +echo $WORK_PATH +local CURRENT_LANG="$(echo ${LANG%.*})" +if [ -e "/usr/share/$(basename $0)/transhell/$(basename $0)_en_US.transhell" ]; then source /usr/share/$(basename $0)/transhell/$(basename $0)_en_US.transhell; echo "Loading transhell from /usr/share/$(basename $0)/transhell/$(basename $0)_en_US.transhell ..."; fi +if [ -e "/usr/share/$(basename $0)/transhell/$(basename $0)_$CURRENT_LANG.transhell" ]; then source /usr/share/$(basename $0)/transhell/$(basename $0)_$CURRENT_LANG.transhell; echo "Loading transhell from /usr/share/$(basename $0)/transhell/$(basename $0)_$CURRENT_LANG.transhell ..."; fi +if [ -e "${WORK_PATH}/transhell/$(basename $0)_en_US.transhell" ]; then source ${WORK_PATH}/transhell/$(basename $0)_en_US.transhell; echo "Loading transhell from ${WORK_PATH}/transhell/$(basename $0)_en_US.transhell ..."; fi +if [ -e "${WORK_PATH}/transhell/$(basename $0)_$CURRENT_LANG.transhell" ]; then source ${WORK_PATH}/transhell/$(basename $0)_$CURRENT_LANG.transhell; echo "Loading transhell from ${WORK_PATH}/transhell/$(basename $0)_$CURRENT_LANG.transhell ..."; fi + +echo "-----------------------------------------------------------------------------" +} + +function load_transhell() +{ +local WORK_PATH="$(dirname $(realpath $0))" +local CURRENT_LANG="$(echo ${LANG%.*})" +if [ -e "/usr/share/$(basename $0)/transhell/$(basename $0)_en_US.transhell" ]; then source /usr/share/$(basename $0)/transhell/$(basename $0)_en_US.transhell; fi +if [ -e "/usr/share/$(basename $0)/transhell/$(basename $0)_$CURRENT_LANG.transhell" ]; then source /usr/share/$(basename $0)/transhell/$(basename $0)_$CURRENT_LANG.transhell; fi +if [ -e "${WORK_PATH}/transhell/$(basename $0)_en_US.transhell" ]; then source ${WORK_PATH}/transhell/$(basename $0)_en_US.transhell; fi +if [ -e "${WORK_PATH}/transhell/$(basename $0)_$CURRENT_LANG.transhell" ]; then source ${WORK_PATH}/transhell/$(basename $0)_$CURRENT_LANG.transhell; fi + +} + +function update_transhell() +{ +load_transhell $@ +} + diff --git a/helper/spark-dwine-helper/deepin-wine8-stable-wrapper/deepin-wine8-stable b/helper/spark-dwine-helper/deepin-wine8-stable-wrapper/deepin-wine8-stable new file mode 100755 index 0000000..790c129 --- /dev/null +++ b/helper/spark-dwine-helper/deepin-wine8-stable-wrapper/deepin-wine8-stable @@ -0,0 +1,36 @@ +#!/bin/bash +source $(dirname $0)/log-function.bashimport +Get_Dist_Name() +{ + if grep -Eqii "Deepin" /etc/issue || grep -Eq "Deepin" /etc/*-release; then + DISTRO='Deepin' + elif grep -Eqi "UnionTech" /etc/issue || grep -Eq "UnionTech" /etc/*-release; then + DISTRO='UniontechOS' + elif grep -Eqi "UOS" /etc/issue || grep -Eq "UOS" /etc/*-release; then + DISTRO='UniontechOS' + else + DISTRO='OtherOS' + fi +} + + + + + +Get_Dist_Name +## 1. If WINEPREFIX is not set, use ~/.wine +if [ "$WINEPREFIX" = "" ];then +export WINEPREFIX=$HOME/.wine +fi + + +if [ "$DISTRO" != "Deepin" ] && [ "$DISTRO" != "UniontechOS" ];then + + +log.warn "WARNING:USING BOX64 INSTEAD OF DEEPIN-BOX64,SOME APP MAY FAIL TO LAUNCH" + +spark-box64 /opt/deepin-wine8-stable/bin/wine "$@" +else +deepin-wine8-stable "$@" +fi + diff --git a/helper/spark-dwine-helper/deepin-wine8-stable-wrapper/log-function.bashimport b/helper/spark-dwine-helper/deepin-wine8-stable-wrapper/log-function.bashimport new file mode 100644 index 0000000..96c31ae --- /dev/null +++ b/helper/spark-dwine-helper/deepin-wine8-stable-wrapper/log-function.bashimport @@ -0,0 +1,39 @@ +# ===== Log ===== +# log.info xxx +# log.warn xxx +# log.info xxx +# log.debug xxx +# 带颜色的echo +function log.color_output() { + local color=$1 + shift 1 + + echo >&2 -e "\033[${color}m$@\033[0m" + return 0 +} + +# Log is named without prefix "utils." for convenience +# Usage: log.log ...content +function log.log() { + if [[ $# < 2 ]]; then + return -1 + fi + + local level=$1 + shift 1 + + case $level in + error) log.color_output "0;31" "[ERROR] $@" ;; + warn) log.color_output "1;33" "[WARN] $@" ;; + info) log.color_output "1;37" "[INFO] $@" ;; + debug) log.color_output "1;30" "[DEBUG] $@" ;; + esac + + return 0 +} + +function log.error() { log.log "error" "$@"; } +function log.warn() { log.log "warn" $@; } +function log.info() { log.log "info" $@; } +function log.debug() { log.log "debug" $@; } + diff --git a/helper/spark-dwine-helper/pybanner/fallback.png b/helper/spark-dwine-helper/pybanner/fallback.png new file mode 100755 index 0000000000000000000000000000000000000000..a97f7d8304f261efc673c3221645395f553307b7 GIT binary patch literal 199591 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�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ⅇ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 G^Zx=*1qP7- literal 0 HcmV?d00001 diff --git a/helper/spark-dwine-helper/pybanner/pybanner.py b/helper/spark-dwine-helper/pybanner/pybanner.py new file mode 100644 index 0000000..941f625 --- /dev/null +++ b/helper/spark-dwine-helper/pybanner/pybanner.py @@ -0,0 +1,127 @@ +#!/usr/bin/env python3 +import os +import sys +import time +import subprocess +import threading +from PyQt5.QtGui import * +from PyQt5.QtCore import * +from PyQt5.QtWidgets import * + + + + +def check_window(): + # 使用 wmctrl 命令列出所有窗口,并使用 grep 过滤出特定的 WMCLASS + windows = subprocess.getoutput(f'wmctrl -lx | grep "{target_wmclass}"') + # 如果窗口存在,则关闭提示 + if windows.replace("\n", "").replace(" ", "") != "": + # 提取窗口ID + window_id = windows.replace(" ", " ").split(" ")[0] + + print(f"Window with WMCLASS '{target_wmclass}' found") + return 1 +# else: +# print(f"Window with WMCLASS '{target_wmclass}' not found.") + + +def check_wmclass(): + if timeout: + time.sleep(timeout) + window.close() + return + # 循环检测窗口是否存在的函数 + # 每隔一段时间检测一次窗口是否存在 + showtimeout = 20 # 为防止因为应用无法打开而无法正常关闭窗口,于是设置 time out + while True: + if check_window(): + break + # 等待一段时间后再次检测 + time.sleep(1) + AppInfoShowerRefresh() + showtimeout -= 1 + if showtimeout <= 0: + break + window.close() + + +timeout = 0 +if os.getenv("WAYLAND_DISPLAY"): + timeout = 3 + +if os.system("which wmctrl"): + print("No wmctrl installed. Do not check wmclass") + timeout = 3 + +target_wmclass = os.getenv("WINE_WMCLASS") + +def GetRecommendWindowSize(window: QMainWindow): + # 计算屏幕分辨率 + screen = QGuiApplication.primaryScreen() + width = screen.geometry().width() + height = screen.geometry().height() + # 如果为竖状屏幕 + if width < height: + temp = height + height = width + width = temp + return [int(width / 4), window.geometry().height()] + +def SetWindowSize(window: QMainWindow): + # 计算比例 + size = GetRecommendWindowSize(window) + window.resize(size[0], size[1]) + +def MoveCenter(window: QMainWindow): + # 计算屏幕分辨率 + screen = QGuiApplication.primaryScreen() + width = screen.geometry().width() + height = screen.geometry().height() + print(window.geometry().height()) + # 计算窗口坐标 + window.move(int(width / 2 - window.geometry().width() / 2), + int(height / 2.8 - window.geometry().height() / 2) + ) + +def AppInfoShowerRefresh(): + global appInfoShowerTime + appInfoShower.setText(f"

星火Windows应用兼容助手

正在为您启动以下应用:{os.getenv('WINE_APP_NAME')} {'.' * (appInfoShowerTime % 3 + 1)}

") + + appInfoShowerTime += 1 + +programPath = os.path.split(os.path.realpath(__file__))[0] # 返回 string + +app = QApplication(sys.argv) +# 构建窗口 +window = QMainWindow() +widget = QWidget() +layout = QGridLayout() + +appInfoShower = QLabel() +appInfoShowerTime = 0 +AppInfoShowerRefresh() + +# GXDE 彩蛋 +if os.path.exists("/usr/share/gxde-resources/spark-dwine-helper.png"): + backgroundImgPath = "/usr/share/gxde-resources/spark-dwine-helper.png" +########## +if os.path.exists(f"{programPath}/fallback.png"): + backgroundImgPath = f"{programPath}/fallback.png" +if os.path.exists(f"/opt/apps/{os.getenv('DEB_PACKAGE_NAME')}/files/banner.png"): + backgroundImgPath = f"/opt/apps/{os.getenv('DEB_PACKAGE_NAME')}/files/banner.png" +window.setWindowTitle("星火Windows应用兼容助手") +layout.addWidget(QLabel(f""), 1, 0) +layout.addWidget(appInfoShower, 2, 0) +layout.addWidget(QLabel(f"
由 Wine 运行器提供支持"), 4, 0) +widget.setLayout(layout) +window.setCentralWidget(widget) +window.setWindowFlags(Qt.CustomizeWindowHint | Qt.WindowStaysOnTopHint) +MoveCenter(window) +SetWindowSize(window) +window.show() + + +layout.addWidget(QLabel(f"

"), 0, 0) +threading.Thread(target=check_wmclass).start() +MoveCenter(window) +app.exec_() diff --git a/helper/spark-dwine-helper/scale-set-helper/bunny.txt b/helper/spark-dwine-helper/scale-set-helper/bunny.txt new file mode 100644 index 0000000..61a39f5 --- /dev/null +++ b/helper/spark-dwine-helper/scale-set-helper/bunny.txt @@ -0,0 +1,92 @@ + ___ +( ) + | | .-. ___ ___ .--. .--. + | |/ \ ( )( ) / \ / \ + | .-. . | | | | ; ,-. ' | .-. ; + | | | | | | | | | | | | | | | | + | | | | | | | | | | | | | |/ | + | | | | | | | | | | | | | ' _.' + | | | | | | ; ' | ' | | | .'.-. + | | | | ' `-' / ' `-' | ' `-' / +(___)(___) '.__.' `.__. | `.__.' + ( `-' ; + `.__. + ___ +( ) + | |.-. .---. ___ .-. .--. ___ .-. + | / \ / .-, \ ( ) \ / \ ( ) \ + | .-. | (__) ; | | ' .-. ; | .-. ; | .-. . + | | | | .'` | | / (___) | | | | | | | | + | | | | / .'| | | | | | | | | | | | + | | | | | / | | | | | | | | | | | | + | ' | | ; | ; | | | | ' | | | | | | + ' `-' ; ' `-' | | | ' `-' / | | | | + `.__. `.__.'_. (___) `.__.' (___)(___) + + + ___ +( ) + | |.-. ___ ___ ___ .-. ___ .-. ___ ___ + | / \ ( )( ) ( ) \ ( ) \ ( )( ) + | .-. | | | | | | .-. . | .-. . | | | | + | | | | | | | | | | | | | | | | | | | | + | | | | | | | | | | | | | | | | | ' | | + | | | | | | | | | | | | | | | | ' `-' | + | ' | | | | ; ' | | | | | | | | `.__. | + ' `-' ; ' `-' / | | | | | | | | ___ | | + `.__. '.__.' (___)(___) (___)(___) ( )' | + ; `-' ' + .__.' + ............ .....]OOOo]`.... + ... ........ ...=OOOOOOOOO\.. + .../OOOOOOO`.... ..=OOO@/[\OOOOO. + ..=OOOOOOOOO\... .,@OO^/....O@O@` + ..OOOOOO[[OOO@`. .=OO@,...=.OOOO. + ..OOOOO./O^,@OO` .=OO^....,.@OO^. + ..\OOO@^...=OOOO.... .OOO^*..,`/OOO.. + ...\OOOOOOOooooO^... .=OO^...`=OO@`.. + ..=@O@OooOOOOO@`...........=@@O]].,@O@`... + .,@OoOO`...O@^......,]]]]/OOOOOOO@@... . + ...\OO@]]]OOOO@@@@@@@@@@@@@@@@@@@OO..... + .....[@@OOO@@@@@@@@@@@@@@@@@@@@@@@@@@`.. + ..OOO@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@`.... + .,@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@\... + ....=@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@^.. + ...=@@@@@@@@@@@@@@@@@@@@@@`,\@@@@@@@@@@@@@^. + ..,@@@@@@@@@@@@@@@@@@@@@@@O,[].\@@@@@@@@@@@. + ../@@@@@@@@@@@@O@@@@@@@@@@@......\@@@@@@@@@^ + .,@@@@@@@@@@@O`.\@@@@@@@@@/........\@@@@@@@@... + .=@@@@@@@@@/.....\@@@@@@@@/`...[O`..\@@@@@@@`... + .=@@@@@@@^,O[..,`.,@@@@@/../@@O[`...,@@@@@@@.... + ....@@@@@@@O`,@@O[]..,@/[`..=oo@O`,^...@@@@@@@@`.. + ....O@@@@@@@@`,OOO@^*\.........\..../.../@`.=^.. + .. ...,@^=@@@^.\`...,^...........[[......O]//... + ..,\]@@@\...[`....................=@@/.... + .=@@\............,]/`........../@@@\.. . + .....@@@@@\.....................,/@@@@@@\... + ...=@@@@@@@@\]..............]@@@@@@@@@@@@`. + ...,@@@@@@@@@@@@@@/[\O@@O/[*./@@@@@@@@@@@@@\....... + ...@@@@@@@@@@@@@@@^.,O@@@@^../@@@@@@@@@@@@@@@\..... +..........@@@@@@@@@@@@@@@@@`..`\/`../@@@@@@@@@@@@@@@@@@@@]] +........,@@@@@@@@@@@@@@@@/*[\].,`]/[[@@@@@@@@@@@@@@,[[[[`.. +..,O\/@@@@@@@@@@@@@@@@@@@`...........O@@O@@@@@@@@@@\.... +.....\@@@@@@@@@@@@@@@@@@@OO\`,O.. .,@OOO@@@@@@@@@@. .. + ..../@@@@@@@@@@@@@@OO@`.^,O. ..=@OOO@@@@@@@@@.. . + ...=@@@@@@@@@@@@@@@@@O[[.... ...\@@@@@@@@@@@/.. . + ...=@@@@@@@@@@@@@@,^ ....O...\@@@@@@` + ....@@@@@@@@@@@@@/.. ...^/\]/[\@@@@`. + .@@@@/@@@@@@@^O..... ...,@@^]..]@/... + ...\@`.[@@@@@@...... .=`@@@@@^..^.... + ....`....[@@@O\.[,..........OO@@@@@^.,[[.... + ............\@@@\`...,`**,]@@@@@@@^......... +.. .,@@@@@@@@@@@@@@@@@@/... + ..O@@@@@@@@@@@@@@@@@^... + ..O@@@@@@^...=@@@@@@@... + ..@@@@@@@\...=@@@@@@@^.. + .=@@@@@@@@...=@@@@@@@O.. + .=@@@@@@@@`..=@@@@@@@@.. + .=@@@O@@@@^..=@@OO@@@@^. + .O@OOOOO@O^..=@OOOOOOO^. + .Oo/[\O/\O@..=/[\O/\o*O. + .O^......=O...^......*/. + .=\.....]O^...\\...]//.. .. ........ \ No newline at end of file diff --git a/helper/spark-dwine-helper/scale-set-helper/get-scale.sh b/helper/spark-dwine-helper/scale-set-helper/get-scale.sh new file mode 100755 index 0000000..13d74ba --- /dev/null +++ b/helper/spark-dwine-helper/scale-set-helper/get-scale.sh @@ -0,0 +1,86 @@ +#/bin/bash +source ${SHELL_DIR}/bashimport/transhell.bashimport +load_transhell_debug + +#########>>>>>>>函数段 +Get_Dist_Name() +{ + if grep -Eqii "Deepin" /etc/issue || grep -Eq "Deepin" /etc/*-release; then + DISTRO='Deepin' + elif grep -Eqi "UnionTech" /etc/issue || grep -Eq "UnionTech" /etc/*-release; then + DISTRO='UniontechOS' + elif grep -Eqi "UOS" /etc/issue || grep -Eq "UOS" /etc/*-release; then + DISTRO='UniontechOS' + else + DISTRO='OtherOS' + fi +} +#########<<<<<<< + +if [ $# -lt 1 ]; then +echo "无参数,无法启动。这是一个set-wine-scale的组件,一般来说,你不会需要单独启动这个脚本" +echo "请参考set-wine-scale.sh使用" +echo "参数为CONTAINER_PATH" +echo "只读取第一个,其他参数会被放弃" +fi + +CONTAINER_PATH="$1" + +if [ ! -f "$CONTAINER_PATH/user.reg" ];then + echo "错误:找不到user.reg,退出。你应当在文件解压结束后调用此脚本" + echo "E: Can not find user.reg. Exit. You should use this script after the extraction" + exit 1 +fi + + +mkdir -p $HOME/.config/spark-wine/ +#####全局参数位置 +#####能到这一步的说明已经是没有自定义参数了,直接读全局覆盖没问题 +##### + +if [ -f "$HOME/.config/spark-wine/scale.txt" ];then + cat $HOME/.config/spark-wine/scale.txt > $CONTAINER_PATH/scale.txt + echo "检测到已经设置过全局参数,直接复制" + echo "全局参数的位置在$HOME/.config/spark-wine/scale.txt,如果需要更换请删除此文件重新生成" + exit +fi + + +Get_Dist_Name +if [ "$DISTRO" = "UniontechOS" ];then +echo 1.0 > $HOME/.config/spark-wine/scale.txt +cat $HOME/.config/spark-wine/scale.txt > $CONTAINER_PATH/scale.txt +#####就是1倍缩放 +exit +fi + + + +dimensions=`xdpyinfo | grep dimensions | sed -r 's/^[^0-9]*([0-9]+x[0-9]+).*$/\1/'` +scale_factor=`zenity --list \ + --width=700 \ + --height=350 \ + --title="${TRANSHELL_CONTENT_YOUR_DIMENSION_IS} $dimensions ${TRANSHELL_CONTENT_PLEASE_CHOOSE_ONE_BELOW}" \ + --column="${TRANSHELL_CONTENT_OPTION}" \ + 1.0 \ + 1.25 \ + 1.5 \ + 1.75 \ + 2.0 \ + 2.5 \ + 3.0 \ + 3.5 \ + 4.0` + +case "$scale_factor" in + "") + zenity --info --text="${TRANSHELL_CONTENT_1_SCALE_AS_DEFAULT}${TRANSHELL_CONTENT_YOU_CAN_USE_SPARK_WINE_HELPER_SETTINGS_TO_ADJUST}" --width=500 --height=150 + scale_factor="1.0" + ;; + *) +zenity --info --text="${TRANSHELL_CONTENT_SCALE_IS} $scale_factor ${TRANSHELL_CONTENT_SAVED}!${TRANSHELL_CONTENT_YOU_CAN_USE_SPARK_WINE_HELPER_SETTINGS_TO_ADJUST}" --width=500 --height=150 + ;; +esac +echo "$scale_factor" > $HOME/.config/spark-wine/scale.txt +cat $HOME/.config/spark-wine/scale.txt > $CONTAINER_PATH/scale.txt + diff --git a/helper/spark-dwine-helper/scale-set-helper/set-wine-scale.sh b/helper/spark-dwine-helper/scale-set-helper/set-wine-scale.sh new file mode 100755 index 0000000..65b9616 --- /dev/null +++ b/helper/spark-dwine-helper/scale-set-helper/set-wine-scale.sh @@ -0,0 +1,210 @@ +#!/bin/bash + +help() { + cat < $CONTAINER_PATH/scale.txt + wine_scale=`cat $CONTAINER_PATH/scale.txt` + echo "检测到的缩放倍数为:$wine_scale" + echo "Scale is $wine_scale" +fi +else +wine_scale=`cat $CONTAINER_PATH/scale.txt` + +echo "检测到的缩放倍数为:$wine_scale" +echo "Scale is $wine_scale" + + +fi +#####非deepin发行版似乎没有这个变量,暂时不清楚这个变量是哪个组件做的 + + + +else +#######指定了缩放倍数 +echo "使用了--set-scale-factor,直接指定" +echo "--set-scale-factor detected. Arrange directly" + + +if [ "$appointed_scale_factor" != "1.0" ] && [ "$appointed_scale_factor" != "1.25" ] && [ "$appointed_scale_factor" != "1.5" ] && [ "$appointed_scale_factor" != "1.75" ] && [ "$appointed_scale_factor" != "2.0" ] && [ "$appointed_scale_factor" != "2.5" ] && [ "$appointed_scale_factor" != "3.0" ] && [ "$appointed_scale_factor" != "3.5" ] && [ "$appointed_scale_factor" != "4.0" ];then +echo "无法识别的倍数:$appointed_scale_factor,请参看$0 -h" +echo "Unrecognizable number. Use $0 -h to get help" +exit 1 +fi +#######没问题了再用 +echo "$appointed_scale_factor" > $CONTAINER_PATH/scale.txt +wine_scale=`cat $CONTAINER_PATH/scale.txt` + +fi + +########开始设置 +########如果环境变量里没指定了APPRUN_CMD(在run.sh中)就替换,如果有就直接用来设置 + +if [ "$APPRUN_CMD" = "" ];then +echo "没有检测到APPRUN_CMD环境变量,执行sed替换。如果要使用wine原生提供的方法,请在环境变量中指定(export)" +case "$wine_scale" in + 1.0*) + reg_text="\"LogPixels\"=dword:00000060" + ;; + 1.25*) + reg_text="\"LogPixels\"=dword:00000078" + ;; + 1.5*) + reg_text="\"LogPixels\"=dword:00000090" + ;; + 1.75*) + reg_text="\"LogPixels\"=dword:000000A8" + ;; + 2.0*) + reg_text="\"LogPixels\"=dword:000000C0" + ;; + 2.5*) + reg_text="\"LogPixels\"=dword:000000F0" + ;; + 3.0*) + reg_text="\"LogPixels\"=dword:00000120" + ;; + 3.5*) + reg_text="\"LogPixels\"=dword:00000150" + ;; + 4.0*) + reg_text="\"LogPixels\"=dword:00000180" + ;; + *) + reg_text="\"LogPixels\"=dword:00000060" + #可能不是Xorg + ;; + esac + +#####根据scale设置dword值 + + +LogPixels_line=(`sed -n -e "/"LogPixels"/=" $CONTAINER_PATH/user.reg`) +#####关键词行数取得 +until [ "${#LogPixels_line[@]}" = "0" ];do + + +line_num=${LogPixels_line[0]} + +sed -i "$line_num"c\ "$reg_text" "$CONTAINER_PATH/user.reg" +LogPixels_line=(${LogPixels_line[@]:1}) +done + +echo "已经完成替换。位置:$CONTAINER_PATH/user.reg" +echo "在以下行数进行了替换,内容为$reg_text" +echo `sed -n -e "/"LogPixels"/=" $CONTAINER_PATH/user.reg` +echo "---------------------------------------" + +else +#####用wine提供的方法 + +case "$wine_scale" in + 1.0*) + dpi="96" + ;; + 1.25*) + dpi="120" + ;; + 1.5*) + dpi="144" + ;; + 1.75*) + dpi="168" + ;; + 2.0*) + dpi="192" + ;; + 2.5*) + dpi="240" + ;; + 3.0*) + dpi="288" + ;; + 3.5*) + dpi="336" + ;; + 4.0*) + dpi="384" + ;; + *) + dpi="96" + #可能不是Xorg或者是其他错误 + ;; + esac +echo "用$APPRUN_CMD执行指令" +echo "指令为" +echo "env WINEPREFIX="$CONTAINER_PATH" $APPRUN_CMD reg ADD 'HKCU\Control Panel\Desktop' /v LogPixels /t REG_DWORD /d $dpi /f" + +env WINEPREFIX="$CONTAINER_PATH" $APPRUN_CMD reg ADD 'HKCU\Control Panel\Desktop' /v LogPixels /t REG_DWORD /d $dpi /f + +fi diff --git a/helper/spark-dwine-helper/scale-set-helper/transhell/get-scale.sh_en_US.transhell b/helper/spark-dwine-helper/scale-set-helper/transhell/get-scale.sh_en_US.transhell new file mode 100644 index 0000000..597e9bd --- /dev/null +++ b/helper/spark-dwine-helper/scale-set-helper/transhell/get-scale.sh_en_US.transhell @@ -0,0 +1,8 @@ +#!/bin/bash +TRANSHELL_CONTENT_OPTION="Options" +TRANSHELL_CONTENT_YOUR_DIMENSION_IS="Your dimension is :" +TRANSHELL_CONTENT_PLEASE_CHOOSE_ONE_BELOW="Please choose one option below" +TRANSHELL_CONTENT_1_SCALE_AS_DEFAULT="Setting 1.0 scale as default" +TRANSHELL_CONTENT_SCALE_IS="Scale multiple is " +TRANSHELL_CONTENT_SAVED="saved." +TRANSHELL_CONTENT_YOU_CAN_USE_SPARK_WINE_HELPER_SETTINGS_TO_ADJUST="You can use spark wine helper settings to adjust settings" diff --git a/helper/spark-dwine-helper/scale-set-helper/transhell/get-scale.sh_zh_CN.transhell b/helper/spark-dwine-helper/scale-set-helper/transhell/get-scale.sh_zh_CN.transhell new file mode 100644 index 0000000..150a72b --- /dev/null +++ b/helper/spark-dwine-helper/scale-set-helper/transhell/get-scale.sh_zh_CN.transhell @@ -0,0 +1,8 @@ +#!/bin/bash +TRANSHELL_CONTENT_OPTION="选项" +TRANSHELL_CONTENT_YOUR_DIMENSION_IS="您的分辨率是:" +TRANSHELL_CONTENT_PLEASE_CHOOSE_ONE_BELOW="请在以下选项中选择一个" +TRANSHELL_CONTENT_1_SCALE_AS_DEFAULT="默认为1倍缩放。" +TRANSHELL_CONTENT_SCALE_IS="缩放倍数为" +TRANSHELL_CONTENT_SAVED="已保存" +TRANSHELL_CONTENT_YOU_CAN_USE_SPARK_WINE_HELPER_SETTINGS_TO_ADJUST="您可以使用星火wine助手设置来重新设置" diff --git a/helper/spark-dwine-helper/wine-app-launcher/wine-app-launcher.sh b/helper/spark-dwine-helper/wine-app-launcher/wine-app-launcher.sh new file mode 100755 index 0000000..7fc07e8 --- /dev/null +++ b/helper/spark-dwine-helper/wine-app-launcher/wine-app-launcher.sh @@ -0,0 +1,201 @@ +#!/bin/bash + +SHELL_DIR=$(dirname $(realpath $0)) + +# 函数:获取所有应用列表 +# 函数:获取所有应用列表 +get_apps_list() { + local apps_list=() + local app_dirs=($(find /opt/apps -mindepth 1 -maxdepth 1 -type d -exec test -f {}/files/run.sh \; -print)) + + if [ ${#app_dirs[@]} -eq 0 ]; then + zenity --error --text="请至少在应用商店安装一个wine应用后启动" --width 200 + exit 1 + fi + + for app_dir in "${app_dirs[@]}"; do + local package_name=$(basename "$app_dir") + local run_script="$app_dir/files/run.sh" + local bottle_name="无法读取" + local version="无法读取" + local use_spark="否" + + if [ -f "$run_script" ]; then + bottle_name=$(grep -oP 'BOTTLENAME="\K[^"]+' "$run_script") + version=$(grep -oP 'APPVER="\K[^"]+' "$run_script") + + if [ -z "$version" ]; then + version="无法读取" + fi + # START_SHELL_PATH=XXX/spark_run_v4.sh + if grep START_SHELL_PATH= "$run_script" | grep spark_run_v4.sh; then + use_spark="是" + fi + fi + + local app_name=$(get_app_name "$package_name") + + apps_list+=("$app_name" "$package_name" "$bottle_name" "$version" "$use_spark") + done + + echo "${apps_list[@]}" +} + +# 函数:获取应用名称 +get_app_name() { + local app_name_orig=$(grep -m 1 '^Name=' "/usr/share/applications/$1.desktop" | cut -d '=' -f 2) + local app_name_i18n=$(grep -m 1 "^Name\[$LANGUAGE\]\=" "/usr/share/applications/$1.desktop" | cut -d '=' -f 2) + local app_name="" + + if [ -z "$app_name_i18n" ]; then + app_name="$app_name_orig" + else + app_name="$app_name_i18n" + fi + + echo "$app_name" +} + +# 函数:选择应用 +select_app() { + local apps_list=($(get_apps_list)) + local app=$(zenity --print-column=2 --width=800 --height=600 --list --title="选择应用" --text="选择要执行的应用" --column="应用名" --column="包名" --column="容器名" --column="版本号" --column="是否使用星火wine助手" "${apps_list[@]}") + + if [ -n "$app" ]; then + local app_dir="/opt/apps/$app" + local run_script="$app_dir/files/run.sh" + local use_spark="否" + if if grep START_SHELL_PATH= "$run_script" | grep spark_run_v4.sh; then + use_spark="是" + fi + if [ "$use_spark" == "是" ]; then + select_spark_action "$app" "$(get_app_name $app)" + else + select_non_spark_action "$app" "$(get_app_name $app)" + fi + fi +} + +select_non_spark_action(){ + local app="$1" + local app_name="$2" + local options=("在终端中打开" "打开容器目录" "清理并重置容器目录" "更多操作") + local choice=$(zenity --width=800 --height=600 --list --title="选择操作" --text="选择要对$app_name执行的操作" --column="操作" "${options[@]}") + case "$choice" in + "在终端中打开") + local app_dir="/opt/apps/$app" + local run_script="$app_dir/files/run.sh" + x-terminal-emulator -e "$run_script" + ;; + "打开容器目录") + local app_dir="/opt/apps/$app" + local run_script="$app_dir/files/run.sh" + local bottle_name=$(grep -oP 'BOTTLENAME="\K[^"]+' "$run_script") + xdg-open file:///home/$(whoami)/.deepinwine/${bottle_name} + ;; + "清理并重置容器目录") + local app_dir="/opt/apps/$app" + local run_script="$app_dir/files/run.sh" + local bottle_name=$(grep -oP 'BOTTLENAME="\K[^"]+' "$run_script") + $SHELL_DIR/../kill.sh ${bottle_name} + rm -rf /home/$(whoami)/.deepinwine/${bottle_name}/* + zenity --info --width=300 --text="操作已完成,请重启Wine应用查看" + ;; + "更多操作") + if [ -e /usr/bin/deepin-wine-runner ];then + /usr/bin/deepin-wine-runner + elif [ $(command -v spark-store) ];then + spark-store spk://store/tools/spark-deepin-wine-runner + elif [ $(command -v deepin-home-appstore-client) ];then + xdg-open appstore://deepin-home-appstore-client?app_detail_info/spark-deepin-wine-runner + else + xdg-open https://gitee.com/gfdgd-xi/deep-wine-runner/releases + fi + + ;; + esac + +} + +# 函数:选择星火wine助手操作 +select_spark_action() { + local app="$1" + local app_name="$2" + local options=("在终端中打开" "打开容器目录" "清理并重置容器目录" "修改应用缩放" "修改全局缩放" "更多操作") + local choice=$(zenity --width=800 --height=600 --list --title="选择操作" --text="选择要对$app_name执行的操作" --column="操作" "${options[@]}") + + case "$choice" in + "在终端中打开") + local app_dir="/opt/apps/$app" + local run_script="$app_dir/files/run.sh" + x-terminal-emulator -e "$run_script" + ;; + "打开容器目录") + local app_dir="/opt/apps/$app" + local run_script="$app_dir/files/run.sh" + local bottle_name=$(grep -oP 'BOTTLENAME="\K[^"]+' "$run_script") + xdg-open file:///home/$(whoami)/.deepinwine/${bottle_name} + ;; + "清理并重置容器目录") + local app_dir="/opt/apps/$app" + local run_script="$app_dir/files/run.sh" + local bottle_name=$(grep -oP 'BOTTLENAME="\K[^"]+' "$run_script") + $SHELL_DIR/../spark_kill.sh ${bottle_name} + rm -rf /home/$(whoami)/.deepinwine/${bottle_name}/* + zenity --info --width=300 --text="操作已完成,请重启Wine应用查看" + ;; + "修改应用缩放") + select_scale_action "应用" "$app" + ;; + "修改全局缩放") + select_scale_action "全局" "$app" + ;; + "更多操作") + if [ -e /usr/bin/deepin-wine-runner ];then + /usr/bin/deepin-wine-runner + elif [ $(command -v spark-store) ];then + spark-store spk://store/tools/spark-deepin-wine-runner + elif [ $(command -v deepin-home-appstore-client) ];then + xdg-open appstore://deepin-home-appstore-client?app_detail_info/spark-deepin-wine-runner + else + xdg-open https://gitee.com/gfdgd-xi/deep-wine-runner/releases + fi + ;; + *) + ;; + esac +} + +# 函数:选择缩放操作 +select_scale_action() { + local scale_type="$1" + local app="$2" + local app_dir="/opt/apps/$app" + local run_script="$app_dir/files/run.sh" + local bottle_name=$(grep -oP 'BOTTLENAME="\K[^"]+' "$run_script") + local scale_factors=("1.0" "1.25" "1.5" "1.75" "2.0" "2.5" "3.0" "3.5" "4.0" "恢复默认") + local choice=$(zenity --width=800 --height=600 --list --title="选择缩放比例" --text="选择要设置的缩放比例" --column="比例" "${scale_factors[@]}") + + if [ -n "$choice" ]; then + local scale_factor="$choice" + + if [ "$scale_type" == "应用" ]; then + if [ "$scale_factor" == "恢复默认" ];then + rm $HOME/.deepinwine/$bottle_name/scale.txt + else + $SHELL_DIR/scale-set-helper/set-wine-scale.sh -s "$scale_factor" "$HOME/.deepinwine/$bottle_name" + fi + elif [ "$scale_type" == "全局" ]; then + if [ "$scale_factor" == "恢复默认" ];then + rm $HOME/.config/spark-wine/scale.txt + else + echo "$scale_factor" > "$HOME/.config/spark-wine/scale.txt" + find "$HOME/.deepinwine/" -name "scale.txt" -type f -print -exec rm -rf {} \; + fi + fi + fi + zenity --info --width=300 --text="操作已完成,请重启Wine应用查看" +} + +select_app + diff --git a/helper/spark-wine-banner b/helper/spark-wine-banner new file mode 100755 index 0000000..48c5ca9 --- /dev/null +++ b/helper/spark-wine-banner @@ -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 diff --git a/helper/spark_get_tray_window b/helper/spark_get_tray_window new file mode 100755 index 0000000..5a75296 --- /dev/null +++ b/helper/spark_get_tray_window @@ -0,0 +1,22 @@ +#!/usr/bin/env python3 +# vim: set ts=4 sw=4 fileencoding=utf-8: +# Luomio +# Filename: dde-first-run.py +# Create Date: 27-03, 13 + +import dbus + +def get_tray_window(): + bus = dbus.SessionBus() + traymanager = bus.get_object("com.deepin.dde.TrayManager", "/com/deepin/dde/TrayManager") + + traymanager_iface = dbus.Interface(traymanager, dbus_interface='org.freedesktop.DBus.Properties') + windows = traymanager_iface.Get("com.deepin.dde.TrayManager","TrayIcons") + str="window_id:" + for i in range(len(windows)): + str += '{:#x} '.format(windows[i]) + + print(str) + +if __name__ == "__main__": + get_tray_window() diff --git a/helper/spark_gl-wine/gdid3d.reg b/helper/spark_gl-wine/gdid3d.reg new file mode 100644 index 0000000000000000000000000000000000000000..d5cf5c2ced5b7143ae26ba835130338bdff3e830 GIT binary patch literal 210 zcmX|*OA5k35Cv;3c!!V!h#)RqsUQe0qESRe#81d3fkX&iUac8HhGx3nqhI&uy`!Y! zMomXcLdKm!t>sC>OJ%NGO0}G@)o*l5xst~W82bA3VjWnpbY{<)DYv|=OYtnD+7 p{xuIXJ1(Z(RepDbZf17SuKFYC6m!$4g-gT!P$?6uh}Wh6{a*uIBVqsm literal 0 HcmV?d00001 diff --git a/helper/spark_gl-wine/gl-wine32 b/helper/spark_gl-wine/gl-wine32 new file mode 100755 index 0000000000000000000000000000000000000000..06bc64df563eeb9989195a202854766ffbbd53d1 GIT binary patch literal 25667 zcmeHw3#{YVb(m&%Y)_f(c-%U%6T9$>yLL8~J^E1}I!SB(NlBzgiXtW1&6*S?QWQl> z{D_k3Hg?9FWU*dnliEQG7^u?(ZCa#306VSg!tFZi>^eX{Zjc0NkpeE9G_#G98m*l; zsq5*v($mbF@p|Je3bX}=4@Z~h-gAHF{?0w;NbiT(E_dnDrNZfXpzvS;VW0cZ$&7p|SBLs)nU(g8e3L-4YT>1Tj^6w(1c4izG}nE%Vy3xzNLi_2FK zcu;8y07V?ie*l87LHgGq4Z*2VC>@o7;OBt;=b-Hf7{C#n(v;s#9p#OMg7Wt+UqSHw zkcQxtu0lGX-|(RFQMWWmzu3Nqpe_U`KLmwRFt3`Ds%x^#Yr@#Ny!*8hk@ne7b1o^2?{*4(*Lo}!i#LFvA;d>GO z9RTS0*4E^zs_@D}`>yoY778#AhLsAM0gb|=kGjh! zd^Aa|IDPcd!jPFJX&mj$dFVuWVJKOv(<>KGr*srV@zPoqhIBl&(&@#tQ`{Yz-f9{$ z^JEoRJ5(p%MO9V`ZZPDhsS-yM(sANxl8_pOBG0R)qcELrQxrpcQIt%Ld6HSd9h{?p zWHxtEjASjQbQZ_c@R;Gysyih>J^eJEhc2pra^7RH2iKJ6!GZHngA3-RsO-+mp1Xb^8dr&Whm)SU;7BicQWe`uXOSojLWp>>O%SI_6LL@pQJ z3FD07t{w0P3)6Ev{m%KHD-<3mM1Z5`Yya}{m6t;m55b&y1)@PARQ+lcLS?T-AuQzA zqYyTiGZem}P%!8HL{ldo2ndDim5Mgcf~23a=Il??B-zVXs3W zG*Cd{s|tlK3SogLC`23i{pUUh?sMQi2kvv=J_qh|;64ZLbKw754)kw)@ygBDfDrk< zXa2ZUC_HiFYqxIQdhF@+fm@%u@tG^{eCAgDGDv;5-gE^%Q73P`2}z@eo7D542hv+_ zLQ<)R(w_g^0Y}oQhs4|GpFZG7O7-9}Q+WOt4>*!my)%S=^nfF&)q4ctPaSY1y?SMY zzxRM6Db{Nte09K)H0!+s;qN}+NUHS&gewOeNw=PY@OK<=B;|VOD)@Z)fFo(wdpE+* z4mgr}J=CG+uN`nC{dy~e7Y;a*g1s%mzw~v8coUL_z4s#g^9LMB#omu0{BwXm*?su( zjoV|^wsx$@k5X{{b_X3ew_WC%F}+~rVHgf@r&JjZ_Gh&_dZn~y{88=raTN%m>Q=-=!duxpP!{mS=i za5uQ|#fKh$)+<4Yvk&~<%^!qB|B_z-x{pEQ9)Aq6@Pog1<1=T7{^yVM-Vms7)*xlU zT~VI+jvJr3_TY^VKuu2wR~~;dfcWoI9!anH1x@YW{0I~S1dp?yc#?g;;$3+oOo@hn z>DJ~UzW_B|@^AUKZv7I<)PMZ36oQ-MLyq#}&q0-sJpxre@hOz7-1;Td7_)!#AO6o{ zk&k(RqjvovbQ=2MU3vrb_6f)iJbD1$A3sps+#L#hNbx4nZvWCD{}UfZnSm>s_r7E7 z-#V81+#wI*B9v&{ln$||t%d&0G9bh8u^s)JKYYwU99ow?q^i)ge{+m`g8c+)Jd4`( zDO6G6mG6Jmv5_#Ee+P)5g?|_7h2dn;u)>f%{S#*>_{?!sKl_sh>|Y(R&wc2C{W@ya zbL?-u`6p2D+ehs45LdYQE3gcq%uhm@KjSpE`JFz)O$DJw?2ld>EHYmM4yi) z(w0CUpOl_f(U9LN_iueW%KG@TH$L-f@2fuzh4hZydF+qUhfJ88H-G$)`&#AcCkDSW zt$jP1qOW}HWAORp^h=|6{@|m3?Mdrv&!CZbEwtn2t8O#n$-(;{|1fF`Y!tvKrGN8f z$C423XHiYRd&Hmr4`{3)@)1yz-Td4!^7nsS(;&;Q{g1=2KmU);N#2d}{p0g|J&05k z7=d@4NBnD4ITZ8`)RG^C$j9-AZ~oAE5p!tDO${PvPgVZl2Os}WumBZZyZM))C+~aa z4AeSL-cWuM3Via$mwp2R)p+h{sZfGh{|?elZb6ed1lf z(jPz{>BEOr2`qRWEcF{-e6@#S(YAT*SD$(E<8Ow_3$v$AZ|4!m{BJ{)pZ@9tkN@(g z|H~ULeeU0VH9h+zB7f}H($^fyx~3cp`?X_X>6;6ua^8EWyO15}uG~aR>DiZ|@-9KG zo7;4!`hNd|r>-5t0UG!3flTjv<`r)_OqeHvhab85l|O;4>tkO9u0MI>%kcTV&wl#r z52SCX0M9QEZlw>u^#C9G=P2#QbC;l5#MiSgz+)HzF|vt*i{rQY=Hje}&$SxKq~$s5n2Rf>89$#1N_ z@oXNR?V>C`8$y-H()k8VvFCLlLS#OD>)A3&(z9T`m_p+Y zg`6mk%}dTaYcmbMCq1*L(C&E%M$Z7o;?TM2Bn@_G76Fz84x*Ze^K@WDXA>)YcY5XmZ}{%;6kE9Tx(C0n z1?3}OhtK`Nty@U>QTVU7ZlSxK}%DO+*0C3)3F$s))7)w5VwGoB@;paA;2%MP9wa zU45wi%5O_AZwr6*yT0!&)ra56Ks0LGJO1$2t-pyD1p^)#{I!=okQKOBKA5due(eZ@S!xzB<79JtSc`y9B>f%_b|&w=|KxX*$69Qf8b@c9p4zVeFz z=qhl6?EL*J5dI~AzYYoDB6;vZM}E!vPhGz9oe&~_^4CF#40+!L@KwOkeFNcN`TDKs zi{LMgEVv)J0lu3MzW#?VUjf(4!Uv%|xE>s2`frC2J?NTI0Lu;7L<>&=pgRq?TNYje z@UxFyzJlIA0wMBEz5;+;FHs1VmFQg%4_2ImtLT>?d<)=^^pc;0|ND8a2Kd@@00zJe zU<2?Y06zur_W}M1z_S3q3Gkl*{s`dZU`P87fHwm)062h`+6crKG!BRlhwlskg8F)T zP#Str9Jse0=nlU5kZ=b0=|N+Fp6>=Y(R~)i*3|SK#Rr~f&&e@t8oBmOc5O#|BnEI#{Kl1US)_tV~6O_ zxV;4`yjU-aNAOMnG}h=HjrY5N?j7)cv0gyImR%@-oA0q+p!*2Wp+UIV4}_zOKcb@m z(ER#YAVBjD(V_1EpuQry_W+=_qIwSB!GO-4q4)FW#J?Qy6Wtlig)^W#+^^5+06moX z!x!idc2}6#mrjj?G(?A<9|Jg*ht``8jXK@)QTnOg51!K@z8t;-at6N12Lwgjq5CO# zN9CcU!*?~_c>JCQpoiyF-p>MdqWb_Csy_g9kD!S2=S24lfL{ebV|@5-$@M#RAyPz# z0NHZEjru@`_J^;26S`-C2Jsk`cla&}(4mGL_zthAEHobf_85Jn1E27(fuqi;O^|fE z-e12!hxQdTsdPke{+!zP9|1?*L-p!Frvn|T=k%P){sKgxctnRR%;>v7hduF}@I-ei z>pZ$(ObUfRI3W<8Sb6ipJ4*f#EWlqzeLjCqbZlc*4O z;^FF)b{AAcPx7`ZQlzT7{3I3kq`j;c@s8Wi9ij;gIXy`~3rl3?9?n&;?LCaFnIt0Trx zRi4e;jPA32i6VKjGGJ*>Y8z&KWmoIvu_;HG)Q|EGc_8kxJI=6|!Nv}?U{rNowQB4f zK3H0&>_ND(=M?1(waBiuSB|jQ3VYJQC|5QpQqsA=$Sjk{9NzFPnxZBG=?-ezX0jZ( zYMIRiZz4;+xRn?Llbys2Dkj8Xl0Vr>zLZP)D3=&AH+^dS(z>8UIe+TH_F@-2Xa%J^ zJh2<=tR+$Ifd}MP((dAcI;8URrsk$j>XbWKdkep(zz|*-d%CO2G)by0bJ-r(mN_vq zG%eaxYMA566R~32qy1KD?l#PLIH^eM5izcCV!6{6)^l>01*BrHvTAM6-#gWmEtld3 zUtbz*wZ&m|-5y4`NM#I+yRGJo3nQYH6;c&SFpC({ostqIq2@bnRh1+%;%PeJNp-+c zz%@)Ffd!Dr<}6jpRazp+TtIU`EB7dB#B%h$vLGXNm(A6->{^RdVb%*v?IcT8qFOwL zGK;x7k|>MhI!0A+oT zf1E69N{|SH9LW{3?2-~YphZ%21*=ulJ6bJZHL@kKb4)aw3zEp=c6~CNNjqu25VQ@u zr^q==E{6s`*7vP>aWBnGx}K%|6^m=uqTPw>o)lP-P{gPn7#>Rb*7fQsY-Ljm?Snc^ zdEesBgq^mg|J|JlJ8ezh;?6{~xma2-PTtHm%BHiHu}x21y8#(@>2glHz18f~_NRb`x(C4|>b> zgpGK&!KhhWG(^!FQImMGH8$H;JRnzC!rXo8I4TSeE|<6RV!kwbmA0!k7CD=9o&=lU ziW}vTN?Mh;Ubh3&wMtk#CR)j0ER9HA=@uPa?bTH+w6(Rr84Jr^V;&JoK%0Tz;AugZ za@QO8E=;@*Myg_48i}R?ClTkvZgZzQ0=b5`c>E#q6(C)ML*i*(w!a|~h@!@3fMABgF#G`x7~h@7UY{ksp; z_MQw*vsQrf6uWSs4lJ`0h@4y=nU&l!>mj_a#?^W-S+ll8EiUfLFaj_ld$J9?@`NQt zemI2wfoP)@f$Nmx=B}%d5h($KMVj6E8s2JhVzWw(;s28%`^4+|!u;hiGeV}lJRcb5m_Bxj}1)ub0KC*ks(InT}G^)!hL< zSz)Dlb*9MarpI(wL%fy|N>NyOu9tEWXW;EhgI2@!Drn7WVb7WlxwceocpF;vYtx#( zm>AgF^pv4L#!GFwqs*5|n@-v#hG;fQD~%p+C&|96$Ah{|FIr-^zoAQNgH6f{V%4J+ zuVJmRJ}LJTQ5Bb^fXH^n8sCQUezw5J#Z`?cP4p>M?=^Bk=xMvA=jPju-}Jl@*AAL= z%-D-6HWLDIg{yYO>DR>0q%|mSx|FSP>&!6bsxGWMlTxs^?O`Iq@fd}*ELTn4@YZUn z)R)N~Hutr#Sl*he-LkY|41FUNJD!IVY%T4sl&aNL1{RYpXfkI>((2Kq*@AV##S(c~ z!4Ae8g)0`Ma=~RlAOq1?&_J}FwOG<8A)K)8Z!N}EYs zIq#}>WCDrgdC`1fnc$*GfFYT{uFCrf^U?(@Bwt}5vK<60joKM2y92b(+%(44iEs?b>Rup1UCx>u8uDmWb;M(yfT5buo*3CIu>Q2o(ckNPh zzb℞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 literal 0 HcmV?d00001 diff --git a/helper/spark_gl-wine/run_gl.sh b/helper/spark_gl-wine/run_gl.sh new file mode 100755 index 0000000..0d940e0 --- /dev/null +++ b/helper/spark_gl-wine/run_gl.sh @@ -0,0 +1,19 @@ +#/bin/bash + +cd $(dirname $0) + +SHELL_DIR=$(dirname $(realpath $0)) +runtime_path=/opt/deepinwine/runtime-i386 +echo $runtime_path +if [ -f "$runtime_path/init_runtime.sh" ];then + source "$runtime_path/init_runtime.sh" + + init_runtime + init_32bit_config + echo "use deepinwine runtime" + "$WINELDPATH" ./gl-wine32 + exit $? +fi + +./gl-wine32 +exit $? diff --git a/helper/spark_kill.sh b/helper/spark_kill.sh new file mode 100755 index 0000000..96c0a2f --- /dev/null +++ b/helper/spark_kill.sh @@ -0,0 +1,272 @@ +#!/bin/bash +#####因为arm版本的deepin-wine-helper不带这个,又不想破坏x86兼容性,故改名 +APP_NAME="QQ" +LOG_FILE=$0 +PUBLIC_DIR="/var/public" + +UsePublicDir() +{ + if [ -z "$USE_PUBLIC_DIR" ]; then + echo "Don't use public dir" + return 1 + fi + if [ ! -d "$PUBLIC_DIR" ];then + echo "Not found $PUBLIC_DIR" + return 1 + fi + if [ ! -r "$PUBLIC_DIR" ];then + echo "Can't read for $PUBLIC_DIR" + return 1 + fi + if [ ! -w "$PUBLIC_DIR" ];then + echo "Can't write for $PUBLIC_DIR" + return 1 + fi + if [ ! -x "$PUBLIC_DIR" ];then + echo "Can't excute for $PUBLIC_DIR" + return 1 + fi + + return 0 +} + +WINE_BOTTLE="$HOME/.deepinwine" + +if UsePublicDir;then + WINE_BOTTLE="$PUBLIC_DIR" +fi + +get_wine_by_pid() +{ + wine_path=$(cat /proc/$1/maps | grep -E "\/wine$|\/wine64$|\/wine |\/wine64 " | head -1 | awk '{print $6}') + if [ -z "$wine_path" ];then + cat /proc/$1/cmdline| xargs -0 -L1 -I{} echo {} | grep -E "\/wine$|\/wine64$|\/wine |\/wine64 " | head -1 + else + echo $wine_path + fi +} + +is_wine_process() +{ + wine_module=$(get_wine_by_pid $1) + if [ -z "$wine_module" ];then + wine_module=$(cat /proc/$1/maps | grep -E "\/wineserver$" | head -1) + fi + echo $wine_module +} + +get_prefix_by_pid() +{ + WINE_PREFIX=$(xargs -0 printf '%s\n' < /proc/$1/environ | grep WINEPREFIX) + WINE_PREFIX=${WINE_PREFIX##*=} + if [ -z "$WINE_PREFIX" ] && [ -n "$(is_wine_process $1)" ]; then + #不指定容器的情况用默认容器目录 + WINE_PREFIX="$HOME/.wine" + fi + if [ -n "$WINE_PREFIX" ];then + WINE_PREFIX=$(realpath $WINE_PREFIX) + echo $WINE_PREFIX + fi +} + +get_wineserver() +{ + if [ -z "$1" ];then + return + fi + targ_prefix=$(realpath $1) + ps -ef | grep wineserver | while read server_info ;do + debug_log_to_file "get server info: $server_info" + server_pid=$(echo $server_info | awk '{print $2}') + server_prefix=$(get_prefix_by_pid $server_pid) + debug_log_to_file "get server pid $server_pid, prefix: $server_prefix" + + if [ "$targ_prefix" = "$server_prefix" ];then + server=$(echo $server_info | awk '{print $NF}') + if [ "-p0" = "$server" ];then + server=$(echo $server_info | awk '{print $(NF-1)}') + fi + debug_log_to_file "get server $server" + echo $server + return + fi + done +} + +init_log_file() +{ + if [ -d "$DEBUG_LOG" ];then + LOG_DIR=$(realpath $DEBUG_LOG) + if [ -d "$LOG_DIR" ];then + LOG_FILE="${LOG_DIR}/${LOG_FILE##*/}.log" + echo "" > "$LOG_FILE" + debug_log "LOG_FILE=$LOG_FILE" + fi + fi +} + +debug_log_to_file() +{ + if [ -d "$DEBUG_LOG" ];then + strDate=$(date) + echo -e "${strDate}:${1}" >> "$LOG_FILE" + fi +} + +debug_log() +{ + strDate=$(date) + echo "${strDate}:${1}" +} + +init_log_file + +get_bottle_path_by_process_id() +{ + PID_LIST="$1" + PREFIX_LIST="" + + for pid_var in $PID_LIST ; do + WINE_PREFIX=$(get_prefix_by_pid $pid_var) + #去掉重复项 + for path in $(echo -e $PREFIX_LIST) ; do + if [[ $path == "$WINE_PREFIX" ]]; then + WINE_PREFIX="" + fi + done + if [ -d "$WINE_PREFIX" ]; then + debug_log_to_file "found $pid_var : $WINE_PREFIX" + PREFIX_LIST+="\n$WINE_PREFIX" + fi + done + echo -e $PREFIX_LIST +} + +get_pid_by_process_name() +{ + PID_LIST="" + for pid_var in $(ps -ef | grep -E -i "$1" | grep -v grep | awk '{print $2}');do + #通过判断是否加载wine来判断是不是wine进程 + if [ -n "$(is_wine_process $pid_var)" ];then + PID_LIST+=" $pid_var" + fi + done + echo "$PID_LIST" +} + +get_bottle_path_by_process_name() +{ + PID_LIST=$(get_pid_by_process_name $1) + debug_log_to_file "get pid list: $PID_LIST" + get_bottle_path_by_process_id "$PID_LIST" +} + +get_bottle_path() +{ + if [ -z "$1" ];then + return 0 + fi + + if [ -f "$1/user.reg" ]; then + realpath "$1" + return 0 + fi + + if [ -f "$WINE_BOTTLE/$1/user.reg" ]; then + realpath "$WINE_BOTTLE/$1" + return 0 + fi + get_bottle_path_by_process_name "$1" +} + +kill_app() +{ + debug_log "try to kill $1" + for path in $(get_bottle_path $1); do + if [ -n "$path" ];then + WINESERVER=$(get_wineserver "$path") + + if [ -f "$WINESERVER" ];then + debug_log "kill $path by $WINESERVER" + env WINEPREFIX="$path" "$WINESERVER" -k + fi + + PID_LIST=$(get_pid_by_process_name "exe|wine") + for tag_pid in $PID_LIST; do + bottle=$(get_bottle_path_by_process_id "$tag_pid") + bottle=${bottle:1} + if [ "$path" = "$bottle" ];then + echo "kill $tag_pid for $bottle" + kill -9 $tag_pid + fi + done + fi + done + + #Kill defunct process + ps -ef | grep -E "$USER.*exe.*" + ps -ef | grep -E "$USER.*exe.*" | grep -v grep | awk '{print $2}' | xargs -i kill -9 {} +} + +get_tray_window() +{ + $SHELL_DIR/spark_get_tray_window | awk -F: '{print $2}' +} + +get_stacking_window() +{ + xprop -root _NET_CLIENT_LIST_STACKING | awk -F# '{print $2}' | sed -e 's/, / /g' +} + +get_window_pid() +{ + for winid in $(echo "$1" | sed -e 's/ /\n/g') ; + do + xprop -id $winid _NET_WM_PID | awk -F= '{print $2}' + done +} + +get_window_bottle() +{ + debug_log_to_file "get_window_bottle $1" + PID_LIST=$(get_window_pid "$1") + debug_log_to_file "get_window_bottle pid list: $PID_LIST" + get_bottle_path_by_process_id "$PID_LIST" +} + +get_active_bottles() +{ + TRAYWINDOWS=$(get_tray_window) + STACKINGWINDOWS=$(get_stacking_window) + debug_log_to_file "tray window id: $TRAYWINDOWS" + debug_log_to_file "stacking window id: $STACKINGWINDOWS" + PID_LIST="$TRAYWINDOWS $STACKINGWINDOWS" + get_window_bottle "$PID_LIST" +} + +kill_exit_block_app() +{ + TAGBOTTLE=$(get_bottle_path $1) + debug_log "tag bottle: $TAGBOTTLE" + ACTIVEBOTTLES=$(get_active_bottles) + debug_log "active bottles: $ACTIVEBOTTLES" + + if [[ "$ACTIVEBOTTLES" != *"$TAGBOTTLE"* ]]; then + kill_app "$TAGBOTTLE" + fi +} + +#get_active_bottles +#exit + +debug_log "kill $1 $2" + +if [ -n "$1" ]; then + APP_NAME="$1" +fi + +if [ "$2" = "block" ]; then + kill_exit_block_app $APP_NAME $3 +else + kill_app $APP_NAME +fi diff --git a/helper/spark_run_v4.sh b/helper/spark_run_v4.sh new file mode 100755 index 0000000..8aae271 --- /dev/null +++ b/helper/spark_run_v4.sh @@ -0,0 +1,500 @@ +#!/bin/bash + +# Copyright (C) 2016 Deepin, Inc. +# Copyright (C) 2022 The Spark Project +# +# Author: Li LongYu +# Peng Hao +# +# Modifier: shenmo +# +# +SHELL_DIR=$(dirname $(realpath $0)) + +export SHELL_DIR +source ${SHELL_DIR}/bashimport/log-function.bashimport +source ${SHELL_DIR}/bashimport/transhell.bashimport +load_transhell_debug + +#########Preload functions +function get_app_name() { + local app_name_orig=$(grep -m 1 '^Name=' "/usr/share/applications/$1.desktop" | cut -d '=' -f 2) + local app_name_i18n=$(grep -m 1 "^Name\[$LANGUAGE\]\=" "/usr/share/applications/$1.desktop" | cut -d '=' -f 2) + local app_name="" + + if [ -z "$app_name_i18n" ]; then + app_name="$app_name_orig" + else + app_name="$app_name_i18n" + fi + + echo "$app_name" +} +######### Vars +BOTTLENAME="$1" +WINEPREFIX="$HOME/.deepinwine/$1" +APPDIR="/opt/apps/${DEB_PACKAGE_NAME}/files" +APPVER="" +APPTAR="files.7z" +BOTTLENAME="" +WINE_CMD="deepin-wine" +#这里会被后续覆盖 +LOG_FILE=$0 +PUBLIC_DIR="/var/public" +if [ -z $WINE_WMCLASS ];then +export WINE_WMCLASS="$DEB_PACKAGE_NAME" +fi +export WINE_APP_NAME=$(get_app_name ${DEB_PACKAGE_NAME}) +if [ -z "$WINE_APP_NAME" ];then +export WINE_APP_NAME=$BOTTLENAME +fi + + + + +if [ -e /opt/p7zip-legacy/bin/7z ];then +log.debug "Using p7zip-legacy as unpacker" +UNPACK_CMD=/opt/p7zip-legacy/bin/7z +else +UNPACK_CMD=7z +log.debug "Using system 7z as unpacker" +fi + + +if [ $APPRUN_CMD ]; then + WINE_CMD=$APPRUN_CMD +fi + +##################### + +if [ "$WINE_CMD" = "deepin-wine8-stable" ] && [ "$(arch)" != "x86_64" ];then + +WINE_CMD="${SHELL_DIR}/spark-dwine-helper/deepin-wine8-stable-wrapper/deepin-wine8-stable" +log.warn "Using deepin-wine8-stable wrapper to fix arm problem" +fi + + +##################### Functions + progressbar() + { + WINDOWID="" zenity --progress --title="$1" --text="$2" --pulsate --width=400 --auto-close --no-cancel || + WINDOWID="" zenity --progress --title="$1" --text="$2" --pulsate --width=400 --auto-close + } + + +_DeleteRegistry() +{ + env WINEPREFIX="$WINEPREFIX" $WINE_CMD reg DELETE "$1" /f &> /dev/null +} +#########功能:删除注册表 +init_log_file() +{ + if [ ! -d "$DEBUG_LOG" ];then + return + fi + + LOG_DIR=$(realpath $DEBUG_LOG) + if [ -d "$LOG_DIR" ];then + LOG_FILE="${LOG_DIR}/${LOG_FILE##*/}.log" + echo "" > "$LOG_FILE" + debug_log "LOG_FILE=$LOG_FILE" + fi +} + +debug_log_to_file() +{ + if [ -d "$DEBUG_LOG" ];then + echo -e "${1}" >> "$LOG_FILE" + fi +} + +debug_log() +{ + log.debug "${1}" +} +################log相关功能 +HelpApp() +{ + echo " Extra Commands:" + echo " -r/--reset Reset app to fix errors" + echo " -e/--remove Remove deployed app files" + echo " -h/--help Show program help info" +} +#############帮助文件 + +check_link() +{ + if [ ! -d "$1" ];then + echo "$1 不是目录,不能创建$2软连接" + return + fi + link_path=$(realpath "$2") + target_path=$(realpath "$1") + if [ "$link_path" != "$target_path" ];then + if [ -d "$2" ];then + mv "$2" "${2}.bak" + else + rm "$2" + fi + echo "修复$2软连接为$1" + ln -s -f "$1" "$2" + fi +} + +FixLink() +{ + if [ -d ${WINEPREFIX} ]; then + CUR_DIR=$PWD + cd "${WINEPREFIX}/dosdevices" + check_link ../drive_c c: + check_link / z: + check_link $HOME y: + cd "../drive_c/users/$USER" + check_link "$HOME/Desktop" Desktop + check_link "$HOME/Downloads" Downloads + # Link to Document +if [ -L "$WINEPREFIX/drive_c/users/$(whoami)/My Documents" ]; then + env WINEPREFIX="$WINEPREFIX" $WINE_CMD reg add 'HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders' /t REG_EXPAND_SZ /v Personal /d "%USERPROFILE%\My Documents" /f + +else + env WINEPREFIX="$WINEPREFIX" $WINE_CMD reg add 'HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders' /t REG_EXPAND_SZ /v Personal /d "%USERPROFILE%\Documents" /f + +fi + cd $CUR_DIR + #ls -l "${WINEPREFIX}/dosdevices" + fi +} +###########会在应用启动和解压时执行,驱动器绑定 +DisableWrite() +{ + if [ -d "${1}" ]; then + chmod +w "${1}" + rm -rf "${1}" + fi + + mkdir "${1}" + chmod -w "${1}" +} +########如果有该文件夹则删除,然后再创建一个不允许写入的 +is_autostart() +{ + AUTOSTART="/opt/deepinwine/tools/autostart" + if [[ -f "$SHELL_DIR/autostart" ]]; then + # 如果打包时自带 autostart,则使用自带的 + AUTOSTART="$SHELL_DIR/autostart" + fi + if [ -f "$AUTOSTART.all" ]&&[ -f "/opt/apps/$1/files/run.sh" ];then + return 0 + fi + + if [ -f $AUTOSTART ];then + grep -c "$1" $AUTOSTART > /dev/null + return $? + fi + + return 1 +} +#########自动启动相关,等用到了再研究 + +Test_GL_wine() +{ + gl_wine_path="${SHELL_DIR}/spark_gl-wine" + + #如果不支持32的GLX,d3d改为gdi的实现 + if [[ ! -f "${WINEPREFIX}/.init_d3d" ]];then + if [[ $WINE_CMD == *"deepin-wine8-stable"* ]];then + gl_wine="${gl_wine_path}/gl-wine64" + else + gl_wine="${gl_wine_path}/run_gl.sh" + fi + + run_gl=`${gl_wine} 2>&1` + + #如果opengl测试程序运行失败,所有进程的渲染方式改为gdi渲染模式 + if [ $? != 0 ];then + WINEPREFIX="$WINEPREFIX" $WINE_CMD regedit /S "${gl_wine_path}/gdid3d.reg" + fi + + touch "${WINEPREFIX}/.init_d3d" + fi +} +urldecode() { : "${*//+/ }"; echo -e "${_//%/\\x}"; } +#######url转义 + +#arg 1: windows process file path +#arg 2-*: windows process args +CallProcess() +{ + #get file full path + path="$1" + path=$(echo ${path/c:/${WINEPREFIX}/drive_c}) + path=$(echo ${path//\\/\/}) + + #kill bloack process + is_autostart $DEB_PACKAGE_NAME + autostart=$? + if [[ $autostart -ne 0 ]] && [[ "$1" != *"pluginloader.exe" ]];then + $SHELL_DIR/spark_kill.sh "$BOTTLENAME" block + fi + #run gl-wine for test opengl + get_arch=`uname -m` + if [[ $get_arch = "x86_64" ]];then + Test_GL_wine + fi + #change current dir to excute path + path=$(dirname "$path") + cd "$path" + pwd + + #Set default mime type + if [ -n "$MIME_TYPE" ]; then + xdg-mime default "$DEB_PACKAGE_NAME".desktop "$MIME_TYPE" + fi + # Disable winemenubuilder + env WINEPREFIX="$WINEPREFIX" $WINE_CMD reg add 'HKEY_CURRENT_USER\Software\Wine\DllOverrides' /v winemenubuilder.exe /f + + + + + + debug_log "Starting process $* ..." + + ############# WARNING: Here is the modified content: Now will run set-dwine-scale.sh + ${SHELL_DIR}/spark-dwine-helper/scale-set-helper/set-wine-scale.sh "$WINEPREFIX" + $SHELL_DIR/spark-wine-banner & + env WINEPREFIX="$WINEPREFIX" $WINE_CMD "$@" + + #start autobottle + if [ $autostart -eq 0 ];then + $SHELL_DIR/autostart_wine.sh $DEB_PACKAGE_NAME + fi +} +###通用启动APP逻辑。对于没有被case捕捉的非适配APP,则直接执行此部分。似乎已经有了防止残留的功能 +###一些自定义的应用不会使用这个启动,而另一些则会调用这个 +###有设置mimetype和自动启动(这个暂时没分析)的功能 + +###########专属优化段: + + +UnixUriToDosPath() +{ + OPEN_FILE="$1" + if [ -f "$OPEN_FILE" ]; then + OPEN_FILE=$(realpath "$OPEN_FILE") + OPEN_FILE="z:$OPEN_FILE" + OPEN_FILE=$(echo $OPEN_FILE | sed -e 's/\//\\\\/g') + fi + echo $OPEN_FILE +} + +#arg 1: exec file path +#arg 2: autostart ,or exec arg 1 +#arg 3: exec arg 2 + +#### CallApp段,根据容器名找专属优化,没有就走通用启动 +CallApp() +{ + + + + FixLink + debug_log "CallApp $BOTTLENAME arg count $#: $*" + if [ -f "/opt/apps/${DEB_PACKAGE_NAME}/files/pre_run.sh" ];then + source "/opt/apps/${DEB_PACKAGE_NAME}/files/pre_run.sh" + CallPreRun "$@" + fi +if [ -e "/opt/deepinwine/tools/spark_run_v4_app_configs/${BOTTLENAME}.sh" ];then +APP_CONFIG_PATH="/opt/deepinwine/tools/spark_run_v4_app_configs/${BOTTLENAME}.sh" +else +APP_CONFIG_PATH="${SHELL_DIR}/spark_run_v4_app_configs/${BOTTLENAME}.sh" +fi +if [ -f "$APP_CONFIG_PATH" ]; then + echo "执行 ${BOTTLENAME}.sh ..." + source $APP_CONFIG_PATH +else + echo "$APP_CONFIG_PATH 文件不存在,执行通用启动" + CallProcess "$@" +fi + + +} +ExtractApp() +{ + + +local tmp_log=$(mktemp) + mkdir -p "$1" + (${UNPACK_CMD} x "$APPDIR/$APPTAR" -o"$1" -bsp1 -bb1 -bse2 | grep --line-buffered -oP "(\d+(\.\d+)?(?=%))" > $tmp_log)& + + cmd_pid=$! +(while kill -0 $cmd_pid 2> /dev/null; do + tail -n 1 "${tmp_log}" + sleep 1 + done)| zenity --progress --title="${TRANSHELL_CONTENT_SPARK_WINDOWS_COMPATIBILITY_TOOL}" --text="${TRANSHELL_CONTENT_UNPACKING} $WINE_APP_NAME..." --width=600 --auto-close --no-cancel +rm $tmp_log + + + mv "$1/drive_c/users/@current_user@" "$1/drive_c/users/$USER" + sed -i "s#@current_user@#$USER#" $1/*.reg + FixLink +} +DeployApp() +{ + ExtractApp "$WINEPREFIX" + + + echo "$APPVER" > "$WINEPREFIX/PACKAGE_VERSION" + +} +RemoveApp() +{ + rm -rf "$WINEPREFIX" +} +ResetApp() +{ + debug_log "Reset $PACKAGENAME....." + read -p "* Are you sure?(Y/N)" ANSWER + if [ "$ANSWER" = "Y" -o "$ANSWER" = "y" -o -z "$ANSWER" ]; then + EvacuateApp + DeployApp + CallApp + fi +} +UpdateApp() +{ + if [ -d "${WINEPREFIX}.tmpdir" ]; then + rm -rf "${WINEPREFIX}.tmpdir" + fi + if [ -f "$WINEPREFIX/PACKAGE_VERSION" ] && [ "$(cat "$WINEPREFIX/PACKAGE_VERSION")" = "$APPVER" ]; then + return + fi + + if [ -f "/opt/apps/${DEB_PACKAGE_NAME}/files/pre_update.sh" ];then + source "/opt/apps/${DEB_PACKAGE_NAME}/files/pre_update.sh" + CallPreUpdate + return + fi + + + case $BOTTLENAME in + "Deepin-Intelligent" | "Deepin-QQ" | "Deepin-TIM" | "Deepin-WeChat" | "Deepin-WXWork" | "Deepin-Dding" | "Wine-QQ" | "Spark-QQ" | "Spark-weixin") + rm -rf "$WINEPREFIX" + DeployApp + return + ;; + esac + + ExtractApp "${WINEPREFIX}.tmpdir" + $SHELL_DIR/spark_updater -s "${WINEPREFIX}.tmpdir" -c "${WINEPREFIX}" -v + + + rm -rf "${WINEPREFIX}.tmpdir" + echo "$APPVER" > "$WINEPREFIX/PACKAGE_VERSION" +} +RunApp() +{ + + + progpid=$(ps -ef | grep "zenity --progress --title=${BOTTLENAME}" | grep -v grep) + debug_log "run ${BOTTLENAME} progress pid $progpid" + if [ -n "$progpid" ]; then + debug_log "$BOTTLENAME is running" + exit 0 + fi + + if [ -d "$WINEPREFIX" ]; then + if [ ! -f "$WINEPREFIX/PACKAGE_VERSION" ] || [ "$(cat "$WINEPREFIX/PACKAGE_VERSION")" != "$APPVER" ]; then + UpdateApp + fi + else + DeployApp + fi + + CallApp "$@" +} + +CreateBottle() +{ + if [ -d "$WINEPREFIX" ]; then + if [ ! -f "$WINEPREFIX/PACKAGE_VERSION" ] || [ "$(cat "$WINEPREFIX/PACKAGE_VERSION")" != "$APPVER" ]; then + UpdateApp + fi + else + DeployApp + fi +} + +ParseArgs() +{ + if [ $# -eq 4 ];then + RunApp "$3" + elif [ -f "$5" ];then + if [ -n "$MIME_EXEC" ];then + RunApp "$MIME_EXEC" "$(UnixUriToDosPath "$5")" "${@:6}" + else + RunApp "$3" "$(UnixUriToDosPath "$5")" "${@:6}" + fi + else + RunApp "$3" "${@:5}" + fi +} + +#init_log_file + + + + + +#####准备启动进程,分析在 https://blog.shenmo.tech/post/deepin-wine6%E7%9A%84run_v4%E8%84%9A%E6%9C%AC%E6%8E%A2%E7%B4%A2%E5%90%AF%E5%8A%A8%E6%96%B9%E5%BC%8F/ +if [ $# -lt 3 ]; then + debug_log "参数个数小于3个" + exit 0 +fi + + +APPDIR="/opt/apps/${DEB_PACKAGE_NAME}/files" +if [ -f "$APPDIR/files.md5sum" ];then + APPVER="$(cat $APPDIR/files.md5sum)" +else + APPVER="$2" +fi + +debug_log "Run $*" + + +#执行lnk文件通过判断第5个参数是否是“/Unix”来判断 +if [ "$4" == "/Unix" ];then + RunApp "$3" "$4" "$5" + exit 0 +fi + +if [ $# -lt 4 ]; then + RunApp "$3" + exit 0 +fi +case $4 in + "-r" | "--reset") + ResetApp + ;; + "-cb" | "--create") + CreateBottle + ;; + "-e" | "--remove") + RemoveApp + ;; + "-u" | "--uri") + ParseArgs "$@" + ;; + "-f" | "--file") + ParseArgs "$@" + ;; + "-h" | "--help") + HelpApp + ;; + *) + echo "Invalid option: $4" + echo "Use -h|--help to get help" + exit 1 + ;; +esac +exit 0 diff --git a/helper/spark_run_v4_app_configs/Deepin-CS6.sh b/helper/spark_run_v4_app_configs/Deepin-CS6.sh new file mode 100644 index 0000000..48470cf --- /dev/null +++ b/helper/spark_run_v4_app_configs/Deepin-CS6.sh @@ -0,0 +1,22 @@ + #get file full path + path="$1" + path=$(echo ${path/c:/${WINEPREFIX}/drive_c}) + path=$(echo ${path//\\/\/}) + + #kill bloack process + name="${path##*/}" + $SHELL_DIR/spark_kill.sh "$name" block + + #change current dir to excute path + path=$(dirname "$path") + cd "$path" + pwd + + #Set default mime type + if [ -n "$MIME_TYPE" ]; then + xdg-mime default "$DEB_PACKAGE_NAME".desktop "$MIME_TYPE" + fi + + debug_log_to_file "Starting process $* ..." + + CallProcess "$@" diff --git a/helper/spark_run_v4_app_configs/Deepin-Dding.sh b/helper/spark_run_v4_app_configs/Deepin-Dding.sh new file mode 100644 index 0000000..41e753c --- /dev/null +++ b/helper/spark_run_v4_app_configs/Deepin-Dding.sh @@ -0,0 +1,4 @@ + debug_log "run $1" + $SHELL_DIR/spark_kill.sh DingTalk block + + CallProcess "$@" diff --git a/helper/spark_run_v4_app_configs/Deepin-Evernote.sh b/helper/spark_run_v4_app_configs/Deepin-Evernote.sh new file mode 100644 index 0000000..09efcaf --- /dev/null +++ b/helper/spark_run_v4_app_configs/Deepin-Evernote.sh @@ -0,0 +1,9 @@ + #set -- "$1" "${2#file://*}" + local path=$(urldecode "$2") + path=${path/file:\/\//} + set -- "$1" "$path" + if [ "$path" ];then + CallProcess "$@" + else + CallProcess "$1" + fi diff --git a/helper/spark_run_v4_app_configs/Deepin-FastReadPDF.sh b/helper/spark_run_v4_app_configs/Deepin-FastReadPDF.sh new file mode 100644 index 0000000..09efcaf --- /dev/null +++ b/helper/spark_run_v4_app_configs/Deepin-FastReadPDF.sh @@ -0,0 +1,9 @@ + #set -- "$1" "${2#file://*}" + local path=$(urldecode "$2") + path=${path/file:\/\//} + set -- "$1" "$path" + if [ "$path" ];then + CallProcess "$@" + else + CallProcess "$1" + fi diff --git a/helper/spark_run_v4_app_configs/Deepin-Foxmail.sh b/helper/spark_run_v4_app_configs/Deepin-Foxmail.sh new file mode 100644 index 0000000..e9edb83 --- /dev/null +++ b/helper/spark_run_v4_app_configs/Deepin-Foxmail.sh @@ -0,0 +1,2 @@ + sed -i '/LogPixels/d' ${WINEPREFIX}/user.reg + CallProcess "$@" diff --git a/helper/spark_run_v4_app_configs/Deepin-MTXX.sh b/helper/spark_run_v4_app_configs/Deepin-MTXX.sh new file mode 100644 index 0000000..09efcaf --- /dev/null +++ b/helper/spark_run_v4_app_configs/Deepin-MTXX.sh @@ -0,0 +1,9 @@ + #set -- "$1" "${2#file://*}" + local path=$(urldecode "$2") + path=${path/file:\/\//} + set -- "$1" "$path" + if [ "$path" ];then + CallProcess "$@" + else + CallProcess "$1" + fi diff --git a/helper/spark_run_v4_app_configs/Deepin-QQ-Spark.sh b/helper/spark_run_v4_app_configs/Deepin-QQ-Spark.sh new file mode 120000 index 0000000..e3a1047 --- /dev/null +++ b/helper/spark_run_v4_app_configs/Deepin-QQ-Spark.sh @@ -0,0 +1 @@ +Deepin-QQ.sh \ No newline at end of file diff --git a/helper/spark_run_v4_app_configs/Deepin-QQ.sh b/helper/spark_run_v4_app_configs/Deepin-QQ.sh new file mode 100644 index 0000000..9f6edbb --- /dev/null +++ b/helper/spark_run_v4_app_configs/Deepin-QQ.sh @@ -0,0 +1,25 @@ +#!/bin/bash +if [ ! -f "$WINEPREFIX/../.QQ_run" ]; then + debug_log "first run time" + $SHELL_DIR/add_hotkeys + $SHELL_DIR/fontconfig + touch "$WINEPREFIX/../.QQ_run" + fi + + DisableWrite "${WINEPREFIX}/drive_c/Program Files/Tencent/QQ/Bin/QQLiveMPlayer" + DisableWrite "${WINEPREFIX}/drive_c/Program Files/Tencent/QQ/Bin/QQLiveMPlayer1" + DisableWrite "${WINEPREFIX}/drive_c/Program Files/Tencent/QzoneMusic" + + DisableWrite "${WINEPREFIX}/drive_c/Program Files/Tencent/QQBrowser" + DisableWrite "${WINEPREFIX}/drive_c/Program Files/Common Files/Tencent/QQBrowser" + DisableWrite "${WINEPREFIX}/drive_c/users/Public/Application Data/Tencent/QQBrowserBin" + DisableWrite "${WINEPREFIX}/drive_c/users/Public/Application Data/Tencent/QQBrowserDefault" + DisableWrite "${WINEPREFIX}/drive_c/users/${USER}/Application Data/Tencent/QQBrowserDefault" + + DisableWrite "${WINEPREFIX}/drive_c/users/Public/Application Data/Tencent/QQPCMgr" + DisableWrite "${WINEPREFIX}/drive_c/Program Files/Common Files/Tencent/QQPCMgr" + + DisableWrite "${WINEPREFIX}/drive_c/Program Files/Common Files/Tencent/HuaYang" + DisableWrite "${WINEPREFIX}/drive_c/users/${USER}/Application Data/Tencent/HuaYang" + + CallProcess "$@" diff --git a/helper/spark_run_v4_app_configs/Deepin-QQBydr.sh b/helper/spark_run_v4_app_configs/Deepin-QQBydr.sh new file mode 100644 index 0000000..2185462 --- /dev/null +++ b/helper/spark_run_v4_app_configs/Deepin-QQBydr.sh @@ -0,0 +1,3 @@ + debug_log "run $1" + $SHELL_DIR/spark_kill.sh QQMicroGameBox block + CallProcess "$1" -action:force_download -appid:1104632801 -pid:8 -bin_version:1.1.2.4 -loginuin: diff --git a/helper/spark_run_v4_app_configs/Deepin-QQGame.sh b/helper/spark_run_v4_app_configs/Deepin-QQGame.sh new file mode 100644 index 0000000..d707661 --- /dev/null +++ b/helper/spark_run_v4_app_configs/Deepin-QQGame.sh @@ -0,0 +1,4 @@ +#!/bin/bash + debug_log "run $1" + $SHELL_DIR/spark_kill.sh qqgame block + env WINEPREFIX="$WINEPREFIX" $WINE_CMD "$1" & diff --git a/helper/spark_run_v4_app_configs/Deepin-QQHlddz.sh b/helper/spark_run_v4_app_configs/Deepin-QQHlddz.sh new file mode 100644 index 0000000..158660f --- /dev/null +++ b/helper/spark_run_v4_app_configs/Deepin-QQHlddz.sh @@ -0,0 +1,3 @@ + debug_log "run $1" + $SHELL_DIR/spark_kill.sh QQMicroGameBox block + CallProcess "$1" -action:force_download -appid:363 -pid:8 -bin_version:1.1.2.4 -loginuin: diff --git a/helper/spark_run_v4_app_configs/Deepin-QQMnsj.sh b/helper/spark_run_v4_app_configs/Deepin-QQMnsj.sh new file mode 100644 index 0000000..1f86424 --- /dev/null +++ b/helper/spark_run_v4_app_configs/Deepin-QQMnsj.sh @@ -0,0 +1,3 @@ + debug_log "run $1" + $SHELL_DIR/spark_kill.sh QQMicroGameBox block + CallProcess "$1" -action:force_download -appid:1105856612 -pid:8 -bin_version:1.1.2.4 -loginuin: diff --git a/helper/spark_run_v4_app_configs/Deepin-QQSszb.sh b/helper/spark_run_v4_app_configs/Deepin-QQSszb.sh new file mode 100644 index 0000000..6a7c58b --- /dev/null +++ b/helper/spark_run_v4_app_configs/Deepin-QQSszb.sh @@ -0,0 +1,3 @@ + debug_log "run $1" + $SHELL_DIR/spark_kill.sh QQMicroGameBox block + CallProcess "$1" -action:force_download -appid:1105640244 -pid:8 -bin_version:1.1.2.4 -loginuin: diff --git a/helper/spark_run_v4_app_configs/Deepin-THS.sh b/helper/spark_run_v4_app_configs/Deepin-THS.sh new file mode 100644 index 0000000..317774f --- /dev/null +++ b/helper/spark_run_v4_app_configs/Deepin-THS.sh @@ -0,0 +1,23 @@ + $SHELL_DIR/spark_kill.sh ths block + + debug_log "Start run $1" + #get file full path + path="$1" + path=$(echo ${path/c:/${WINEPREFIX}/drive_c}) + path=$(echo ${path//\\/\/}) + + #kill bloack process + name="${path##*/}" + $SHELL_DIR/spark_kill.sh "$name" block + + #change current dir to excute path + path=$(dirname "$path") + cd "$path" + pwd + + #Set default mime type + if [ -n "$MIME_TYPE" ]; then + xdg-mime default "$DEB_PACKAGE_NAME".desktop "$MIME_TYPE" + fi + + CallProcess "$@" diff --git a/helper/spark_run_v4_app_configs/Deepin-TIM.sh b/helper/spark_run_v4_app_configs/Deepin-TIM.sh new file mode 100644 index 0000000..e840673 --- /dev/null +++ b/helper/spark_run_v4_app_configs/Deepin-TIM.sh @@ -0,0 +1,17 @@ +#!/bin/bash + if [ ! -f "$WINEPREFIX/../.QQ_run" ]; then + debug_log "first run time" + $SHELL_DIR/add_hotkeys +####似乎是给dde-control-center添加快捷键 + $SHELL_DIR/fontconfig +####暂时无法得知用途和用法 + # If the bottle not exists, run reg may cost lots of times + # So create the bottle befor run reg + env WINEPREFIX="$WINEPREFIX" $WINE_CMD uninstaller --list + touch $WINEPREFIX/../.QQ_run + fi + + CallProcess "$@" + + #disable Tencent MiniBrowser + _DeleteRegistry "HKCU\\Software\\Tencent\\MiniBrowser" diff --git a/helper/spark_run_v4_app_configs/Deepin-TencentVideo.sh b/helper/spark_run_v4_app_configs/Deepin-TencentVideo.sh new file mode 100644 index 0000000..d62d8de --- /dev/null +++ b/helper/spark_run_v4_app_configs/Deepin-TencentVideo.sh @@ -0,0 +1,5 @@ + if [ -f "${WINEPREFIX}/drive_c/Program Files/Tencent/QQLive/Upgrade.dll" ]; then + rm -rf "${WINEPREFIX}/drive_c/Program Files/Tencent/QQLive/Upgrade.dll" + fi + + CallProcess "$@" diff --git a/helper/spark_run_v4_app_configs/Deepin-WXWork.sh b/helper/spark_run_v4_app_configs/Deepin-WXWork.sh new file mode 100644 index 0000000..efac197 --- /dev/null +++ b/helper/spark_run_v4_app_configs/Deepin-WXWork.sh @@ -0,0 +1,9 @@ + if [ -d "${WINEPREFIX}/drive_c/users/${USER}/Application Data/Tencent/WXWork/Update" ]; then + rm -rf "${WINEPREFIX}/drive_c/users/${USER}/Application Data/Tencent/WXWork/Update" + fi + if [ -d "${WINEPREFIX}/drive_c/users/${USER}/Application Data/Tencent/WXWork/upgrade" ]; then + rm -rf "${WINEPREFIX}/drive_c/users/${USER}/Application Data/Tencent/WXWork/upgrade" + fi + #Support use native file dialog + + CallProcess "$@" diff --git a/helper/spark_run_v4_app_configs/Deepin-WangWang.sh b/helper/spark_run_v4_app_configs/Deepin-WangWang.sh new file mode 100644 index 0000000..85a0bf8 --- /dev/null +++ b/helper/spark_run_v4_app_configs/Deepin-WangWang.sh @@ -0,0 +1,9 @@ +#/bin/bash + chmod 700 "$WINEPREFIX/drive_c/Program Files/AliWangWang/9.12.10C/wwbizsrv.exe" + chmod 700 "$WINEPREFIX/drive_c/Program Files/Alibaba/wwbizsrv/wwbizsrv.exe" + if [ $# = 3 ] && [ -z "$3" ];then + EXEC_PATH="c:/Program Files/AliWangWang/9.12.10C/WWCmd.exe" + env WINEPREFIX="$WINEPREFIX" $WINE_CMD "$EXEC_PATH" "$2" & + else + CallProcess "$@" + fi diff --git a/helper/spark_run_v4_app_configs/Deepin-WeChat.sh b/helper/spark_run_v4_app_configs/Deepin-WeChat.sh new file mode 100644 index 0000000..2d7dbc5 --- /dev/null +++ b/helper/spark_run_v4_app_configs/Deepin-WeChat.sh @@ -0,0 +1,2 @@ + export DISABLE_RENDER_CLIPBOARD=1 + CallProcess "$@" diff --git a/helper/spark_run_v4_app_configs/Deepin-ZhuMu.sh b/helper/spark_run_v4_app_configs/Deepin-ZhuMu.sh new file mode 100644 index 0000000..800241a --- /dev/null +++ b/helper/spark_run_v4_app_configs/Deepin-ZhuMu.sh @@ -0,0 +1,18 @@ +#!/bin/bash + + #change current dir to excute path + path=$(dirname "$path") + cd "$path" + pwd + + #Set default mime type + if [ -n "$MIME_TYPE" ]; then + xdg-mime default "$DEB_PACKAGE_NAME".desktop "$MIME_TYPE" + fi + + debug_log_to_file "Starting process $* ..." + if [ -n "$2" ];then + env WINEPREFIX="$WINEPREFIX" $WINE_CMD "$1" "--url=$2" & + else + env WINEPREFIX="$WINEPREFIX" $WINE_CMD "$1" & + fi diff --git a/helper/spark_run_v4_app_configs/IE8.sh b/helper/spark_run_v4_app_configs/IE8.sh new file mode 100644 index 0000000..030360b --- /dev/null +++ b/helper/spark_run_v4_app_configs/IE8.sh @@ -0,0 +1,3 @@ + rm -f "$WINEPREFIX/system.reg" + cp $APPDIR/system.reg "$WINEPREFIX/system.reg" + CallProcess "$@" diff --git a/helper/spark_run_v4_app_configs/Spark-CloudMusic.sh b/helper/spark_run_v4_app_configs/Spark-CloudMusic.sh new file mode 100644 index 0000000..6ce0d0f --- /dev/null +++ b/helper/spark_run_v4_app_configs/Spark-CloudMusic.sh @@ -0,0 +1,4 @@ +#!/bin/bash +CallProcess "$@" +sleep 2 +/opt/apps/com.163.music.spark/files/disable_cloudmusic_shadows diff --git a/helper/spark_run_v4_app_configs/Spark-MailMaster.sh b/helper/spark_run_v4_app_configs/Spark-MailMaster.sh new file mode 100644 index 0000000..ab96276 --- /dev/null +++ b/helper/spark_run_v4_app_configs/Spark-MailMaster.sh @@ -0,0 +1,3 @@ +CallProcess "$@" +sleep 2 +/opt/apps/com.163.dashi.mailmaster.spark/files/disable_mailmaster_shadows diff --git a/helper/spark_run_v4_app_configs/Spark-MuBu.sh b/helper/spark_run_v4_app_configs/Spark-MuBu.sh new file mode 100644 index 0000000..90e8ade --- /dev/null +++ b/helper/spark_run_v4_app_configs/Spark-MuBu.sh @@ -0,0 +1,4 @@ + if [ -f "${WINEPREFIX}/drive_c/ProgramData/Microsoft/Windows/Start\ Menu/Programs/MuBu.lnk" ]; then + chmod 555 ${WINEPREFIX}/drive_c/ProgramData/Microsoft/Windows/Start\ Menu/Programs/MuBu.lnk + fi + CallProcess "$@" diff --git a/helper/spark_run_v4_app_configs/Spark-QQ.sh b/helper/spark_run_v4_app_configs/Spark-QQ.sh new file mode 120000 index 0000000..e3a1047 --- /dev/null +++ b/helper/spark_run_v4_app_configs/Spark-QQ.sh @@ -0,0 +1 @@ +Deepin-QQ.sh \ No newline at end of file diff --git a/helper/spark_run_v4_app_configs/Spark-QQMusic.sh b/helper/spark_run_v4_app_configs/Spark-QQMusic.sh new file mode 100644 index 0000000..c150b34 --- /dev/null +++ b/helper/spark_run_v4_app_configs/Spark-QQMusic.sh @@ -0,0 +1,16 @@ + if [ -e ${WINEPREFIX}/drive_c/Program\ Files/Tencent/QQMusic/QQMusic.exe ]; then + sleep 1 + rm -rf ${WINEPREFIX}/drive_c/Program\ Files/Tencent/QQMusic/*.log + else + mkdir ${WINEPREFIX}/drive_c/Program\ Files/Tencent/updatetemp + mv ${WINEPREFIX}/drive_c/Program\ Files/Tencent/QQMusic/*.dll ${WINEPREFIX}/drive_c/Program\ Files/Tencent/updatetemp + mv ${WINEPREFIX}/drive_c/Program\ Files/Tencent/QQMusic/*.exe ${WINEPREFIX}/drive_c/Program\ Files/Tencent/updatetemp + mv ${WINEPREFIX}/drive_c/Program\ Files/Tencent/QQMusic/*.rdb ${WINEPREFIX}/drive_c/Program\ Files/Tencent/updatetemp + mv ${WINEPREFIX}/drive_c/Program\ Files/Tencent/QQMusic/*.log ${WINEPREFIX}/drive_c/Program\ Files/Tencent/updatetemp + mv ${WINEPREFIX}/drive_c/Program\ Files/Tencent/QQMusic/QQMusic* ${WINEPREFIX}/drive_c/Program\ Files/Tencent + rm -rf ${WINEPREFIX}/drive_c/Program\ Files/Tencent/QQMusic + rm -rf ${WINEPREFIX}/drive_c/Program\ Files/Tencent/updatetemp + rm -rf ${WINEPREFIX}/drive_c/Program\ Files/Tencent/*.log + mv ${WINEPREFIX}/drive_c/Program\ Files/Tencent/QQMusic* ${WINEPREFIX}/drive_c/Program\ Files/Tencent/QQMusic + fi + CallProcess "$@" diff --git a/helper/spark_run_v4_app_configs/Spark-TIM.sh b/helper/spark_run_v4_app_configs/Spark-TIM.sh new file mode 120000 index 0000000..1f315b5 --- /dev/null +++ b/helper/spark_run_v4_app_configs/Spark-TIM.sh @@ -0,0 +1 @@ +Deepin-TIM.sh \ No newline at end of file diff --git a/helper/spark_run_v4_app_configs/Spark-WeCom.sh b/helper/spark_run_v4_app_configs/Spark-WeCom.sh new file mode 120000 index 0000000..785f287 --- /dev/null +++ b/helper/spark_run_v4_app_configs/Spark-WeCom.sh @@ -0,0 +1 @@ +Deepin-WXWork.sh \ No newline at end of file diff --git a/helper/spark_run_v4_app_configs/Spark-douyin.sh b/helper/spark_run_v4_app_configs/Spark-douyin.sh new file mode 100644 index 0000000..97512a9 --- /dev/null +++ b/helper/spark_run_v4_app_configs/Spark-douyin.sh @@ -0,0 +1,6 @@ + if [ -f "${WINEPREFIX}/drive_c/users/${USER}/Application Data/douyin" ]; then + rm "${WINEPREFIX}/drive_c/users/${USER}/Application Data/douyin" + mv ${WINEPREFIX}/drive_c/users/${USER}/Application\ Data/*.tmp ${WINEPREFIX}/drive_c/users/${USER}/Application\ Data/douyin + chmod 755 ${WINEPREFIX}/drive_c/users/${USER}/Application\ Data/douyin + fi + CallProcess "$@" diff --git a/helper/spark_run_v4_app_configs/Spark-ecloud.sh b/helper/spark_run_v4_app_configs/Spark-ecloud.sh new file mode 100644 index 0000000..0cde3c2 --- /dev/null +++ b/helper/spark_run_v4_app_configs/Spark-ecloud.sh @@ -0,0 +1,2 @@ + DisableWrite ${WINEPREFIX}/drive_c/users/${USER}/Temp + CallProcess "$@" diff --git a/helper/spark_run_v4_app_configs/Spark-flyele.sh b/helper/spark_run_v4_app_configs/Spark-flyele.sh new file mode 100644 index 0000000..d1a7372 --- /dev/null +++ b/helper/spark_run_v4_app_configs/Spark-flyele.sh @@ -0,0 +1,5 @@ + if [ -w ${WINEPREFIX}/drive_c/users/${USER}/Application\ Data/飞项/Crashpad/reports ]; then + rm -rf ${WINEPREFIX}/drive_c/users/${USER}/Application\ Data/飞项/Crashpad/reports/* + chmod 555 ${WINEPREFIX}/drive_c/users/${USER}/Application\ Data/飞项/Crashpad/reports + fi + CallProcess "$@" diff --git a/helper/spark_run_v4_app_configs/Spark-weixin.sh b/helper/spark_run_v4_app_configs/Spark-weixin.sh new file mode 100644 index 0000000..d4d3b7b --- /dev/null +++ b/helper/spark_run_v4_app_configs/Spark-weixin.sh @@ -0,0 +1,37 @@ +echo +echo "⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⣾⡟⠉⠻⣷⡄⠀⠀⠀⠀⠀⠀⢀⣀⣀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀ +⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⣾⣿⣴⣶⣶⣿⣿⡄⠀⠀⢀⣤⣾⠿⠻⣿⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀ +⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⣾⣿⣿⣿⣿⣿⣿⣿⣿⣤⣾⣿⣏⡁⠀⠀⣿⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀ +⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣼⡿⢿⣿⣯⣀⣿⣿⡿⢿⣿⣿⣿⣿⣿⣷⣄⣿⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀ +⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢸⣿⣿⣶⣬⡙⠿⠋⣡⣶⣿⣿⣿⣿⣿⣿⣿⣿⣿⠇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀ +⠀⠀⠀⠀⠀⠀⠀⣀⣀⣀⣀⣀⠀⠀⠀⠀⠀⠈⢻⣿⣿⠟⣁⣴⣤⡙⠻⣿⣿⣿⣿⣿⣿⣿⣿⡿⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀ +⠀⠀⠀⠀⠀⠀⠺⢿⣿⣿⣿⢿⠇⠀⠀⠀⠀⠀⠀⠹⣷⣾⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡿⠛⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀ +⠀⠀⠀⣖⣆⣀⣀⣀⣀⣀⣀⣀⡀⠀⠀⠀⠀⠀⠀⠀⠙⣿⣿⣿⣿⣿⣿⣿⣿⣿⡿⠟⠉⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀ +⠀⠀⠀⣿⠟⠛⠛⠛⠛⠛⠛⠛⠷⠿⠿⢿⣷⣶⣤⣤⣀⣸⣿⣿⣿⣿⣿⣿⠟⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀ +⠀⠀⠀⣿⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠉⠉⠛⢻⡏⠁⣈⢻⠙⣿⡆⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀ +⠀⠀⠀⣿⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠛⣲⡟⠞⢀⣿⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀ +⠀⠀⠀⣿⡇⠀⠀⠀⠀⢀⣀⣀⣤⣤⣤⣤⣤⣶⣶⣶⣶⣾⣿⣿⣿⣿⣿⣿⣿⣿⣶⣤⣄⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀ +⠀⠀⠀⣿⣷⣶⣾⡿⠿⠿⠛⢛⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣦⣄⠀⠀⠀⠀⠀⠀⠀⢀⣠⡤⣀⠀⠀⠀⠀⠀⠀ +⠀⠀⠀⠙⠋⠀⠀⠀⠀⢀⣴⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣷⡄⠀⠀⠀⢠⣾⣿⣿⣿⣿⡆⠀⠀⠀⠀⠀ +⠀⠀⠀⠀⠀⠀⠀⠀⣠⣿⣿⣿⣿⣥⣼⣿⣿⣿⣿⣿⣿⢿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣆⠀⠀⠸⠽⠻⣿⡿⠟⠁⠀⠀⠀⠀⠀ +⠀⠀⠀⠀⠀⠀⠀⣼⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣾⣿⣁⣼⣿⣿⣿⣿⣿⢻⣿⡀⠙⣿⣿⣿⣿⣿⣧⠀⠀⠀⠀⣀⣤⣤⣄⠀⠀⠀⠀⠀ +⠀⠀⠀⠀⠀⠀⢰⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣾⣿⣿⣶⣿⣿⣿⣿⣿⣿⣇⠀⠀⠀⢿⣿⣿⣿⠇⠀⠀⠀⠀ +⠀⠀⠀⠀⠀⠀⢸⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⢿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡄⠀⠀⠀⠉⠉⠁⠀⠀⠀⠀⠀ +⠀⠀⠀⠀⠀⢀⣾⣿⣿⣿⣿⣿⣿⣿⣿⡿⠿⠾⣿⣿⣿⣿⣿⣿⣿⡿⠷⣬⡻⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀ +⠀⠀⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣶⣄⠀⢘⣿⣿⣿⣿⣿⠏⠀⠀⣀⣤⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀ +⠀⠀⠻⣿⣿⣿⣿⣿⣿⣿⣿⠁⠀⠈⠙⢿⣿⣷⣾⣿⠿⣿⣿⣇⣤⣶⣿⣿⠿⠛⠋⠙⠻⣿⣿⣿⣿⣿⣿⣿⣿⣧⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀ +⠀⠀⠀⠀⠉⠻⣿⣿⣿⣿⣷⠀⠀⣠⣶⣿⠿⠉⠁⠀⠀⠀⠉⠉⠉⠻⣿⣷⣄⠀⠀⠀⠀⢸⣿⣿⣿⣿⣿⣿⣿⣿⣿⣶⣤⣤⣤⣤⠀⠀⠀⠀⠀ +⠀⠀⠀⠀⠀⠀⠙⠿⣿⣿⣿⣷⠿⡿⠋⠀⠀⠀⠀⣄⢀⣀⠀⠀⠀⠀⠀⠙⢿⣷⣄⠀⢀⣾⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡿⠛⠀⠀⠀⠀⠀ +⣀⣀⠀⠀⠀⠀⢀⣴⣿⣿⠛⠀⠀⢸⣧⡿⠀⠀⣸⠋⠋⠉⢻⡄⠀⠀⠀⠀⠀⠉⢁⣴⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡿⠟⠋⠁⠀⠀⠀⠀⠀⠀⠀ +⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣷⣄⠀⠀⠈⠀⠀⠀⢻⣀⣀⣀⣀⡿⠀⠀⠀⠀⠀⠀⠀⢉⣭⣭⣽⣿⣿⣿⣿⣿⣿⣿⣿⣦⣄⠀⠀⠀⠀⠀⣀⣤⡄ +⠘⢿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣦⣄⣀⠀⠀⠀⠉⠀⠀⠉⠀⠀⠀⠀⠀⢀⣀⣴⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⠃ +⠀⠈⠻⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⢟⣿⣿⣿⣿⣶⣶⡶⣶⣶⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡿⠃⠀ +⠀⠀⠀⠈⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡿⣿⢿⡸⣿⣿⣿⣿⣎⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡿⠋⠀⠀⠀ +⠀⠀⠀⢸⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣯⣽⣿⣿⡟⠁⠀⢙⣿⣿⣿⢿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡏⠉⠀⠀⠀⠀⠀⠀ +⠀⠀⠀⢸⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡿⣿⣿⣿⣿⣿⣦⣶⣿⣿⣿⣿⣿⡿⠿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⠇⠀⠀⠀⠀⠀⠀⠀ +⠀⠀⠀⠀⢿⣿⣿⣿⣿⣿⣿⣿⡿⠁⠀⠘⣿⣿⡿⠟⠉⢿⣯⣿⣿⣿⠁⠀⠀⠈⠻⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡿⠃⠀⠀⠀⠀⠀⠀⠀⠀ +⠀⠀⠀⠀⠀⠙⠿⣿⣿⣿⣿⣿⡇⠀⠀⢸⡟⠋⠀⠀⠀⠀⠙⠛⠋⢸⠀⠀⠀⠀⠀⠘⣿⣿⣿⣿⣿⣿⣿⡿⠿⠛⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀ +⠀⠀⠀⠀⠀⠀⠀⠀⠉⠉⢻⣿⠀⠀⠀⢸⡇⠀⠀⠀⠀⠀⠀⠀⠀⢸⡆⠀⠀⠀⠀⠀⢻⣿⣿⣿⣿⠟⠋⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀" + +echo "以此纪念2.4.0版本" +CallProcess "$@" diff --git a/helper/spark_run_v4_app_configs/Wine-QQ.sh b/helper/spark_run_v4_app_configs/Wine-QQ.sh new file mode 120000 index 0000000..e3a1047 --- /dev/null +++ b/helper/spark_run_v4_app_configs/Wine-QQ.sh @@ -0,0 +1 @@ +Deepin-QQ.sh \ No newline at end of file diff --git a/helper/spark_run_v4_app_configs/wxwork-spark-uk.sh b/helper/spark_run_v4_app_configs/wxwork-spark-uk.sh new file mode 120000 index 0000000..785f287 --- /dev/null +++ b/helper/spark_run_v4_app_configs/wxwork-spark-uk.sh @@ -0,0 +1 @@ +Deepin-WXWork.sh \ No newline at end of file diff --git a/helper/spark_updater b/helper/spark_updater new file mode 100755 index 0000000..92b22bb --- /dev/null +++ b/helper/spark_updater @@ -0,0 +1,42 @@ +#!/bin/bash + +# 检查是否提供了-c和-s选项 +if [[ ! "$*" =~ "-c" ]] || [[ ! "$*" =~ "-s" ]]; then + echo "用法: updater -c <目标目录> -s <源目录> [-v]" + exit 1 +fi + +# 解析命令行参数 +while getopts ":c:s:v" opt; do + case $opt in + c) + destination_dir=$OPTARG + ;; + s) + source_dir=$OPTARG + ;; + v) + verbose=true + ;; + \?) + echo "无效选项: -$OPTARG" >&2 + exit 1 + ;; + :) + echo "选项 -$OPTARG 需要一个参数." >&2 + exit 1 + ;; + esac +done + +# 从源目录复制文件到目标目录 +if [ "$verbose" = true ]; then + echo "正在从 $source_dir 复制文件到 $destination_dir" +fi + +# 使用cp命令覆盖同名文件 +cp -rf "$source_dir"/* "$destination_dir" + +echo "文件复制完成!" +exit 0 + diff --git a/helper/transhell/spark_run_v4.sh_en_US.transhell b/helper/transhell/spark_run_v4.sh_en_US.transhell new file mode 100644 index 0000000..0ea82ee --- /dev/null +++ b/helper/transhell/spark_run_v4.sh_en_US.transhell @@ -0,0 +1,3 @@ +#!/bin/bash +TRANSHELL_CONTENT_UNPACKING="Preparing the following APP:" +TRANSHELL_CONTENT_SPARK_WINDOWS_COMPATIBILITY_TOOL="Spark Windows APP Compatibility Helper" diff --git a/helper/transhell/spark_run_v4.sh_zh_CN.transhell b/helper/transhell/spark_run_v4.sh_zh_CN.transhell new file mode 100644 index 0000000..4dba224 --- /dev/null +++ b/helper/transhell/spark_run_v4.sh_zh_CN.transhell @@ -0,0 +1,4 @@ +#!/bin/bash +TRANSHELL_CONTENT_UNPACKING="正在为您准备以下应用:" +TRANSHELL_CONTENT_SPARK_WINDOWS_COMPATIBILITY_TOOL="星火Windows应用兼容助手" +