#!/bin/bash # Author: PortWINE-Linux.ru . "$(dirname $(readlink -f "$0"))/runlib" ######################################################################## PORTPROTON_EXE=$(zenity --file-selection --file-filter=""*.exe" "*.bat"" \ --title="${sc_path}" --filename="${PORT_WINE_PATH}/data/pfx/drive_c/") if [ $? -eq 1 ];then exit 1; fi PORTPROTON_NAME="$(basename "${PORTPROTON_EXE}" | sed s/".exe"/""/g )" PORTPROTON_PATH="$( cd "$( dirname "${PORTPROTON_EXE}" )" >/dev/null 2>&1 && pwd )" if [ -x "`which wrestool 2>/dev/null`" ]; then wrestool -x --output="${PORTPROTON_PATH}/" -t14 "${PORTPROTON_EXE}" cp "$(ls -S -1 "${PORTPROTON_EXE}"*".ico" | head -n 1)" "${PORTPROTON_EXE}.ico" cp -f "${PORTPROTON_EXE}.ico" "${PORT_WINE_PATH}/data/img/${PORTPROTON_NAME}.ico" fi PORTPROTON_CMD="" PORTPROTON_CMD=$(zenity --entry --text "${sc_cmd}") if [ $? -eq 1 ];then exit 1; fi start_settings=`zenity --title "${ss_title}" --text "${ss_text}" --list --radiolist \ --column="${inst_set}" --column "${ss_ver}" --column "${ss_dr}" --width=500 --height=220 \ TRUE "DXVK" "${ss_ogl_3}" \ FALSE "VKD3D and OpenGL" "${ss_ogl_2}" ` if [ $? -eq 1 ];then exit 1; fi case $start_settings in "VKD3D and OpenGL") dxvk_ogl_var="off" ;; "DXVK") hud_settings=`zenity --list --title "HUD" --text "${hud_text}" --list --checklist \ --column="${inst_set}" --column="HUD info:" --column="${hud_info}" --width=800 --height=550 \ FALSE "fps" "${hud_fps}" \ FALSE "devinfo" "${hud_devinfo}" \ FALSE "frametimes" "${hud_frametimes}" \ FALSE "submissions" "${hud_submissions}" \ FALSE "drawcalls" "${hud_drawcalls}" \ FALSE "pipelines" "${hud_pipelines}" \ FALSE "memory" "${hud_memory}" \ FALSE "gpuload" "${hud_gpuload}" \ FALSE "version" "${hud_version}" \ FALSE "api" "${hud_api}" \ FALSE "compiler" "${hud_compiler}" \ FALSE "samplers" "${hud_samplers}" ` if [ ! -z $hud_settings ]; then for hud_set in $hud_settings do echo "${hud_set}" >> "${PORT_WINE_TMP_PATH}/dxvk_on_shortcut" done sed -i "s/|/,/g" "${PORT_WINE_TMP_PATH}/dxvk_on_shortcut" read "hud_set" < "${PORT_WINE_TMP_PATH}/dxvk_on_shortcut" export dxvk_ogl_var="$hud_set" else dxvk_ogl_var="0" fi ;; esac ######################################################################## name_desktop="${PORTPROTON_NAME}" echo "[Desktop Entry]" > "${PORT_WINE_PATH}/${name_desktop}.desktop" echo "Name=${PORTPROTON_NAME}" >> "${PORT_WINE_PATH}/${name_desktop}.desktop" echo "Exec="env dxvk_ogl_var=$dxvk_ogl_var launch_parameters="${PORTPROTON_CMD}" PATH_TO_GAME=\""$PORTPROTON_PATH"\" sh \"${PORT_SCRIPTS_PATH}/start\" \"${PORTPROTON_EXE}\" "" \ >> "${PORT_WINE_PATH}/${name_desktop}.desktop" echo "Type=Application" >> "${PORT_WINE_PATH}/${name_desktop}.desktop" echo "Categories=Game" >> "${PORT_WINE_PATH}/${name_desktop}.desktop" echo "StartupNotify=true" >> "${PORT_WINE_PATH}/${name_desktop}.desktop" echo "Path="${PORT_SCRIPTS_PATH}/"" >> "${PORT_WINE_PATH}/${name_desktop}.desktop" echo "Icon="${PORT_WINE_PATH}/data/img/${PORTPROTON_NAME}.ico"" >> "${PORT_WINE_PATH}/${name_desktop}.desktop" chmod u+x "${PORT_WINE_PATH}/${name_desktop}.desktop" ######################################################################## `zenity --question --title "${inst_set}." --text "${ss_done}" --no-wrap ` > /dev/null 2>&1 if [ $? -eq "0" ]; then cp -f "${PORT_WINE_PATH}/${name_desktop}.desktop" /home/${USER}/.local/share/applications/ fi