add: wine launcher

This commit is contained in:
2025-02-26 01:51:28 +08:00
parent 34eb09779e
commit 6c59b8378a
6 changed files with 77 additions and 10 deletions
@@ -0,0 +1,48 @@
#!/bin/bash
# ===== Log Functions with Colors =====
log.warn() { echo -e "[\e[33mWARN\e[0m]: \e[1m$*\e[0m"; }
log.error() { echo -e "[\e[31mERROR\e[0m]: \e[1m$*\e[0m"; }
log.info() { echo -e "[\e[96mINFO\e[0m]: \e[1m$*\e[0m"; }
log.debug() { echo -e "[\e[32mDEBUG\e[0m]: \e[1m$*\e[0m"; }
# Zenity wrapper function
gui_dialog() {
if command -v garma &>/dev/null; then
garma "$@"
else
zenity "$@"
fi
}
# Check if no arguments were passed
if [[ $# -eq 0 ]]; then
gui_dialog --info --text="使用方法:\nUsage:\n\nspark-wine <application.exe>\n\n请提供要运行的 Windows 应用程序。\nPlease provide the Windows application to run."
exit 1
fi
# Check if spark-wine is installed
if ! command -v spark-wine &>/dev/null; then
gui_dialog --question --text="您尚未安装 spark-wine ,是否安装以运行 Windows 应用?\nYou haven't installed spark-wine yet. Would you like to install it to run Windows applications?"
if [[ $? -ne 0 ]]; then
log.error "User refused to install. Exiting."
exit 1
fi
# Install spark-wine with progress indicator
pkexec bash -c "aptss update && aptss install spark-wine spark-wine-mono -y" | gui_dialog --progress --pulsate --auto-close --no-cancel --text="正在安装,请保持网络畅通,耐心等待\nInstalling, please keep network connection and wait patiently"
INSTALL_STATUS=${PIPESTATUS[0]}
# Check the installation status correctly
if [[ $INSTALL_STATUS -ne 0 ]]; then
gui_dialog --error --text="安装出错,请手动执行以下指令查看错误并反馈:\nError occurred during installation. Please execute the command below to view the error log:\n\nsudo aptss install spark-wine spark-wine-mono -y"
exit 1
fi
fi
# Run spark-wine with WINEPREFIX
export WINEPREFIX="$HOME/.wine"
spark-wine "$@"