diff --git a/data_from_portwine/changelog_eng b/data_from_portwine/changelog_eng index 3c8c702..ed7245c 100644 --- a/data_from_portwine/changelog_eng +++ b/data_from_portwine/changelog_eng @@ -2,6 +2,13 @@ You can help us in the development of the project on the website: https://boosty ----------------------------------------- Changelog: +###Scripts version 2093### +* updated "PROTON_STEAM" to version 7.0-1B +* updated "PROTON_GE" to version 7-10 +* implemented prefix backups (WINE SETTINGS -> CREATE PFX BACKUP) +* temporarily restore copies using RMB to *.ppack (backup image) and open with... PortProton +* implemented full support for Rosa Linux (the installer is in the repositories) + ###Scripts version 2092### * added separation of WINE and PORTPROTON settings in the main interface * added quick creation of backup copies of assembly scripts before updating them (SCRIPTS FROM BACKUP in the PORTPROTON SETTINGS tab) diff --git a/data_from_portwine/changelog_rus b/data_from_portwine/changelog_rus index 162671e..5846971 100755 --- a/data_from_portwine/changelog_rus +++ b/data_from_portwine/changelog_rus @@ -2,6 +2,13 @@ ----------------------------------------- История изменений: +###Scripts version 2093### +* обновлен "PROTON_STEAM" до версии 7.0-1B +* обновлен "PROTON_GE" до версии 7-10 +* реализовано создание резервных копий префиксов (WINE SETTINGS -> CREATE PFX BACKUP) +* времено востановление копий производится с помощью ПКМ на *.ppack (образ бэкапа) и открыть с помощью... PortProton +* реализованна полная поддержка Rosa Linux (установщик есть в офф. репозиториях) + ###Scripts version 2092### * добавлено разделение настроек WINE и PORTPROTON в основном интерфейсе * добавлено автоматическое создание резервных копий установленных скриптов, перед их обновлением (востановление копий реализовано в SCRIPTS FROM BACKUP во вкладке PORTPROTON SETTINGS) diff --git a/data_from_portwine/scripts/functions_helper b/data_from_portwine/scripts/functions_helper index 3877d51..cc5643f 100755 --- a/data_from_portwine/scripts/functions_helper +++ b/data_from_portwine/scripts/functions_helper @@ -1,4 +1,4 @@ -#!/bin/env bash +#!/usr/bin/env bash # Author: Castro-Fidel (PortWINE-Linux.ru) ######################################################################## pw_ping_test () { @@ -292,7 +292,11 @@ init_wine_ver () { export WINE="${WINEDIR}/bin/wine" export WINELOADER="${WINEDIR}/bin/wine" export WINESERVER="${WINEDIR}/bin/wineserver" - export WINEDLLPATH="${WINEDIR}/lib64/wine:${WINEDIR}/lib/wine" + if [[ -z "${PATH_TO_GAME}" ]] ; then + export WINEDLLPATH="${WINEDIR}/lib64/wine:${WINEDIR}/lib/wine" + else + export WINEDLLPATH="${WINEDIR}/lib64/wine:${WINEDIR}/lib/wine:${PATH_TO_GAME}" + fi if [[ -d "${WINEDIR}/files" && ! -d "${WINEDIR}/dist" ]] ; then chmod -R 755 "${WINEDIR}" @@ -348,6 +352,98 @@ init_wine_ver () { return 0 } +pw_init_runtime () { + if [[ ! -z "`cat /etc/*-release | grep -i opensuse`" ]] \ + || [[ ! -z "`cat /etc/*-release | grep -i centos`" ]] \ + || [[ ! -z "`cat /etc/*-release | grep -i rosa`" ]] \ + || [[ ! -z "`cat /etc/*-release | grep -i fedora`" ]] \ + || [[ ! -z "`cat /etc/*-release | grep -i gentoo`" ]] ; then + if check_symlink "${PW_WINELIB}/portable/lib/lib64" ; then + rm -fr "${PW_WINELIB}/portable/lib/lib64" + fi + if [[ ! -d "${PW_WINELIB}/portable/lib/lib64" ]] ; then + mv -f "${PW_WINELIB}/portable/lib/lib" "${PW_WINELIB}/portable/lib/lib64" + fi + if [[ ! -d "${PW_WINELIB}/portable/lib/lib" ]] ; then + mv -f "${PW_WINELIB}/portable/lib/lib32" "${PW_WINELIB}/portable/lib/lib" + fi + fi + + PW_PV_OVERRIDES="/usr/lib/pressure-vessel/overrides/lib" + if [[ ! -z "${LD_LIBRARY_PATH}" ]] ; then + if [[ -z "`echo ${PW_LD_LIBRARY_PATH} | grep "${WINEDIR}/lib64:${WINEDIR}/lib"`" ]] ; then + export PW_LD_LIBRARY_PATH="${WINEDIR}/lib64:${WINEDIR}/lib:${PW_WINELIB}/portable/lib/\$LIB:${PW_PV_OVERRIDES}/x86_64-linux-gnu/aliases:${PW_PV_OVERRIDES}/i386-linux-gnu/aliases:${LD_LIBRARY_PATH}" + fi + else + export PW_LD_LIBRARY_PATH="${WINEDIR}/lib64:${WINEDIR}/lib:${PW_WINELIB}/portable/lib/\$LIB:${PW_PV_OVERRIDES}/x86_64-linux-gnu/aliases:${PW_PV_OVERRIDES}/i386-linux-gnu/aliases" + fi + + if [[ ! -z "${VK_LAYER_PATH}" ]] + then export VK_LAYER_PATH="${PW_WINELIB}/portable/share/vulkan/implicit_layer.d/:${VK_LAYER_PATH}" + else export VK_LAYER_PATH="${PW_WINELIB}/portable/share/vulkan/implicit_layer.d/" + fi + if [ ! -z ${PATH_TMP} ] + then export PATH="${PATH_TMP}" + else export PATH_TMP="${PATH}" + fi + if [ ! -z "${PATH}" ] + then export PATH="${WINEDIR}/bin:${PATH}:${PW_WINELIB}/portable/bin" + else export PATH="${WINEDIR}/bin:${PW_WINELIB}/portable/bin" + fi + if [ "${PW_USE_GSTREAMER}" = 1 ] ; then + if [ -d "${WINEDIR}/lib64/gstreamer-1.0" ] ; then + export GST_PLUGIN_SYSTEM_PATH_1_0="${WINEDIR}/lib64/gstreamer-1.0:${WINEDIR}/lib/gstreamer-1.0" + fi + export WINE_GST_REGISTRY_DIR="${PORT_WINE_TMP_PATH}" + export MEDIACONV_AUDIO_DUMP_FILE="${PORT_WINE_TMP_PATH}"/audio.foz + export MEDIACONV_AUDIO_TRANSCODED_FILE="${PORT_WINE_TMP_PATH}"/transcoded_audio.foz + export MEDIACONV_VIDEO_DUMP_FILE="${PORT_WINE_TMP_PATH}"/video.foz + export MEDIACONV_VIDEO_TRANSCODED_FILE="${PORT_WINE_TMP_PATH}"/transcoded_video.foz + else + var_winedlloverride_update "winegstreamer=" + fi + # export STAGING_SHARED_MEMORY=1 + # export PW_FORCE_LARGE_ADDRESS_AWARE=1 + + if [ "${PW_USE_RUNTIME}" = 0 ] ; then + export pw_runtime="" + if [ "${PW_MANGOHUD}" = 1 ] ; then + [ -z `which mangohud` ] && export PW_MANGOHUD=0 + fi + echo "RUNTIME is disabled" + else + if [[ ! -z "${PW_SANDBOX_HOME_PATH}" && -d "${PW_SANDBOX_HOME_PATH}" ]]; then + export pw_runtime="${PW_WINELIB}/run \ + --unshare-home \ + --home="${PW_SANDBOX_HOME_PATH}" \ + ${PW_ADD_TO_ARGS_IN_RUNTIME} --" + else + export pw_runtime="${PW_WINELIB}/run \ + --share-home \ + ${PW_ADD_TO_ARGS_IN_RUNTIME} --" + fi + # export PRESSURE_VESSEL_VARIABLE_DIR="${PW_WINELIB}/runtime" + export PRESSURE_VESSEL_REMOVE_GAME_OVERLAY=1 + export PRESSURE_VESSEL_IMPORT_VULKAN_LAYERS=1 + export PRESSURE_VESSEL_GC_RUNTIMES=0 + export PRESSURE_VESSEL_PREFIX="${PW_WINELIB}/pressure-vessel" + unset PRESSURE_VESSEL_FILESYSTEMS_RO PRESSURE_VESSEL_FILESYSTEMS_RW + for PWRTMRO in ${PW_RT_MOUNT_RO[*]} ; do + if [ ! -z "${PRESSURE_VESSEL_FILESYSTEMS_RO}" ] + then export PRESSURE_VESSEL_FILESYSTEMS_RO="${PRESSURE_VESSEL_FILESYSTEMS_RO}:${PWRTMRO}" + else export PRESSURE_VESSEL_FILESYSTEMS_RO="${PWRTMRO}" + fi + done + for PWRTMRW in ${PW_RT_MOUNT_RW[*]} ; do + if [ ! -z "${PRESSURE_VESSEL_FILESYSTEMS_RW}" ] + then export PRESSURE_VESSEL_FILESYSTEMS_RW="${PRESSURE_VESSEL_FILESYSTEMS_RW}:${PWRTMRW}" + else export PRESSURE_VESSEL_FILESYSTEMS_RW="${PWRTMRW}" + fi + done + echo "RUNTIME is enabled" + fi +} + check_vk_icd_file () { if [[ -f "/usr/share/vulkan/icd.d/nvidia_icd.json" ]] ; then export VK_ICD_FILENAMES="/usr/share/vulkan/icd.d/nvidia_icd.json" diff --git a/data_from_portwine/scripts/lang b/data_from_portwine/scripts/lang index 0cae696..5783760 100755 --- a/data_from_portwine/scripts/lang +++ b/data_from_portwine/scripts/lang @@ -1,4 +1,4 @@ -#!/bin/env bash +#!/usr/bin/env bash # Author: PortWINE-Linux.ru read "update_loc" < "${PORT_WINE_TMP_PATH}/${portname}_loc" diff --git a/data_from_portwine/scripts/runlib b/data_from_portwine/scripts/runlib index 5fa0ce4..c67d5f9 100755 --- a/data_from_portwine/scripts/runlib +++ b/data_from_portwine/scripts/runlib @@ -1,6 +1,6 @@ -#!/bin/env bash +#!/usr/bin/env bash # Author: Castro-Fidel (PortWINE-Linux.ru) -# Development assistants: Cefeiko; Dezert1r; Taz_mania; Anton_Famillianov; gavr; RidBowt; chal55rus +# Development assistants: Cefeiko; Dezert1r; Taz_mania; Anton_Famillianov; gavr; RidBowt; chal55rus; UserDiscord ######################################################################## echo ' ████─████─████─███─█───█─███─█──█─███ @@ -32,7 +32,6 @@ start_portwine () { sed -i '/Steam.exe/d' "${WINEDIR}/share/wine/wine.inf" sed -i '/\\Valve\\Steam/d' "${WINEDIR}/share/wine/wine.inf" if [ -x "`which konsole 2>/dev/null`" ]; then export PW_TERM="konsole --nofork -e" -# elif [ -x "`which gnome-terminal 2>/dev/null`" ]; then export PW_TERM="gnome-terminal -- /usr/bin/env bash" ??? elif [ -x "`which lxterminal 2>/dev/null`" ]; then export PW_TERM="lxterminal -e" elif [ -x "`which xterm 2>/dev/null`" ]; then export PW_TERM="${PW_XTERM}" else export PW_TERM="${PW_XTERM}" @@ -43,96 +42,7 @@ start_portwine () { fi pw_update_pfx_cover_gui - - if [[ ! -z "`cat /etc/*-release | grep -i opensuse`" ]] \ - || [[ ! -z "`cat /etc/*-release | grep -i centos`" ]] \ - || [[ ! -z "`cat /etc/*-release | grep -i fedora`" ]] \ - || [[ ! -z "`cat /etc/*-release | grep -i gentoo`" ]] ; then - if check_symlink "${PW_WINELIB}/portable/lib/lib64" ; then - rm -fr "${PW_WINELIB}/portable/lib/lib64" - fi - if [[ ! -d "${PW_WINELIB}/portable/lib/lib64" ]] ; then - mv -f "${PW_WINELIB}/portable/lib/lib" "${PW_WINELIB}/portable/lib/lib64" - fi - if [[ ! -d "${PW_WINELIB}/portable/lib/lib" ]] ; then - mv -f "${PW_WINELIB}/portable/lib/lib32" "${PW_WINELIB}/portable/lib/lib" - fi - fi - - PW_PV_OVERRIDES="/usr/lib/pressure-vessel/overrides/lib" - if [[ ! -z "${LD_LIBRARY_PATH}" ]] ; then - if [[ -z "`echo ${PW_LD_LIBRARY_PATH} | grep "${WINEDIR}/lib64:${WINEDIR}/lib"`" ]] ; then - export PW_LD_LIBRARY_PATH="${WINEDIR}/lib64:${WINEDIR}/lib:${PW_WINELIB}/portable/lib/\$LIB:${PW_PV_OVERRIDES}/x86_64-linux-gnu/aliases:${PW_PV_OVERRIDES}/i386-linux-gnu/aliases:${LD_LIBRARY_PATH}" - fi - else - export PW_LD_LIBRARY_PATH="${WINEDIR}/lib64:${WINEDIR}/lib:${PW_WINELIB}/portable/lib/\$LIB:${PW_PV_OVERRIDES}/x86_64-linux-gnu/aliases:${PW_PV_OVERRIDES}/i386-linux-gnu/aliases" - fi - - if [[ ! -z "${VK_LAYER_PATH}" ]] - then export VK_LAYER_PATH="${PW_WINELIB}/portable/share/vulkan/implicit_layer.d/:${VK_LAYER_PATH}" - else export VK_LAYER_PATH="${PW_WINELIB}/portable/share/vulkan/implicit_layer.d/" - fi - if [ ! -z ${PATH_TMP} ] - then export PATH="${PATH_TMP}" - else export PATH_TMP="${PATH}" - fi - if [ ! -z "${PATH}" ] - then export PATH="${WINEDIR}/bin:${PATH}:${PW_WINELIB}/portable/bin" - else export PATH="${WINEDIR}/bin:${PW_WINELIB}/portable/bin" - fi - if [ "${PW_USE_GSTREAMER}" = 1 ] ; then - if [ -d "${WINEDIR}/lib64/gstreamer-1.0" ] ; then - export GST_PLUGIN_SYSTEM_PATH_1_0="${WINEDIR}/lib64/gstreamer-1.0:${WINEDIR}/lib/gstreamer-1.0" - fi - export WINE_GST_REGISTRY_DIR="${PORT_WINE_TMP_PATH}" - export MEDIACONV_AUDIO_DUMP_FILE="${PORT_WINE_TMP_PATH}"/audio.foz - export MEDIACONV_AUDIO_TRANSCODED_FILE="${PORT_WINE_TMP_PATH}"/transcoded_audio.foz - export MEDIACONV_VIDEO_DUMP_FILE="${PORT_WINE_TMP_PATH}"/video.foz - export MEDIACONV_VIDEO_TRANSCODED_FILE="${PORT_WINE_TMP_PATH}"/transcoded_video.foz - else - var_winedlloverride_update "winegstreamer=" - fi - # export STAGING_SHARED_MEMORY=1 - # export PW_FORCE_LARGE_ADDRESS_AWARE=1 - - if [ "${PW_USE_RUNTIME}" = 0 ] ; then - export pw_runtime="" - if [ "${PW_MANGOHUD}" = 1 ] ; then - [ -z `which mangohud` ] && export PW_MANGOHUD=0 - fi - echo "RUNTIME is disabled" - else - if [[ ! -z "${PW_SANDBOX_HOME_PATH}" && -d "${PW_SANDBOX_HOME_PATH}" ]]; then - export pw_runtime="${PW_WINELIB}/run \ - --unshare-home \ - --home="${PW_SANDBOX_HOME_PATH}" \ - --" - else - export pw_runtime="${PW_WINELIB}/run \ - --share-home \ - --" - fi - # export PRESSURE_VESSEL_VARIABLE_DIR="${PW_WINELIB}/runtime" - export PRESSURE_VESSEL_REMOVE_GAME_OVERLAY=1 - export PRESSURE_VESSEL_IMPORT_VULKAN_LAYERS=1 - export PRESSURE_VESSEL_GC_RUNTIMES=0 - export PRESSURE_VESSEL_PREFIX="${PW_WINELIB}/pressure-vessel" - unset PRESSURE_VESSEL_FILESYSTEMS_RO - unset PRESSURE_VESSEL_FILESYSTEMS_RW - for PWRTMRO in ${PW_RT_MOUNT_RO[*]} ; do - if [ ! -z "${PRESSURE_VESSEL_FILESYSTEMS_RO}" ] - then export PRESSURE_VESSEL_FILESYSTEMS_RO="${PRESSURE_VESSEL_FILESYSTEMS_RO}:${PWRTMRO}" - else export PRESSURE_VESSEL_FILESYSTEMS_RO="${PWRTMRO}" - fi - done - for PWRTMRW in ${PW_RT_MOUNT_RW[*]} ; do - if [ ! -z "${PRESSURE_VESSEL_FILESYSTEMS_RW}" ] - then export PRESSURE_VESSEL_FILESYSTEMS_RW="${PRESSURE_VESSEL_FILESYSTEMS_RW}:${PWRTMRW}" - else export PRESSURE_VESSEL_FILESYSTEMS_RW="${PWRTMRW}" - fi - done - echo "RUNTIME is enabled" - fi + pw_init_runtime if [[ ! -z "${PW_LOG}" && "${PW_LOG}" != 0 ]] ; then export WINEDEBUG="fixme-all,err+loaddll,err+dll,err+file,err+reg" @@ -143,11 +53,12 @@ start_portwine () { export WINEDEBUG="-all" export DXVK_LOG_LEVEL="none" export VKD3D_SHADER_DEBUG="none" - export VKD3D_FEATURE_LEVEL="12_0" export VKD3D_DEBUG="none" export DXVK_LOG_PATH="none" fi + export VKD3D_FEATURE_LEVEL="12_0" + #default wine-mono override for FNA games export WINE_MONO_OVERRIDES="Microsoft.Xna.Framework.*,Gac=n" @@ -312,6 +223,9 @@ start_portwine () { then pw_clear_pfx check_dirs_and_files_in_pfx + if [[ -d "${WINEDIR}/share/default_pfx/" ]] ; then + cp -frL "${WINEDIR}/share/default_pfx/"* "${PORT_WINE_PATH}/data/prefixes/${PW_PREFIX_NAME}/" + fi ${pw_runtime} env LD_LIBRARY_PATH="${PW_LD_LIBRARY_PATH}" "${WINELOADER}" wineboot -i &>>"${PORT_WINE_TMP_PATH}/update_pfx_log" wait_wineserver && echo "${PW_WINE_USE}" > "${PORT_WINE_PATH}/data/prefixes/${PW_PREFIX_NAME}/.wine_ver" @@ -335,7 +249,7 @@ start_portwine () { #enabled BattleEye_Runtime and EasyAntiCheat_Runtime export PROTON_BATTLEYE_RUNTIME="${PW_PLUGINS_PATH}/d3d_extras/BattlEye_Runtime" export PROTON_EAC_RUNTIME="${PW_PLUGINS_PATH}/d3d_extras/EasyAntiCheat_Runtime" - var_winedlloverride_update "easyanticheat_x86,easyanticheat_x64,beclient,beclient_x64=b,n" + var_winedlloverride_update "beclient,beclient_x64=b,n" #try link d3d extras libs for d3d_extras_from_plugins in d3dcompiler_33 d3dcompiler_34 d3dcompiler_35 d3dcompiler_36 d3dcompiler_37 \ d3dcompiler_38 d3dcompiler_39 d3dcompiler_40 d3dcompiler_41 d3dcompiler_42 d3dcompiler_43 d3dcompiler_46 \ @@ -455,20 +369,10 @@ start_portwine () { echo "Try to install DLL in prefix: ${PW_DLL_NEED_INSTALL}" >> "${PORT_WINE_TMP_PATH}/update_pfx_log" print_info "Try to install DLL in prefix: ${PW_DLL_NEED_INSTALL}" chmod -R 775 "${HOME}/.cache/winetricks" - # if [ "${PW_WINE_VER}" != "${PW_PROTON_STEAM_VER}" ] ; then - # export PW_WINE_VER_FROM_DB="${PW_WINE_USE}" - # export PW_WINE_VER="${PW_PROTON_STEAM_VER}" - # init_wine_ver - # fi ${pw_runtime} env PATH="${PATH}" LD_LIBRARY_PATH="${PW_LD_LIBRARY_PATH}" \ "${PORT_WINE_TMP_PATH}/winetricks" -q -r -f ${PW_DLL_NEED_INSTALL} &>>"${PORT_WINE_TMP_PATH}/update_pfx_log" wait_wineserver kill_portwine - # if [ "${PW_WINE_VER_FROM_DB}" != "${PW_PROTON_STEAM_VER}" ] ; then - # export PW_SILENT_RESTART=1 - # /usr/bin/env bash ${pw_full_command_line[*]} & - # exit 0 - # fi fi fi if [[ -f "${PORT_WINE_PATH}/data/prefixes/${PW_PREFIX_NAME}/system.reg" ]] && [[ -z `cat "${PORT_WINE_PATH}/data/prefixes/${PW_PREFIX_NAME}/system.reg" | grep "Windows $PW_WINDOWS_VER"` ]] ; then @@ -481,6 +385,10 @@ start_portwine () { kill_portwine echo "Set to win${PW_WINDOWS_VER}" fi + if [[ "${portwine_exe}" == *-Shipping.exe ]] ; then + echo "Disable EAC" + [[ -z "${LAUNCH_PARAMETERS}" ]] && export LAUNCH_PARAMETERS+="-eac-nop-loaded " + fi pw_stop_progress_bar && pw_tray_icon && if [[ "${PW_CHECK_AUTOINSTAL}" != "1" ]] ; then @@ -524,11 +432,12 @@ pw_run () { export -f pw_run ###MAIN### -if [ $(id -u) -eq 0 ] ; then +if [[ $(id -u) -eq 0 ]] ; then zenity_error "Do not run the script from the superuser!" exit 1 fi -if [[ ! -z "${PW_SILENT_RESTART}" && "${PW_SILENT_RESTART}" = 1 ]] ; then +create_new_dir "${HOME}/.local/share/applications" +if [[ ! -z "${PW_SILENT_RESTART}" ]] && [[ "${PW_SILENT_RESTART}" = 1 ]] ; then export PW_GUI_DISABLED_CS=1 unset PW_SILENT_RESTART else @@ -537,7 +446,7 @@ fi unset MANGOHUD MANGOHUD_DLSYM PW_NO_ESYNC PW_NO_FSYNC PW_VULKAN_USE WINEDLLOVERRIDES PW_NO_WRITE_WATCH PW_YAD_SET PW_ICON_FOR_YAD unset PW_CHECK_AUTOINSTAL PW_VKBASALT_EFFECTS PW_VKBASALT_FFX_CAS PORTWINE_DB PORTWINE_DB_FILE PW_DISABLED_CREATE_DB unset CHK_SYMLINK_FILE MESA_GL_VERSION_OVERRIDE PATH_TO_GAME PW_START_DEBUG PORTPROTON_NAME PORTWINE_CREATE_SHORTCUT_NAME -unset PW_PREFIX_NAME WINEPREFIX VULKAN_MOD PW_WINE_VER +unset PW_PREFIX_NAME WINEPREFIX VULKAN_MOD PW_WINE_VER PW_ADD_TO_ARGS_IN_RUNTIME export portname=PortProton diff --git a/data_from_portwine/scripts/setup.sh b/data_from_portwine/scripts/setup.sh index c6eb31a..2cf3bd3 100755 --- a/data_from_portwine/scripts/setup.sh +++ b/data_from_portwine/scripts/setup.sh @@ -1,26 +1,27 @@ -#!/bin/env bash +#!/usr/bin/env bash # Author: PortWINE-Linux.ru . "$(dirname $(readlink -f "$0"))/runlib" -if [ -z "${PW_AUTOPLAY}" ] ; then - create_new_dir "${HOME}/.local/share/applications" - name_desktop="PortProton" - echo "[Desktop Entry]" > "${PORT_WINE_PATH}/${name_desktop}.desktop" - echo "Name=${name_desktop}" >> "${PORT_WINE_PATH}/${name_desktop}.desktop" - echo "Exec=env "${PORT_SCRIPTS_PATH}/start.sh %F"" >> "${PORT_WINE_PATH}/${name_desktop}.desktop" - echo "Type=Application" >> "${PORT_WINE_PATH}/${name_desktop}.desktop" - echo "Terminal=False" >> "${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 "MimeType=application/x-ms-dos-executable;application/x-wine-extension-msp;application/x-msi;application/x-msdos-program" >> "${PORT_WINE_PATH}/${name_desktop}.desktop" - echo "Path="${PORT_SCRIPTS_PATH}/"" >> "${PORT_WINE_PATH}/${name_desktop}.desktop" - echo "Icon="${PORT_WINE_PATH}/data/img/w.png"" >> "${PORT_WINE_PATH}/${name_desktop}.desktop" - chmod u+x "${PORT_WINE_PATH}/${name_desktop}.desktop" - cp -f "${PORT_WINE_PATH}/${name_desktop}.desktop" ${HOME}/.local/share/applications/ +name_desktop="PortProton" +echo "[Desktop Entry]" > "${PORT_WINE_PATH}/${name_desktop}.desktop" +echo "Name=${name_desktop}" >> "${PORT_WINE_PATH}/${name_desktop}.desktop" +echo "Exec=env "${PORT_SCRIPTS_PATH}/start.sh %F"" >> "${PORT_WINE_PATH}/${name_desktop}.desktop" +echo "Type=Application" >> "${PORT_WINE_PATH}/${name_desktop}.desktop" +echo "Terminal=False" >> "${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 "MimeType=application/x-ms-dos-executable;application/x-wine-extension-msp;application/x-msi;application/x-msdos-program" >> "${PORT_WINE_PATH}/${name_desktop}.desktop" +echo "Path="${PORT_SCRIPTS_PATH}/"" >> "${PORT_WINE_PATH}/${name_desktop}.desktop" +echo "Icon="${PORT_WINE_PATH}/data/img/w.png"" >> "${PORT_WINE_PATH}/${name_desktop}.desktop" +chmod u+x "${PORT_WINE_PATH}/${name_desktop}.desktop" - update-desktop-database -q "${HOME}/.local/share/applications" - xdg-mime default PortProton.desktop "application/x-ms-dos-executable;application/x-wine-extension-msp;application/x-msi;application/x-msdos-program" +if [ -z "${PW_AUTOPLAY}" ] ; then + cp -f "${PORT_WINE_PATH}/${name_desktop}.desktop" ${HOME}/.local/share/applications/ fi + +update-desktop-database -q "${HOME}/.local/share/applications" +xdg-mime default PortProton.desktop "application/x-ms-dos-executable;application/x-wine-extension-msp;application/x-msi;application/x-msdos-program" + name_desktop="readme" echo "[Desktop Entry]" > "${PORT_WINE_PATH}/${name_desktop}.desktop" echo "Name=${name_desktop}" >> "${PORT_WINE_PATH}/${name_desktop}.desktop" diff --git a/data_from_portwine/scripts/start.sh b/data_from_portwine/scripts/start.sh index 9e6ad3e..bef0f08 100755 --- a/data_from_portwine/scripts/start.sh +++ b/data_from_portwine/scripts/start.sh @@ -18,6 +18,14 @@ if [[ "${XDG_SESSION_TYPE}" = "wayland" ]] && [[ ! -f "${PORT_WINE_TMP_PATH}/che echo "1" > "${PORT_WINE_TMP_PATH}/check_wayland" fi +if [[ -n `basename "${portwine_exe}" | grep .ppack` ]] ; then + export PW_ADD_TO_ARGS_IN_RUNTIME="--xterm" + unset PW_SANDBOX_HOME_PATH + pw_init_runtime + ${pw_runtime} env PATH="${PATH}" LD_LIBRARY_PATH="${PW_LD_LIBRARY_PATH}" unsquashfs -f -d "${PORT_WINE_PATH}/data/prefixes/$(basename $1 | awk -F'.' '{print $1}')" "$1" + exit 0 +fi + portwine_launch () { start_portwine PORTWINE_MSI=`basename "${portwine_exe}" | grep .msi` @@ -124,12 +132,12 @@ portwine_start_debug () { free -m >> "${PORT_WINE_PATH}/${portname}.log" echo "-----------------------------------------------" >> "${PORT_WINE_PATH}/${portname}.log" echo "Graphic cards and drivers:" >> "${PORT_WINE_PATH}/${portname}.log" - echo 'lspci | grep -i vga:' >> "${PORT_WINE_PATH}/${portname}.log" - echo `lspci | grep -i vga` >> "${PORT_WINE_PATH}/${portname}.log" - env LD_LIBRARY_PATH="${PW_LD_LIBRARY_PATH}" "${PW_WINELIB}/portable/bin/glxinfo" -B >> "${PORT_WINE_PATH}/${portname}.log" + echo 'lspci -k | grep -EA3 VGA|3D|Display:' >> "${PORT_WINE_PATH}/${portname}.log" + echo `lspci -k | grep -EA3 'VGA|3D|Display'` >> "${PORT_WINE_PATH}/${portname}.log" + [[ `which glxinfo` ]] && glxinfo -B >> "${PORT_WINE_PATH}/${portname}.log" echo " " >> "${PORT_WINE_PATH}/${portname}.log" echo "inxi -G:" >> "${PORT_WINE_PATH}/${portname}.log" - env LANG=C "${PW_WINELIB}/portable/bin/inxi" -G >> "${PORT_WINE_PATH}/${portname}.log" + "${PW_WINELIB}/portable/bin/inxi" -G >> "${PORT_WINE_PATH}/${portname}.log" echo "----------------------------------------------" >> "${PORT_WINE_PATH}/${portname}.log" echo "Vulkan info device name:" >> "${PORT_WINE_PATH}/${portname}.log" "${PW_WINELIB}/portable/bin/vulkaninfo" | grep deviceName >> "${PORT_WINE_PATH}/${portname}.log" @@ -220,6 +228,58 @@ pw_winereg () { pw_run regedit } +# pw_prefix_manager () { +# update_winetricks +# start_portwine +# [[ ! -f "${PORT_WINE_TMP_PATH}/dll_list" ]] && "${PORT_WINE_TMP_PATH}/winetricks" dlls list | awk -F'(' '{print $1}' 1> "${PORT_WINE_TMP_PATH}/dll_list" +# gui_prefix_manager () { +# unset SET_FROM_PFX_MANAGER_TMP SET_FROM_PFX_MANAGER +# old_IFS=$IFS +# IFS=$'\n' +# try_remove_file "${PORT_WINE_TMP_PATH}/dll_list_tmp" +# #for PW_BOOL_IN_DLL_LIST in `cat "${PORT_WINE_TMP_PATH}/dll_list"` ; do +# while read PW_BOOL_IN_DLL_LIST ; do +# if [[ -z `echo "${PW_BOOL_IN_DLL_LIST}" | grep -E 'dont_use|dxvk|vkd3d|galliumnine|faudio1'` ]] ; then +# if grep "^`echo ${PW_BOOL_IN_DLL_LIST} | awk '{print $1}'`$" "${PORT_WINE_PATH}/data/prefixes/${PW_PREFIX_NAME}/winetricks.log" ; then +# echo -e "true\n`echo ${PW_BOOL_IN_DLL_LIST} | awk '{print $1}'`\n`echo ${PW_BOOL_IN_DLL_LIST} | awk '{ $1 = ""; print substr($0, 2) }'`" >> "${PORT_WINE_TMP_PATH}/dll_list_tmp" +# else +# echo -e "false\n`echo ${PW_BOOL_IN_DLL_LIST} | awk '{print $1}'`\n`echo ${PW_BOOL_IN_DLL_LIST} | awk '{ $1 = ""; print substr($0, 2) }'`" >> "${PORT_WINE_TMP_PATH}/dll_list_tmp" +# fi +# fi +# done < "${PORT_WINE_TMP_PATH}/dll_list" +# pw_stop_progress_bar + +# SET_FROM_PFX_MANAGER_TMP=`"${pw_yad_new}" --list --checklist --column=set --column=dll --column=info \ +# --borders=5 --width=650 --height=500 --center < "${PORT_WINE_TMP_PATH}/dll_list_tmp"` +# YAD_STATUS="$?" +# if [[ "$YAD_STATUS" == "1" || "$YAD_STATUS" == "252" ]] ; then +# stop_portwine +# exit 0 +# fi + +# for STPFXMNG in ${SET_FROM_PFX_MANAGER_TMP} ; do +# grep `echo ${STPFXMNG} | awk -F'|' '{print $2}'` "${PORT_WINE_PATH}/data/prefixes/${PW_PREFIX_NAME}/winetricks.log" +# if [ "$?" == "1" ] ; then +# [[ -n "${STPFXMNG}" ]] && SET_FROM_PFX_MANAGER+="`echo ${STPFXMNG} | awk -F'|' '{print $2}'` " +# fi +# done +# IFS=${old_IFS} + +# if [[ -n ${SET_FROM_PFX_MANAGER_TMP} ]] ; then +# print_var SET_FROM_PFX_MANAGER +# export PW_ADD_TO_ARGS_IN_RUNTIME="--xterm" +# pw_init_runtime +# ${pw_runtime} env PATH="${PATH}" LD_LIBRARY_PATH="${PW_LD_LIBRARY_PATH}" "${PORT_WINE_TMP_PATH}/winetricks" -q -r -f ${SET_FROM_PFX_MANAGER} +# gui_prefix_manager +# else +# echo "nothing to do" +# stop_portwine +# exit 0 +# fi +# } +# gui_prefix_manager +# } + pw_winetricks () { update_winetricks export PW_USE_TERMINAL=1 @@ -247,6 +307,35 @@ pw_winetricks () { stop_portwine } +pw_create_prefix_backup () { + cd "$HOME" + export PW_PREFIX_TO_BACKUP=`"${pw_yad_new}" --file --directory --borders=5 --width=650 --height=500 --auto-close --center \ + --window-icon="$PW_GUI_ICON_PATH/port_proton.png" --title "BACKUP PREFIX TO..."` + YAD_STATUS="$?" + if [[ "$YAD_STATUS" == "1" || "$YAD_STATUS" == "252" ]] ; then exit 0 ; fi + unset PW_SANDBOX_HOME_PATH + export PW_ADD_TO_ARGS_IN_RUNTIME="--xterm" + pw_init_runtime + ${pw_runtime} env PATH="${PATH}" LD_LIBRARY_PATH="${PW_LD_LIBRARY_PATH}" mksquashfs "${PORT_WINE_PATH}/data/prefixes/${PW_PREFIX_NAME}" "${PW_PREFIX_TO_BACKUP}/${PW_PREFIX_NAME}.ppack.part" -comp zstd & + sleep 15 + while true ; do + if [[ -n `pgrep -a xterm | grep ".ppack" | head -n 1 | awk '{print $1}'` ]] ; then + sleep 1 + else + kill -TERM `pgrep -a mksquashfs | grep ".ppack.part" | head -n 1 | awk '{print $1}'` + sleep 3 + break + fi + done + if [[ -f "${PW_PREFIX_TO_BACKUP}/${PW_PREFIX_NAME}.ppack.part" ]] ; then + mv -f "${PW_PREFIX_TO_BACKUP}/${PW_PREFIX_NAME}.ppack.part" "${PW_PREFIX_TO_BACKUP}/${PW_PREFIX_NAME}.ppack" + zenity_info "Backup for prefix \"${PW_PREFIX_NAME}\" successfully created." + else + zenity_error "An error occurred while creating a backup for prefix: \"${PW_PREFIX_NAME}\" !" + fi + return 0 +} + pw_edit_db () { pw_gui_for_edit_db PW_MANGOHUD PW_MANGOHUD_USER_CONF ENABLE_VKBASALT PW_NO_ESYNC PW_NO_FSYNC PW_USE_DXR10 PW_USE_DXR11 \ PW_VULKAN_NO_ASYNC PW_USE_NVAPI_AND_DLSS PW_OLD_GL_STRING PW_HIDE_NVIDIA_GPU PW_FORCE_USE_VSYNC PW_VIRTUAL_DESKTOP \ @@ -276,6 +365,20 @@ pw_autoinstall_from_db () { . "${PORT_SCRIPTS_PATH}/pw_autoinstall/${PW_YAD_SET}" } +gui_about_portproton () { + "${pw_yad_new}" --about --pname=PortProton \ + --window-icon="$PW_GUI_ICON_PATH/port_proton.png" \ + --pversion="${install_ver}\n(scripts v. ${scripts_install_ver})" \ + --image=help-about \ + --copyright="Copyright © 2022 Castro-Fidel (PortWINE-Linux.ru)" \ + --comments="Порт для запуска Windows игр и приложений в GNU/Linux" \ + --license=MIT \ + --authors="Castro-Fidel",,"Выражаем особую благодарность в помоще проекту:",Cefeiko,Dezert1r,Taz_mania,Anton_Famillianov,gavr,RidBowt,chal55rus,UserDiscord \ + --website=https://portwine-linux.ru/ \ + --website-label=https://portwine-linux.ru +} +export -f gui_about_portproton + ###MAIN### export PW_PREFIX_NAME="`echo "${PW_PREFIX_NAME}" | sed -e s/[[:blank:]]/_/g`" PW_ALL_PREFIXES=`ls "${PORT_WINE_PATH}/data/prefixes/" | sed -e s/"${PW_PREFIX_NAME}$"//g` @@ -444,20 +547,22 @@ else --field=" CHANGELOG"!""!"":"FBTN" '@bash -c "button_click open_changelog"' \ --field=" EDIT USER.CONF"!""!"":"FBTN" '@bash -c "button_click gui_open_user_conf"' \ --field=" SCRIPTS FROM BACKUP"!""!"":"FBTN" '@bash -c "button_click gui_open_scripts_from_backup"' & + #--field=" ABOUT PORTPROTON"!""!"":"FBTN" '@bash -c "button_click gui_about_portproton"' & + "${pw_yad_new}" --plug=${KEY} --tabnum=3 --columns=3 --align-buttons --form --separator=";" \ --field=" 3D API : :CB" "VULKAN (DXVK and VKD3D)!VULKAN (WINE DXGI)!OPENGL" \ --field=" PREFIX : :CBE" "${PW_ADD_PREFIXES_TO_GUI}" \ --field=" WINE : :CB" "${PW_DEFAULT_WINE_USE}" \ --field=" DOWNLOAD OTHER WINE "!"${loc_download_other_wine}":"FBTN" '@bash -c "button_click gui_proton_downloader"' \ - --field=' DEBUG'!""!"${loc_debug}":"FBTN" '@bash -c "button_click DEBUG"' \ --field=' WINECFG'!""!"${loc_winecfg}":"FBTN" '@bash -c "button_click WINECFG"' \ --field=' WINEFILE'!""!"${loc_winefile}":"FBTN" '@bash -c "button_click WINEFILE"' \ --field=' WINECMD'!""!"${loc_winecmd}":"FBTN" '@bash -c "button_click WINECMD"' \ --field=' WINEREG'!""!"${loc_winereg}":"FBTN" '@bash -c "button_click WINEREG"' \ --field=' WINETRICKS'!""!"${loc_winetricks}":"FBTN" '@bash -c "button_click WINETRICKS"' \ --field=" WINE UNINSTALLER"!""!"":"FBTN" '@bash -c "button_click gui_wine_uninstaller"' \ - --field=" CLEAR PREFIX"!""!"":"FBTN" '@bash -c "button_click gui_clear_pfx"' &> "${PORT_WINE_TMP_PATH}/tmp_yad_form_vulkan" & + --field=" CLEAR PREFIX"!""!"":"FBTN" '@bash -c "button_click gui_clear_pfx"' \ + --field=" CREATE PFX BACKUP"!""!"":"FBTN" '@bash -c "button_click pw_create_prefix_backup"' &> "${PORT_WINE_TMP_PATH}/tmp_yad_form_vulkan" & "${pw_yad_new}" --plug=$KEY --tabnum=2 --form --columns=3 --align-buttons --keep-icon-size --scroll \ --field=" Dolphin 5.0"!"$PW_GUI_ICON_PATH/dolphin.png"!"":"FBTN" '@bash -c "button_click PW_DOLPHIN"' \ @@ -561,6 +666,8 @@ case "$PW_YAD_SET" in gui_open_scripts_from_backup) gui_open_scripts_from_backup ;; open_changelog) open_changelog ;; 120) gui_vkBasalt ;; + pw_create_prefix_backup) pw_create_prefix_backup ;; + gui_about_portproton) gui_about_portproton ;; PW_*) pw_autoinstall_from_db ;; esac diff --git a/data_from_portwine/scripts/var b/data_from_portwine/scripts/var index 8d18c38..dfb7b3b 100755 --- a/data_from_portwine/scripts/var +++ b/data_from_portwine/scripts/var @@ -1,6 +1,6 @@ #!/usr/bin/env bash #Author: Castro-Fidel (PortWINE-Linux.ru) -#SCRIPTS_NEXT_VERSION=2092 +#SCRIPTS_NEXT_VERSION=2093 #PORT_NEXT_VERSION=97 ######################################################################## export PW_MANGOHUD=1 @@ -22,7 +22,7 @@ export PW_USE_TERMINAL=0 export PW_WINEDBG_DISABLE=1 export PW_WINDOWS_VER="10" export WINEARCH="win64" -export PW_LIBS_VER="_v22.2" +export PW_LIBS_VER="_v23" export PORTWINE_URL="http://portwine-linux.ru/" export GDK_BACKEND="x11" export PW_USE_GSTREAMER="1" @@ -32,10 +32,10 @@ export WINE_WIN_START="start.exe /i /unix" export PW_WINE_USE=PROTON_GE export PW_PLUGINS_VER="_v3" ###WINE_PROTON_STEAM### -export PW_STEAM_VER="7.0-1" +export PW_STEAM_VER="7.0-1B" export PW_PROTON_STEAM_VER="PROTON_STEAM_${PW_STEAM_VER}" ###WINE_PROTON_GE### -export PW_GE_VER="7.1-2" +export PW_GE_VER="7-10" export PW_PROTON_GE_VER="PROTON_GE_${PW_GE_VER}" export WINE_FULLSCREEN_FSR="1" export WINE_FULLSCREEN_FSR_STRENGTH="2" diff --git a/data_from_portwine/scripts/zen_yad_gui b/data_from_portwine/scripts/zen_yad_gui index 078d672..a6c6f87 100644 --- a/data_from_portwine/scripts/zen_yad_gui +++ b/data_from_portwine/scripts/zen_yad_gui @@ -1,4 +1,4 @@ -#!/bin/env bash +#!/usr/bin/env bash # Author: Castro-Fidel (PortWINE-Linux.ru) ######################################################################## zenity_info () {