Compare commits

...

6 Commits

Author SHA1 Message Date
cd5f85371f Scripts version 2098 2022-04-13 02:20:56 +03:00
1c252a12a8 Scripts version 2097 2022-04-13 01:50:53 +03:00
0fa5790b42 Scripts version 2096 2022-04-03 21:07:07 +03:00
76e52f5a78 Scripts version 2095 2022-03-20 17:57:47 +03:00
2303124f30 Scripts version 2094 2022-03-20 15:08:22 +03:00
c68e687948 Scripts version 2093 2022-03-19 18:02:49 +03:00
15 changed files with 620 additions and 290 deletions

View File

@ -2,6 +2,41 @@ You can help us in the development of the project on the website: https://boosty
-----------------------------------------
Changelog:
###Scripts version 2098###
* due to possible problems with some games, MANGOHUD is disabled by default (enabled in EDIT_DB -> MANGOHUD, or globally by adding export PW_MANGOHUD=1 to user.conf)
###Scripts version 2097###
* accelerated launch of all applications in PortProton up to 200% depending on the system
* updated additional libraries "plugins_v4" (added support for GALLIUM_NINE)
* added "GALLIUM_NINE" mode selection (support for native DirectX9 on video card with MESA driver)
* new interface for WINETRICKS added settings tab
* added variable PW_USE_AMDVLK_DRIVER to EDIT_DB (use AMDVLK driver instead of RADV on AMD video cards)
* added label archiving when creating a prefix image
* added restoration of shortcuts after unpacking the prefix image (the path to the .exe file is corrected automatically)
* improved virtual desktop performance
* explorer changed to winefile (free disk space detection fixed)
* disabled loading of mono and gecko for League of Legends (speeds up the first launch)
* to force the use of AMD graphics cards instead of NVIDIA, you can add "export DRI_PRIME=1" to user.conf
###Scripts version 2096###
* added check for LANG variable for PortProton to work on STEAM-DECK
* added new interface for WINETRICKS
* updated "libs_v25" (updated steam runtime sniper, added support for "MANGOHUD" and "vkBasalt" for systems: "RED OS" and "OpenSUSE")
* added variable PW_FIX_VIDEO_IN_GAME to EDIT_DB (required for video playback in some games so that it is not distorted, colored pink)
###Scripts version 2095###
* updated "libs_v24" (hotfix)
###Scripts version 2094###
* rollback "PROTON_GE" to version 7-9
###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)

View File

@ -2,6 +2,41 @@
-----------------------------------------
История изменений:
###Scripts version 2098###
* из за возможных проблем с некоторыми играми по умолчанию MANGOHUD выключен (включается в EDIT_DB -> MANGOHUD, или глобально добавлением export PW_MANGOHUD=1 в user.conf)
###Scripts version 2097###
* ускорен запуск всех приложений в PortProton до 200% в зависимости от системы
* обновлены дополнительные библиотеки "plugins_v4" (добавлена поддержка GALLIUM_NINE)
* добавлен выбор режима "GALLIUM_NINE" (поддержка нитивного DirectX9 на видеокарте с MESA драйвером)
* в новый интерфейс для WINETRICKS добавлена вкладка settings
* в EDIT_DB добавлена переменная PW_USE_AMDVLK_DRIVER (использовать драйвер AMDVLK вместо RADV на видеокартах от AMD)
* добавлено архивация ярлыков при создании образа префикса
* добавлено востановление ярлыков после распаковки образа префикса (путь до .exe файла корректируется автоматически)
* улучшена работа виртуального рабочего стола
* explorer изменен на winefile (исправлено определение свободного дискового пространства)
* отключена загрузка mono и gecko для League of Legends (ускоряет первый запуск)
* для принудительного использования AMD видеокарты, вместо NVIDIA, можно добавить "export DRI_PRIME=1" в user.conf
###Scripts version 2096###
* добавлена проверка на переменную LANG для работы PortProton на STEAM-DECK
* добавлен новый интерфейс для WINETRICKS
* обновлен "libs_v25" (обновлен steam runtime sniper, добавлена поддержка "MANGOHUD" и "vkBasalt" для систем: "RED OS" и "OpenSUSE")
* в EDIT_DB добавлена переменная PW_FIX_VIDEO_IN_GAME (требуется для воспроизведения видео в некоторых играх, чтобы оно не было искажено, окрашено в розовый цвет)
###Scripts version 2095###
* обновлен "libs_v24" (hotfix)
###Scripts version 2094###
* откат "PROTON_GE" до версии 7-9
###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)

View File

@ -1,4 +1,4 @@
#!/bin/env bash
#!/usr/bin/env bash
# Author: Castro-Fidel (PortWINE-Linux.ru)
########################################################################
pw_ping_test () {
@ -186,45 +186,6 @@ unpack_tar () {
[ "${PIPESTATUS[0]}" != 0 ] && print_error "File $1 unpacking error." && return 1 || return 0
}
pw_mangohud_check () {
export RUN_MANGOHUD_IN_SLR=""
if [[ "${PW_MANGOHUD}" == "1" ]] ; then
if [[ "${PW_VULKAN_USE}" = "0" ]] ; then
export RUN_MANGOHUD_IN_SLR="mangohud --dlsym"
else
export RUN_MANGOHUD_IN_SLR="mangohud"
fi
else
export DISABLE_MANGOHUD=1
fi
return 0
}
export -f pw_mangohud_check
pw_vkbasalt_check () {
if [[ ! -z "${ENABLE_VKBASALT}" && "${ENABLE_VKBASALT}" == 1 ]] ; then
if [ -z "${PW_VKBASALT_EFFECTS}" ] ; then
export PW_VKBASALT_EFFECTS="cas:FilmGrain2"
fi
sed -ri "s/effects = .*/effects = ${PW_VKBASALT_EFFECTS}/g" "${PORT_WINE_PATH}/data/vkBasalt.conf"
if [ -z "${PW_VKBASALT_FFX_CAS}" ] ; then
export PW_VKBASALT_FFX_CAS="0.7"
fi
sed -ri "s/casSharpness .*/casSharpness = ${PW_VKBASALT_FFX_CAS}/g" "${PORT_WINE_PATH}/data/vkBasalt.conf"
export VKBASALT_CONFIG_FILE="${PORT_WINE_PATH}/data/vkBasalt.conf"
sed -i s/'> = 0.05;'/'> = 0.035;'/ "${PW_WINELIB}/pressure-vessel/reshade/shaders/FilmGrain2.fx"
sed -i s/'> = 0.65;'/'> = 0.4;'/ "${PW_WINELIB}/pressure-vessel/reshade/shaders/Curves.fx"
sed -i s/'> = 0.8;'/'> = 0.9;'/ "${PW_WINELIB}/pressure-vessel/reshade/shaders/Bloom.fx"
if [ ! -z "${VK_INSTANCE_LAYERS}" ]
then export VK_INSTANCE_LAYERS="VK_LAYER_VKBASALT_post_processing:${VK_INSTANCE_LAYERS}"
else export VK_INSTANCE_LAYERS="VK_LAYER_VKBASALT_post_processing"
fi
else
export DISABLE_VKBASALT=1
fi
return 0
}
pw_clear_pfx () {
try_remove_file "${PORT_WINE_PATH}/data/prefixes/${PW_PREFIX_NAME}/system.reg"
try_remove_file "${PORT_WINE_PATH}/data/prefixes/${PW_PREFIX_NAME}/user.reg"
@ -292,7 +253,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}"
@ -334,7 +299,7 @@ init_wine_ver () {
if check_symlink "${WINEDIR}/share/wine/${mono_gecko_chk}" ; then
echo "${WINEDIR}/share/wine/${mono_gecko_chk} is symlink. OK."
elif [[ -d "${WINEDIR}/share/wine/${mono_gecko_chk}" ]] ; then
try_copy_dir "${WINEDIR}/share/wine/${mono_gecko_chk}" "${PORT_WINE_TMP_PATH}"
try_copy_dir "${WINEDIR}/share/wine/${mono_gecko_chk}" "${PORT_WINE_TMP_PATH}" | sszen
try_remove_dir "${WINEDIR}/share/wine/${mono_gecko_chk}"
try_force_link_dir "${PORT_WINE_TMP_PATH}/${mono_gecko_chk}" "${WINEDIR}"/share/wine/
echo "Copy ${WINEDIR}/share/wine/${mono_gecko_chk} to tmp and create symlink to ${WINEDIR}/share/wine/. OK."
@ -348,7 +313,145 @@ init_wine_ver () {
return 0
}
check_vk_icd_file () {
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 altlinux`" ]] \
|| [[ ! -z "`cat /etc/*-release | grep -i astra`" ]] \
|| [[ ! -z "`cat /etc/*-release | grep -i redos`" ]] \
|| [[ ! -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
ln -s "${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
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}"
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
export PW_VK_LAYER_PATH="${PW_WINELIB}/portable/share/vulkan/implicit_layer.d/"
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
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
}
pw_mangohud_check () {
if [[ "${PW_MANGOHUD}" == "1" ]] ; then
export MANGOHUD=1
MANGOHUD_LIB_NAME="libMangoHud.so"
if [[ "${PW_VULKAN_USE}" = "0" ]] ; then
MANGOHUD_LIB_NAME="libMangoHud_dlsym.so:${MANGOHUD_LIB_NAME}"
fi
if [[ ! -z "${PW_LD_PRELOAD}" ]]
then export PW_LD_PRELOAD="${PW_LD_PRELOAD}:${MANGOHUD_LIB_NAME}"
else export PW_LD_PRELOAD="${MANGOHUD_LIB_NAME}"
fi
if [[ ! -z "${PW_VK_INSTANCE_LAYERS}" ]]
then export PW_VK_INSTANCE_LAYERS="VK_LAYER_MANGOHUD_overlay:${PW_VK_INSTANCE_LAYERS}"
else export PW_VK_INSTANCE_LAYERS="VK_LAYER_MANGOHUD_overlay"
fi
print_info "MANGOHUD is enabled"
else
export DISABLE_MANGOHUD=1
print_info "MANGOHUD is disabled"
fi
return 0
}
pw_vkbasalt_check () {
if [[ "${ENABLE_VKBASALT}" == 1 ]] && [[ "${PW_VULKAN_USE}" != "0" ]] && [[ "${PW_VULKAN_USE}" != "3" ]] ; then
if [[ -z "${PW_VKBASALT_EFFECTS}" ]] ; then
export PW_VKBASALT_EFFECTS="cas:FilmGrain2"
fi
sed -ri "s/effects = .*/effects = ${PW_VKBASALT_EFFECTS}/g" "${PORT_WINE_PATH}/data/vkBasalt.conf"
if [[ -z "${PW_VKBASALT_FFX_CAS}" ]] ; then
export PW_VKBASALT_FFX_CAS="0.7"
fi
sed -ri "s/casSharpness .*/casSharpness = ${PW_VKBASALT_FFX_CAS}/g" "${PORT_WINE_PATH}/data/vkBasalt.conf"
export VKBASALT_CONFIG_FILE="${PORT_WINE_PATH}/data/vkBasalt.conf"
sed -i s/'> = 0.05;'/'> = 0.035;'/ "${PW_WINELIB}/pressure-vessel/reshade/shaders/FilmGrain2.fx"
sed -i s/'> = 0.65;'/'> = 0.4;'/ "${PW_WINELIB}/pressure-vessel/reshade/shaders/Curves.fx"
sed -i s/'> = 0.8;'/'> = 0.9;'/ "${PW_WINELIB}/pressure-vessel/reshade/shaders/Bloom.fx"
if [[ ! -z "${PW_VK_INSTANCE_LAYERS}" ]]
then export PW_VK_INSTANCE_LAYERS="VK_LAYER_VKBASALT_post_processing:${PW_VK_INSTANCE_LAYERS}"
else export PW_VK_INSTANCE_LAYERS="VK_LAYER_VKBASALT_post_processing"
fi
print_info "vkBasalt is enabled"
else
export DISABLE_VKBASALT=1
print_info "vkBasalt is disabled"
fi
return 0
}
check_nvidia_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"
elif [[ -f "/etc/vulkan/icd.d/nvidia_icd.json" ]] ; then
@ -544,6 +647,11 @@ pw_init_db () {
export PORTWINE_DB=`echo "${portwine_exe}" | awk -F '/' 'NF>1{print $NF}' | sed s/".exe"/""/gi`
if [[ -f "${portwine_exe}".ppdb ]] ; then
export PORTWINE_DB_FILE="${portwine_exe}".ppdb
. "${PORTWINE_DB_FILE}"
if [[ -z "`ls -p "${PORT_WINE_PATH}/prefixes/" | grep -e "^${PW_PREFIX_NAME}/"`" ]] ; then
export PW_PREFIX_NAME=`echo "${portwine_exe}" | awk -F"/prefixes/" '{print $2}' | awk -F"/" '{print $1}'`
edit_db_from_gui PW_PREFIX_NAME
fi
else
orig_IFS="$IFS"
IFS=$'\n'
@ -567,13 +675,13 @@ pw_init_db () {
IFS="$orig_IFS"
if [[ -f "${PW_FIND_DB_FILE}" ]] && [[ -z `grep "^export PW_DISABLED_CREATE_DB=1" "${PW_FIND_DB_FILE}"` ]] ; then
try_copy_file "${PW_FIND_DB_FILE}" "${portwine_exe}".ppdb
export PORTWINE_DB_FILE="${portwine_exe}".ppdb
if [[ ! -z `echo "${portwine_exe}" | grep "/data/prefixes/"` ]] && \
[[ -z `echo "${portwine_exe}" | grep "/data/prefixes/DEFAULT"` ]]
then
export PW_PREFIX_NAME=`echo "${portwine_exe}" | awk -F"/prefixes/" '{print $2}' | awk -F"/" '{print $1}'`
edit_db_from_gui PW_PREFIX_NAME
fi
fi
export PORTWINE_DB_FILE="${portwine_exe}".ppdb
if [[ ! -z `echo "${portwine_exe}" | grep "/data/prefixes/"` ]] && \
[[ -z `echo "${portwine_exe}" | grep "/data/prefixes/DEFAULT/"` ]]
then
export PW_PREFIX_NAME=`echo "${portwine_exe}" | awk -F"/prefixes/" '{print $2}' | awk -F"/" '{print $1}'`
edit_db_from_gui PW_PREFIX_NAME
fi
fi
if [ ! -z "${PORTWINE_DB_FILE}" ]; then

View File

@ -1,4 +1,4 @@
#!/bin/env bash
#!/usr/bin/env bash
# Author: PortWINE-Linux.ru
read "update_loc" < "${PORT_WINE_TMP_PATH}/${portname}_loc"
@ -11,7 +11,7 @@ then
export inst_set="Выбор"
export inst_set_top="Установка PortWINE"
export ss_done="Ярлык создан в корневом каталоге порта.\nДобавить его в МЕНЮ -> ИГРЫ?"
export ss_done="Ярлык создан в корневом каталоге порта.\n Добавить его в МЕНЮ -> ИГРЫ?"
export inst_succ="Установка завершена успешно!"
@ -65,6 +65,7 @@ then
export PW_NO_FSYNC_INFO='Не использовать примитивы внутрипроцессной синхронизации на основе фьютексов. (Автоматически отключается в системах без FUTEX_WAIT_MULTIPLE поддержки) (Рекомендуется не изменять значение)'
export PW_USE_DXR10_INFO='Включить поддержку Ray Tracing v.1.0'
export PW_USE_DXR11_INFO='Включить поддержку Ray Tracing v.1.1 (бета)'
export PW_FIX_VIDEO_IN_GAME_INFO='Требуется для воспроизведения видео в некоторых играх, чтобы оно не было искажено (обычно окрашено в розовый цвет)'
export PW_VULKAN_NO_ASYNC_INFO='Выключить асинхронные вызовы для режимов VULKAN и DXVK'
export PW_USE_NVAPI_AND_DLSS_INFO='Включить DLSS на поддерживаемых видеокартах NVIDIA'
export PW_OLD_GL_STRING_INFO='Принудительное использование старых версий OpenGL'
@ -87,6 +88,7 @@ then
export PW_D3D_EXTRAS_DISABLE_INFO='Отключить принудительное использование сторонних библиотек DirectX'
export PW_PRIME_RENDER_OFFLOAD_INFO='Включить дискретную видеокарту NVIDIA для ноутбуков с гибридной графикой (при поддержке установленого драйвера в ОС)'
export PW_USE_WINDOWS_7_INFO='Изменить версию WINDOWS 10 на WINDOWS 7 в префиксе'
export PW_USE_AMDVLK_DRIVER_INFO='Использовать драйвер AMDVLK вместо RADV на видеокартах от AMD'
export PW_3DFX_INFO='Имитация старого графического ускорителя 3dfx (добавляет горизонтальные полосы)'
export PW_AdaptiveSharpen_INFO='Увеличение резкости, можно использовать совместо с CAS'
@ -117,7 +119,7 @@ then
export inst_set="Sett..."
export inst_set_top="PortWINE setting"
export ss_done="The shortcut was created in the ${portname} directory.\nAdd it to MENU -> GAMES?"
export ss_done="The shortcut was created in the ${portname} directory.\n Add it to MENU -> GAMES?"
export inst_succ="The installation was successful."
export port_upd1="New update PortWINE"

View File

@ -13,7 +13,7 @@ export TEXT_OPSSL=""
export PW_COMMENT_DB="${TEXT_OPSSL}Dwnload and start League of Legends can take a long time"
##export PW_WINDOWS_VER=10 # Set windows version 10, 7 or XP
##export PW_DLL_INSTALL="vcrun2017" # Install DDL in port prefix (used winetricks)
##export WINEDLLOVERRIDES="blabla=n,b"
export WINEDLLOVERRIDES="mscoree,mshtml="
export LAUNCH_PARAMETERS="--launch-product=league_of_legends --launch-patchline=live" # Additional launch options
export PW_WINE_USE=WINE_LOL_GE_7.0-1
export PW_VULKAN_USE=1

View File

@ -25,7 +25,7 @@ export PW_DLL_INSTALL="d3dx9 d3dcompiler_43" # Install DDL in port prefix
##export LAUNCH_PARAMETERS="('"+com_skipIntroVideo 1"' '"+com_skipSignInManager 1"')" # Additional launch options
##export PW_GUI_DISABLED_CS=1 # 1 = disabled GUI
##export VKD3D_CONFIG=force_bindless_texel_buffer,multi_queue,dxr
export PW_WINDOWS_VER=7 # Set windows version 10, 7 or XP
export PW_WINDOWS_VER=10 # Set windows version 10, 7 or XP
##export PW_VIRTUAL_DESKTOP=1
##export DXVK_HUD=fps,devinfo
##export PW_HEAP_DELAY_FREE=0

View File

@ -15,3 +15,7 @@ export WINEDLLOVERRIDES="ucrtbase,xaudio2_7,xaudio2_8=n,b"
export PW_DLL_INSTALL="lucida vcrun2019" # Install DDL in port prefix (used winetricks)
##export PW_GUI_DISABLED_CS=1
##export PW_WINEDBG_DISABLE=1 # Disabled WINEDBG
add_in_start_portwine () {
sed -i 's%<igbHardwareAccelerationEnabled> true </igbHardwareAccelerationEnabled>%<igbHardwareAccelerationEnabled> false </igbHardwareAccelerationEnabled>%' "${PORT_WINE_PATH}/data/prefixes/${PW_PREFIX_NAME}/drive_c/users/${USER}/AppData/Roaming/Wargaming.net/WorldOfTanks/preferences.xml"
}

View File

@ -7,6 +7,7 @@ export LAUNCH_PARAMETERS="--launch-product=league_of_legends --launch-patchline=
export PW_MUST_HAVE_DLL=""
export PW_VULKAN_USE=1
export PW_WINE_USE=WINE_LOL_GE_7.0-1
export WINEDLLOVERRIDES="mscoree,mshtml="
if [ ! -d "${PORT_WINE_PATH}/data/dist/${PW_WINE_USE}" ] ; then
if try_download "https://github.com/Castro-Fidel/wine_builds/releases/download/${PW_WINE_USE}/${PW_WINE_USE}.tar.xz" \

View File

@ -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 '
████─████─████─███─█───█─███─█──█─███
@ -10,7 +10,7 @@ echo '
█────████─█─█───█───█─█──███─█──█─███
'
if [ $(id -u) = 0 ] ; then
if [[ $(id -u) = 0 ]] ; then
echo "Do not run this script as root!"
zenity --error --text "Do not run this script as root!"
exit 1
@ -26,13 +26,37 @@ start_portwine () {
create_new_dir "${PORT_WINE_PATH}/data/prefixes/${PW_PREFIX_NAME}/drive_c/"
try_force_link_dir "${PORT_WINE_PATH}/data/prefixes" "${PORT_WINE_PATH}/data/prefixes/${PW_PREFIX_NAME}/drive_c/"
export WINEARCH="win64"
pw_install_dll_in_prefix
pw_check_and_download_wine "${PW_WINE_USE}"
if [[ "${PW_VULKAN_USE}" == 3 ]] ; then
export PW_WINE_USE="${PW_PROTON_PW_VER}"
echo "Force to use $PW_WINE_USE"
if [ ! -d "${PORT_WINE_PATH}/data/dist/${PW_WINE_USE}" ] ; then
if try_download "https://github.com/Castro-Fidel/wine_builds/releases/download/${PW_WINE_USE}/${PW_WINE_USE}.tar.xz" \
"${PORT_WINE_PATH}/data/tmp/${PW_WINE_USE}.tar.xz" ; then
if unpack_tar_xz "${PORT_WINE_PATH}/data/tmp/${PW_WINE_USE}.tar.xz" "${PORT_WINE_PATH}/data/dist/" ; then
try_remove_file "${PORT_WINE_PATH}/data/tmp/${PW_WINE_USE}.tar.xz"
UNPACK_STATUS=0
else
try_remove_file "${PORT_WINE_PATH}/data/tmp/${PW_WINE_USE}.tar.xz"
try_remove_dir "${PORT_WINE_PATH}/data/dist/${PW_WINE_USE}"
fi
fi
[[ "${UNPACK_STATUS}" != 0 ]] && exit 1
fi
edit_db_from_gui PW_WINE_USE
else
pw_check_and_download_wine "${PW_WINE_USE}"
fi
pw_install_dll_in_prefix
init_wine_ver
sed -i '/Steam.exe/d' "${WINEDIR}/share/wine/wine.inf"
sed -i '/\\Valve\\Steam/d' "${WINEDIR}/share/wine/wine.inf"
grep 'Steam.exe' "${WINEDIR}/share/wine/wine.inf"
if [[ "$?" == "0" ]] ; then
sed -i '/Steam.exe/d' "${WINEDIR}/share/wine/wine.inf"
fi
grep '\\Valve\\Steam' "${WINEDIR}/share/wine/wine.inf"
if [[ "$?" == "0" ]] ; then
sed -i '/\\Valve\\Steam/d' "${WINEDIR}/share/wine/wine.inf"
fi
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 +67,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,7 +78,6 @@ 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
@ -203,7 +137,7 @@ start_portwine () {
fi
if [[ ! -z "${PW_PRIME_RENDER_OFFLOAD}" && "${PW_PRIME_RENDER_OFFLOAD}" != 0 ]] ; then
export __NV_PRIME_RENDER_OFFLOAD=1
check_vk_icd_file
check_nvidia_vk_icd_file
fi
if [[ ! -z "${PW_HEAP_DELAY_FREE}" && "${PW_HEAP_DELAY_FREE}" != 0 ]]
then export WINE_HEAP_DELAY_FREE="1"
@ -213,6 +147,11 @@ start_portwine () {
then export WINE_ALLOW_XIM="1"
else export WINE_ALLOW_XIM="0"
fi
if [[ ! -z "${PW_FIX_VIDEO_IN_GAME}" && "${PW_FIX_VIDEO_IN_GAME}" != 0 ]]
then export WINE_DO_NOT_CREATE_DXGI_DEVICE_MANAGER="1"
else export WINE_DO_NOT_CREATE_DXGI_DEVICE_MANAGER="0"
fi
[[ ! -z "${PW_MANGOHUD_USER_CONF}" && "${PW_MANGOHUD_USER_CONF}" != 0 ]] && unset MANGOHUD_CONFIG
if [[ ! -z "${PW_USE_DXR11}" && "${PW_USE_DXR11}" != 0 ]]
then var_vkd3d_config_update dxr11
@ -225,21 +164,21 @@ start_portwine () {
if [ -x "`which optimus-manager 2>/dev/null`" ]; then
export check_optimus_manager=`optimus-manager --status | grep Current | cut -f 2 -d':' | sed -e 's/^[[:space:]]*//'`
fi
if [[ ! -z "${PW_NVIDIA}" && "${check_optimus_manager}" != "intel" ]] ; then
if [[ ! -z "${PW_NVIDIA}" ]] && [[ "${check_optimus_manager}" != "intel" ]] && [[ "${DRI_PRIME}" != 1 ]] ; then
if [ "${check_optimus_manager}" = "nvidia" ]; then
check_vk_icd_file
check_nvidia_vk_icd_file
elif [ -x "`which primusrun 2>/dev/null`" ]; then
export optirun_on="primusrun"
check_vk_icd_file
check_nvidia_vk_icd_file
elif [ -x "`which optirun 2>/dev/null`" ]; then
export optirun_on="optirun -b primus"
check_vk_icd_file
check_nvidia_vk_icd_file
elif [ -x "`which prime-run 2>/dev/null`" ]; then
export optirun_on="prime-run"
check_vk_icd_file
check_nvidia_vk_icd_file
elif [[ -x "`which nvidia-settings 2>/dev/null`" ]] ; then
export __GLX_VENDOR_LIBRARY_NAME=nvidia
check_vk_icd_file
check_nvidia_vk_icd_file
fi
else
export DRI_PRIME=1
@ -269,17 +208,17 @@ start_portwine () {
[[ -z "`cat /etc/os-release | grep -i "red hat"`" ]] && \
[[ -z "`cat /etc/os-release | grep -i "centos"`" ]] ; then
export PW_GAMEMODERUN=1
if [[ ! -z "${LD_PRELOAD}" ]] ; then
export PW_LD_PRELOAD="$LD_PRELOAD:libgamemodeauto.so.0"
if [[ ! -z "${PW_LD_PRELOAD}" ]] ; then
export PW_LD_PRELOAD="$PW_LD_PRELOAD:libgamemodeauto.so.0"
else
export PW_LD_PRELOAD="libgamemodeauto.so.0"
fi
PW_GAMEMODERUN_SLR="gamemoderun"
echo "Gamemod will be launched."
else
export PW_GAMEMODERUN=0
echo "Gamemod is not installed or disabled in vars script or db file: PW_USE_GAMEMODE=$PW_USE_GAMEMODE"
fi
pw_vkbasalt_check
pw_other_fixes
check_dirs_and_files_in_pfx () {
@ -312,6 +251,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 +277,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 \
@ -381,8 +323,31 @@ start_portwine () {
fi
done
var_winedlloverride_update "d3d11,d3d10,d3d10core,d3d10_1,d3d9,dxgi=b;d3d12="
elif [[ "${PW_VULKAN_USE}" == 3 ]] ; then
echo "Use GALLIUM-NINE (Native DX9 on MESA drivers)"
echo "Try link wine DXGI..."
export PW_GALLIUM_NINE_VER="0.8"
export PW_GALLIUM_NINE_PATH="${PW_PLUGINS_PATH}/gallium_nine_v.${PW_GALLIUM_NINE_VER}"
try_force_link_file "${PW_GALLIUM_NINE_PATH}/lib32/d3d9-nine.dll.so" "${PORT_WINE_PATH}/data/prefixes/${PW_PREFIX_NAME}/drive_c/windows/syswow64/d3d9.dll"
try_force_link_file "${PW_GALLIUM_NINE_PATH}/lib64/d3d9-nine.dll.so" "${PORT_WINE_PATH}/data/prefixes/${PW_PREFIX_NAME}/drive_c/windows/system32/d3d9.dll"
var_winedlloverride_update "d3d9=n;d3d10,d3d11,dxvk_config,vulkan-1,winevulkan="
export D3D_MODULE_PATH="${PW_GALLIUM_NINE_PATH}/lib32:${PW_GALLIUM_NINE_PATH}/lib64"
export PW_DX12_DISABLE=1
export ENABLE_VKBASALT=0
export PW_MANGOHUD=0
export WINE_FULLSCREEN_FSR=0
else
echo "Use VKD3D-PROTON and DXVK (DX 9-12 to vulkan)"
if [[ ! -z "${PW_USE_AMDVLK_DRIVER}" && "${PW_USE_AMDVLK_DRIVER}" != 0 ]]
then export AMD_VULKAN_ICD=AMDVLK
else export AMD_VULKAN_ICD=RADV
fi
export VKD3D_FEATURE_LEVEL="12_0"
create_new_dir "${PORT_WINE_TMP_PATH}/dxvk_cache"
export DXVK_STATE_CACHE_PATH="${PORT_WINE_TMP_PATH}"/dxvk_cache
export DXVK_STATE_CACHE=1
export __GL_DXVK_OPTIMIZATIONS=1
export CP_DXVK_FILES="d3d11 d3d10 d3d10core d3d10_1 d3d9 dxgi dxvk_config"
echo "Try link native DXVK files..."
for wine_dxvk_dll in ${CP_DXVK_FILES} ; do
@ -408,15 +373,12 @@ start_portwine () {
try_force_link_file "${WINEDIR}/lib/wine/vkd3d-proton/${wine_vkd3d_dll}.dll" "${PORT_WINE_PATH}/data/prefixes/${PW_PREFIX_NAME}/drive_c/windows/syswow64/${wine_vkd3d_dll}.dll"
try_force_link_file "${WINEDIR}/lib64/wine/vkd3d-proton/${wine_vkd3d_dll}.dll" "${PORT_WINE_PATH}/data/prefixes/${PW_PREFIX_NAME}/drive_c/windows/system32/${wine_vkd3d_dll}.dll"
done
if [[ ! -z "${PW_DX12_DISABLE}" && "${PW_DX12_DISABLE}" != 0 ]]
then var_winedlloverride_update "libvkd3d-proton-utils-3,libvkd3d-shader-1=n;d3d12="
else var_winedlloverride_update "d3d12,libvkd3d-proton-utils-3,libvkd3d-shader-1=n"
fi
fi
create_new_dir "${PORT_WINE_TMP_PATH}/dxvk_cache"
export DXVK_STATE_CACHE_PATH="${PORT_WINE_TMP_PATH}"/dxvk_cache
export DXVK_STATE_CACHE=1
export __GL_DXVK_OPTIMIZATIONS=1
if [[ ! -z "${PW_DX12_DISABLE}" && "${PW_DX12_DISABLE}" != 0 ]]
then var_winedlloverride_update "libvkd3d-proton-utils-3,libvkd3d-shader-1=n;d3d12="
else var_winedlloverride_update "d3d12,libvkd3d-proton-utils-3,libvkd3d-shader-1=n"
fi
create_new_dir "${PORT_WINE_TMP_PATH}/gl_shader_cache"
export __GL_SHADER_DISK_CACHE_PATH="${PORT_WINE_TMP_PATH}/gl_shader_cache"
export __GL_SHADER_DISK_CACHE=1
@ -455,20 +417,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 +433,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
@ -490,45 +446,41 @@ start_portwine () {
}
pw_run () {
if [ ! -z "$portwine_exe" ] ; then
if [[ ! -z "$portwine_exe" ]] ; then
cd "${PATH_TO_GAME}"
else
cd "${PORT_WINE_PATH}/data/prefixes/${PW_PREFIX_NAME}/drive_c"
fi
pw_mangohud_check
pw_vkbasalt_check
PW_LOG_TO_FILE="${PORT_WINE_PATH}/${portname}.log"
print_var "WINEDIR" "WINEPREFIX" "WINEDLLOVERRIDES" "PATH_TO_GAME" "PW_WINE_USE" "PW_VULKAN_USE" "VKD3D_CONFIG" \
"PW_LD_LIBRARY_PATH" "PATH" "WINEESYNC" "WINEFSYNC" "WINEFSYNC_FUTEX2"
if [ "${PW_LOG}" == 1 ] ; then
if [[ "${PW_LOG}" == 1 ]] ; then
echo "WINEDLLOVERRIDES=${WINEDLLOVERRIDES}" >> "${PW_LOG_TO_FILE}"
echo "------------------------------------" >> "${PW_LOG_TO_FILE}"
echo "Log WINE:" >> "${PW_LOG_TO_FILE}"
if [[ ! -z "${PW_GAMEMODERUN}" && "${PW_GAMEMODERUN}" != 0 ]] ; then
${optirun_on} ${pw_runtime} env LD_PRELOAD="${PW_LD_PRELOAD}" VK_LAYER_PATH="${VK_LAYER_PATH}" PATH="${PATH}" \
LD_LIBRARY_PATH="${PW_LD_LIBRARY_PATH}" ${RUN_MANGOHUD_IN_SLR} "${WINELOADER}" "$@" ${LAUNCH_PARAMETERS[@]} &>>"${PW_LOG_TO_FILE}"
else
${optirun_on} ${pw_runtime} env VK_LAYER_PATH="${VK_LAYER_PATH}" PATH="${PATH}" LD_LIBRARY_PATH="${PW_LD_LIBRARY_PATH}" \
${RUN_MANGOHUD_IN_SLR} "${WINELOADER}" "$@" ${LAUNCH_PARAMETERS[@]} &>>"${PW_LOG_TO_FILE}"
fi
${optirun_on} ${PW_GAMEMODERUN_SLR} ${pw_runtime} env LD_PRELOAD="${PW_LD_PRELOAD}" VK_LAYER_PATH="${VK_LAYER_PATH}" \
PATH="${PATH}" VK_INSTANCE_LAYERS=${PW_VK_INSTANCE_LAYERS} LD_LIBRARY_PATH="${PW_LD_LIBRARY_PATH}" \
VK_LAYER_PATH="${PW_VK_LAYER_PATH}" "${WINELOADER}" "$@" ${LAUNCH_PARAMETERS[@]} &>>"${PW_LOG_TO_FILE}"
else
[ "${PW_USE_TERMINAL}" != "1" ] && export PW_TERM=""
if [[ ! -z "${PW_GAMEMODERUN}" && "${PW_GAMEMODERUN}" != 0 ]] ; then
$PW_TERM ${optirun_on} ${pw_runtime} env LD_PRELOAD="${PW_LD_PRELOAD}" VK_LAYER_PATH="${VK_LAYER_PATH}" PATH="${PATH}" \
LD_LIBRARY_PATH="${PW_LD_LIBRARY_PATH}" ${RUN_MANGOHUD_IN_SLR} "${WINELOADER}" "$@" ${LAUNCH_PARAMETERS[@]}
else
$PW_TERM ${optirun_on} ${pw_runtime} env VK_LAYER_PATH="${VK_LAYER_PATH}" PATH="${PATH}" LD_LIBRARY_PATH="${PW_LD_LIBRARY_PATH}" \
${RUN_MANGOHUD_IN_SLR} "${WINELOADER}" "$@" ${LAUNCH_PARAMETERS[@]}
fi
$PW_TERM ${optirun_on} ${PW_GAMEMODERUN_SLR} ${pw_runtime} env LD_PRELOAD="${PW_LD_PRELOAD}" VK_LAYER_PATH="${VK_LAYER_PATH}" \
PATH="${PATH}" VK_INSTANCE_LAYERS=${PW_VK_INSTANCE_LAYERS} LD_LIBRARY_PATH="${PW_LD_LIBRARY_PATH}" \
VK_LAYER_PATH="${PW_VK_LAYER_PATH}" "${WINELOADER}" "$@" ${LAUNCH_PARAMETERS[@]}
fi
}
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
[[ -z "${LANG}" ]] && export LANG=C
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 +489,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 PW_GAMEMODERUN_SLR
export portname=PortProton
@ -629,7 +581,7 @@ export WINETRICKS_DOWNLOADER="curl"
export USER_CONF="${PORT_WINE_PATH}/data/user.conf"
check_user_conf
if [ -z "${INSTALLING_PORT}" ] ; then
if [[ -z "${INSTALLING_PORT}" ]] ; then
. "${USER_CONF}"
pw_port_update
pw_download_libs

View File

@ -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"

View File

@ -18,51 +18,40 @@ 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
export PW_PREFIX_NAME=`basename "$1" | awk -F'.' '{print $1}'`
${pw_runtime} env PATH="${PATH}" LD_LIBRARY_PATH="${PW_LD_LIBRARY_PATH}" unsquashfs -f -d "${PORT_WINE_PATH}/data/prefixes/${PW_PREFIX_NAME}" "$1"
if [[ -f "${PORT_WINE_PATH}/data/prefixes/${PW_PREFIX_NAME}/.create_shortcut" ]] ; then
orig_IFS="$IFS"
IFS=$'\n'
for crfb in `cat "${PORT_WINE_PATH}/data/prefixes/${PW_PREFIX_NAME}/.create_shortcut"` ; do
export portwine_exe="${PORT_WINE_PATH}/data/prefixes/${PW_PREFIX_NAME}/${crfb}"
portwine_create_shortcut "${PORT_WINE_PATH}/data/prefixes/${PW_PREFIX_NAME}/${crfb}"
done
IFS="$orig_IFS"
fi
exit 0
fi
portwine_launch () {
start_portwine
PORTWINE_MSI=`basename "${portwine_exe}" | grep .msi`
PORTWINE_BAT=`basename "${portwine_exe}" | grep .bat`
if [[ ! -z "${PW_VIRTUAL_DESKTOP}" && "${PW_VIRTUAL_DESKTOP}" == "1" ]] ; then
pw_screen_resolution=`xrandr --current | grep "*" | awk '{print $1;}' | head -1`
pw_run explorer "/desktop=portwine,${pw_screen_resolution}" "$portwine_exe"
pw_run explorer "/desktop=portwine,${pw_screen_resolution}" ${WINE_WIN_START} "$portwine_exe"
elif [ ! -z "${PORTWINE_MSI}" ]; then
pw_run msiexec /i "$portwine_exe"
elif [[ ! -z "${PORTWINE_BAT}" || ! -z "${portwine_exe}" ]] ; then
pw_run ${WINE_WIN_START} "$portwine_exe"
else
pw_run explorer
pw_run winefile
fi
}
portwine_create_shortcut () {
pw_create_gui_png
name_desktop="${PORTPROTON_NAME}"
echo "[Desktop Entry]" > "${PORT_WINE_PATH}/${name_desktop}.desktop"
echo "Name=${PORTPROTON_NAME}" >> "${PORT_WINE_PATH}/${name_desktop}.desktop"
if [ -z "${PW_CHECK_AUTOINSTAL}" ]
then echo "Exec=env "\"${PORT_SCRIPTS_PATH}/start.sh\" \"${portwine_exe}\" "" \
>> "${PORT_WINE_PATH}/${name_desktop}.desktop"
else echo "Exec=env "\"${PORT_SCRIPTS_PATH}/start.sh\" \"${portwine_exe}\" "" \
>> "${PORT_WINE_PATH}/${name_desktop}.desktop"
fi
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}.png"" >> "${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
if [ $? -eq "0" ]; then
cp -fu "${PORT_WINE_PATH}/${name_desktop}.desktop" ${HOME}/.local/share/applications/
fi
xdg-open "${PORT_WINE_PATH}" 2>1 >/dev/null &
}
portwine_delete_shortcut () {
rm -f "`grep -il "${portwine_exe}" "${HOME}/.local/share/applications"/*.desktop`"
rm -f "`grep -il "${portwine_exe}" "${PORT_WINE_PATH}"/*.desktop`"
}
portwine_start_debug () {
kill_portwine
export PW_LOG=1
@ -91,9 +80,12 @@ portwine_start_debug () {
echo "GLIBC version:" >> "${PORT_WINE_PATH}/${portname}.log"
echo `ldd --version | grep -m1 ldd | awk '{print $NF}'` >> "${PORT_WINE_PATH}/${portname}.log"
echo "--------------------------------------------------------" >> "${PORT_WINE_PATH}/${portname}.log"
if [ "${PW_VULKAN_USE}" = "0" ]
then echo "PW_VULKAN_USE=${PW_VULKAN_USE} - DX9-11 to OpenGL" >> "${PORT_WINE_PATH}/${portname}.log"
else echo "PW_VULKAN_USE=${PW_VULKAN_USE}" >> "${PORT_WINE_PATH}/${portname}.log"
if [[ "${PW_VULKAN_USE}" = "0" ]] ; then
echo "PW_VULKAN_USE=${PW_VULKAN_USE} - DX9-11 to OpenGL" >> "${PORT_WINE_PATH}/${portname}.log"
elif [[ "${PW_VULKAN_USE}" = "3" ]] ; then
echo "PW_VULKAN_USE=${PW_VULKAN_USE} - native DX9 on MESA drivers" >> "${PORT_WINE_PATH}/${portname}.log"
else
echo "PW_VULKAN_USE=${PW_VULKAN_USE}" >> "${PORT_WINE_PATH}/${portname}.log"
fi
echo "--------------------------------------------" >> "${PORT_WINE_PATH}/${portname}.log"
echo "Version WINE in the Port:" >> "${PORT_WINE_PATH}/${portname}.log"
@ -124,12 +116,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"
@ -204,7 +196,7 @@ pw_winecfg () {
pw_winefile () {
start_portwine
pw_run explorer
pw_run winefile
}
pw_winecmd () {
@ -220,6 +212,96 @@ 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"
[[ ! -f "${PORT_WINE_TMP_PATH}/fonts_list" ]] && "${PORT_WINE_TMP_PATH}/winetricks" fonts list | awk -F'(' '{print $1}' 1> "${PORT_WINE_TMP_PATH}/fonts_list"
[[ ! -f "${PORT_WINE_TMP_PATH}/settings_list" ]] && "${PORT_WINE_TMP_PATH}/winetricks" settings list | awk -F'(' '{print $1}' 1> "${PORT_WINE_TMP_PATH}/settings_list"
gui_prefix_manager () {
pw_start_progress_bar_block "Starting 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"
while read PW_BOOL_IN_DLL_LIST ; do
if [[ -z `echo "${PW_BOOL_IN_DLL_LIST}" | grep -E 'd3d|directx9|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"
try_remove_file "${PORT_WINE_TMP_PATH}/fonts_list_tmp"
while read PW_BOOL_IN_FONTS_LIST ; do
if [[ -z `echo "${PW_BOOL_IN_FONTS_LIST}" | grep -E 'dont_use'` ]] ; then
if grep "^`echo ${PW_BOOL_IN_FONTS_LIST} | awk '{print $1}'`$" "${PORT_WINE_PATH}/data/prefixes/${PW_PREFIX_NAME}/winetricks.log" ; then
echo -e "true\n`echo ${PW_BOOL_IN_FONTS_LIST} | awk '{print $1}'`\n`echo ${PW_BOOL_IN_FONTS_LIST} | awk '{ $1 = ""; print substr($0, 2) }'`" >> "${PORT_WINE_TMP_PATH}/fonts_list_tmp"
else
echo -e "false\n`echo ${PW_BOOL_IN_FONTS_LIST} | awk '{print $1}'`\n`echo ${PW_BOOL_IN_FONTS_LIST} | awk '{ $1 = ""; print substr($0, 2) }'`" >> "${PORT_WINE_TMP_PATH}/fonts_list_tmp"
fi
fi
done < "${PORT_WINE_TMP_PATH}/fonts_list"
try_remove_file "${PORT_WINE_TMP_PATH}/settings_list_tmp"
while read PW_BOOL_IN_FONTS_LIST ; do
if [[ -z `echo "${PW_BOOL_IN_FONTS_LIST}" | grep -E 'vista|alldlls|autostart_|bad|good|win|videomemory|vd=|isolate_home'` ]] ; then
if grep "^`echo ${PW_BOOL_IN_FONTS_LIST} | awk '{print $1}'`$" "${PORT_WINE_PATH}/data/prefixes/${PW_PREFIX_NAME}/winetricks.log" ; then
echo -e "true\n`echo ${PW_BOOL_IN_FONTS_LIST} | awk '{print $1}'`\n`echo ${PW_BOOL_IN_FONTS_LIST} | awk '{ $1 = ""; print substr($0, 2) }'`" >> "${PORT_WINE_TMP_PATH}/settings_list_tmp"
else
echo -e "false\n`echo ${PW_BOOL_IN_FONTS_LIST} | awk '{print $1}'`\n`echo ${PW_BOOL_IN_FONTS_LIST} | awk '{ $1 = ""; print substr($0, 2) }'`" >> "${PORT_WINE_TMP_PATH}/settings_list_tmp"
fi
fi
done < "${PORT_WINE_TMP_PATH}/settings_list"
pw_stop_progress_bar
KEY_EDIT_MANAGER_GUI=$RANDOM
"${pw_yad_new}" --plug=$KEY_EDIT_MANAGER_GUI --tabnum=1 --list --checklist \
--text="Select components to install in prefix: <b>\"${PW_PREFIX_NAME}\"</b>, using wine: <b>\"${PW_WINE_USE}\"</b>" \
--column=set --column=dll --column=info < "${PORT_WINE_TMP_PATH}/dll_list_tmp" 1>> "${PORT_WINE_TMP_PATH}/to_winetricks" &
"${pw_yad_new}" --plug=$KEY_EDIT_MANAGER_GUI --tabnum=2 --list --checklist \
--text="Select fonts to install in prefix: <b>\"${PW_PREFIX_NAME}\"</b>, using wine: <b>\"${PW_WINE_USE}\"</b>" \
--column=set --column=dll --column=info < "${PORT_WINE_TMP_PATH}/fonts_list_tmp" 1>> "${PORT_WINE_TMP_PATH}/to_winetricks" &
"${pw_yad_new}" --plug=$KEY_EDIT_MANAGER_GUI --tabnum=3 --list --checklist \
--text="Change config for prefix: <b>\"${PW_PREFIX_NAME}\"</b>" \
--column=set --column=dll --column=info < "${PORT_WINE_TMP_PATH}/settings_list_tmp" 1>> "${PORT_WINE_TMP_PATH}/to_winetricks" &
"${pw_yad_new}" --key=$KEY_EDIT_MANAGER_GUI --notebook --borders=5 --width=700 --height=600 --center \
--window-icon="$PW_GUI_ICON_PATH/port_proton.png" --title "PREFIX MANAGER..." --tab-pos=bottom --tab="DLL" --tab="FONTS" --tab="SETTINGS"
YAD_STATUS="$?"
if [[ "$YAD_STATUS" == "1" || "$YAD_STATUS" == "252" ]] ; then
stop_portwine
exit 0
fi
try_remove_file "${PORT_WINE_TMP_PATH}/dll_list_tmp"
try_remove_file "${PORT_WINE_TMP_PATH}/fonts_list_tmp"
for STPFXMNG in `cat "${PORT_WINE_TMP_PATH}/to_winetricks"` ; do
grep `echo ${STPFXMNG} | awk -F'|' '{print $2}'` "${PORT_WINE_PATH}/data/prefixes/${PW_PREFIX_NAME}/winetricks.log" &>/dev/null
if [ "$?" == "1" ] ; then
[[ -n "${STPFXMNG}" ]] && SET_FROM_PFX_MANAGER+="`echo ${STPFXMNG} | awk -F'|' '{print $2}'` "
fi
done
IFS=${old_IFS}
try_remove_file "${PORT_WINE_TMP_PATH}/to_winetricks"
if [[ ! -z ${SET_FROM_PFX_MANAGER} ]] ; then
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
print_info "Nothing to do. Restarting PortProton..."
stop_portwine &
/usr/bin/env bash -c ${pw_full_command_line[*]}
fi
}
gui_prefix_manager
}
pw_winetricks () {
update_winetricks
export PW_USE_TERMINAL=1
@ -247,11 +329,47 @@ 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
if [[ ! -z "`grep "/${PW_PREFIX_NAME}/" "${PORT_WINE_PATH}"/*.desktop `" ]] ; then
try_remove_file "${PORT_WINE_PATH}/data/prefixes/${PW_PREFIX_NAME}/.create_shortcut"
grep "/${PW_PREFIX_NAME}/" "${PORT_WINE_PATH}"/*.desktop | awk -F"/${PW_PREFIX_NAME}/" '{print $2}' \
| awk -F\" '{print $1}' > "${PORT_WINE_PATH}/data/prefixes/${PW_PREFIX_NAME}/.create_shortcut"
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_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 \
PW_WINEDBG_DISABLE PW_USE_TERMINAL PW_WINE_ALLOW_XIM PW_HEAP_DELAY_FREE PW_GUI_DISABLED_CS PW_USE_GSTREAMER \
PW_USE_GAMEMODE PW_DX12_DISABLE PW_PRIME_RENDER_OFFLOAD PW_D3D_EXTRAS_DISABLE
PW_USE_GAMEMODE PW_DX12_DISABLE PW_PRIME_RENDER_OFFLOAD PW_D3D_EXTRAS_DISABLE PW_FIX_VIDEO_IN_GAME PW_USE_AMDVLK_DRIVER \
PW_FORCE_LARGE_ADDRESS_AWARE
if [ "$?" == 0 ] ; then
/usr/bin/env bash -c ${pw_full_command_line[*]} &
exit 0
@ -276,6 +394,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`
@ -307,9 +439,10 @@ if [ ! -z "${PORTWINE_DB_FILE}" ] ; then
[ -z "${PW_VULKAN_USE}" ] && export PW_VULKAN_USE=1
fi
case "${PW_VULKAN_USE}" in
"0") export PW_DEFAULT_VULKAN_USE='OPENGL!VULKAN (DXVK and VKD3D)!VULKAN (WINE DXGI)' ;;
"2") export PW_DEFAULT_VULKAN_USE='VULKAN (WINE DXGI)!VULKAN (DXVK and VKD3D)!OPENGL' ;;
*) export PW_DEFAULT_VULKAN_USE='VULKAN (DXVK and VKD3D)!VULKAN (WINE DXGI)!OPENGL' ;;
"0") export PW_DEFAULT_VULKAN_USE='OPENGL!VULKAN (DXVK and VKD3D)!VULKAN (WINE DXGI)!GALLIUM_NINE (native DX9 on MESA)' ;;
"2") export PW_DEFAULT_VULKAN_USE='VULKAN (WINE DXGI)!VULKAN (DXVK and VKD3D)!OPENGL!GALLIUM_NINE (native DX9 on MESA)' ;;
"3") export PW_DEFAULT_VULKAN_USE='GALLIUM_NINE (native DX9 on MESA)!VULKAN (WINE DXGI)!VULKAN (DXVK and VKD3D)!OPENGL' ;;
*) export PW_DEFAULT_VULKAN_USE='VULKAN (DXVK and VKD3D)!VULKAN (WINE DXGI)!OPENGL!GALLIUM_NINE (native DX9 on MESA)' ;;
esac
if [[ ! -z `echo "${PW_WINE_USE}" | grep "^PROTON_STEAM$"` ]] ; then
export PW_DEFAULT_WINE_USE="${PW_PROTON_STEAM_VER}!${PW_PROTON_GE_VER}${DIST_ADD_TO_GUI}!GET-OTHER-WINE"
@ -326,7 +459,7 @@ if [ ! -z "${PORTWINE_DB_FILE}" ] ; then
fi
fi
else
export PW_DEFAULT_VULKAN_USE='VULKAN (DXVK and VKD3D)!VULKAN (WINE DXGI)!OPENGL'
export PW_DEFAULT_VULKAN_USE='VULKAN (DXVK and VKD3D)!VULKAN (WINE DXGI)!OPENGL!GALLIUM_NINE (native DX9 on MESA)'
if [[ ! -z `echo "${PW_WINE_USE}" | grep "^PROTON_STEAM$"` ]] ; then
export PW_DEFAULT_WINE_USE="${PW_PROTON_STEAM_VER}!${PW_PROTON_GE_VER}${DIST_ADD_TO_GUI}!GET-OTHER-WINE"
elif [[ ! -z `echo "${PW_WINE_USE}" | grep "^PROTON_GE$"` ]] ; then
@ -444,20 +577,21 @@ 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=" 3D API : :CB" "VULKAN (DXVK and VKD3D)!VULKAN (WINE DXGI)!OPENGL!GALLIUM_NINE (native DX9 on MESA)" \
--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"' \
@ -521,6 +655,8 @@ elif [[ ! -z "${VULKAN_MOD}" && "${VULKAN_MOD}" = "VULKAN (DXVK and VKD3D)" ]]
then export PW_VULKAN_USE="1"
elif [[ ! -z "${VULKAN_MOD}" && "${VULKAN_MOD}" = "VULKAN (WINE DXGI)" ]]
then export PW_VULKAN_USE="2"
elif [[ ! -z "${VULKAN_MOD}" && "${VULKAN_MOD}" = "GALLIUM_NINE (native DX9 on MESA)" ]]
then export PW_VULKAN_USE="3"
fi
init_wine_ver
@ -550,7 +686,7 @@ case "$PW_YAD_SET" in
WINEFILE|110) pw_winefile ;;
WINECMD|112) pw_winecmd ;;
WINEREG|114) pw_winereg ;;
WINETRICKS|116) pw_winetricks ;;
WINETRICKS|116) pw_prefix_manager ;;
118) pw_edit_db ;;
gui_clear_pfx) gui_clear_pfx ;;
gui_open_user_conf) gui_open_user_conf ;;
@ -561,6 +697,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

View File

@ -1,11 +1,12 @@
#!/usr/bin/env bash
#Author: Castro-Fidel (PortWINE-Linux.ru)
#SCRIPTS_NEXT_VERSION=2092
#SCRIPTS_NEXT_VERSION=2097
#PORT_NEXT_VERSION=97
########################################################################
export PW_MANGOHUD=1
export MANGOHUD_CONFIG=cpu_stats,cpu_temp,cpu_mhz,gpu_name,gpu_stats,gpu_temp,gpu_core_clock,gpu_mem_clock,vulkan_driver,fps,frametime,arch,frame_timing,time,font_size=24,position=top-left,vram,version,wine,no_display,resolution,background_alpha=0.5,toggle_hud=Shift_R+F12,vkbasalt
export PW_MANGOHUD=0
export MANGOHUD_CONFIG=cpu_stats,cpu_temp,cpu_mhz,cpu_color=2e97cb,cpu_text=CPU,gpu_stats,gpu_temp,gpu_core_clock,gpu_mem_clock,vulkan_driver,gpu_name,gpu_color=2e9762,gpu_text=GPU,vram,vram_color=ad64c1,ram,ram_color=c26693,io_color=a491d3,frame_timing=1,frametime_color=00ff00,time,arch,wine,wine_color=eb5b5b,engine_color=eb5b5b,background_alpha=0.2,font_size=24,background_color=020202,text_color=ffffff,toggle_hud=Shift_R+F12,resolution,vkbasalt,gamemode
#export DXVK_HUD=compiler
#export GALLIUM_HUD=fps
#export ENABLE_VKBASALT=1
#export PW_VIRTUAL_DESKTOP=1
#export PW_XKBD_RU_HACK=1
@ -22,23 +23,28 @@ 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="_v25"
export PORTWINE_URL="http://portwine-linux.ru/"
export GDK_BACKEND="x11"
export PW_USE_GSTREAMER="1"
export PW_PREFIX_NAME="DEFAULT"
export WINE_WIN_START="start.exe /i /unix"
export STAGING_SHARED_MEMORY=1
export PW_FORCE_LARGE_ADDRESS_AWARE=1
###DEFAULT_WINE###
export PW_WINE_USE=PROTON_GE
export PW_PLUGINS_VER="_v3"
export PW_PLUGINS_VER="_v4"
###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-9"
export PW_PROTON_GE_VER="PROTON_GE_${PW_GE_VER}"
export WINE_FULLSCREEN_FSR="1"
export WINE_FULLSCREEN_FSR_STRENGTH="2"
###WINE_PROTON_PW_FOR_GALLIUM_NINE###
export PW_PW_VER="7.5"
export PW_PROTON_PW_VER="PROTON_PW_${PW_PW_VER}"
#################################################################
pw_install_dll_in_prefix ()
{

View File

@ -1,4 +1,4 @@
#!/bin/env bash
#!/usr/bin/env bash
# Author: Castro-Fidel (PortWINE-Linux.ru)
########################################################################
zenity_info () {
@ -98,6 +98,7 @@ pw_stop_progress_bar_cover () {
kill -s KILL "$PW_YAD_PID_PROGRESS_BAR_COVER" > /dev/null 2>&1
return 0
}
export -f pw_stop_progress_bar_cover
open_changelog () {
"${pw_yad}" --title="Changelog" --borders=10 --no-buttons --text-align=center \
@ -110,14 +111,22 @@ pw_tray_icon () {
if [ ! -z "`pgrep -a yad_new | grep "\-\-notification" | awk '{print $1}'`" ] ; then
kill -s SIGUSR1 "`pgrep -a yad_new | grep "\-\-notification" | awk '{print $1}'`"
fi
tray_icon_click () {
echo ""
}
export -f tray_icon_click
pw_tray_winefile () {
pw_run explorer
pw_run winefile "C:\\users\\${USER}\\AppData\\Roaming\\Microsoft\\Windows\\Start Menu\\Programs\\"
}
export -f pw_tray_winefile
pw_tray_taskmgr () {
pw_run taskmgr
}
export -f pw_tray_taskmgr
tray_icon_click_exit () {
pw_stop_progress_bar
stop_portwine
@ -131,6 +140,7 @@ pw_tray_icon () {
--tooltip="PortProton" \
--menu="| \
<<< WINEFILE >>>!bash -c pw_tray_winefile!"$PW_GUI_ICON_PATH/port_winefile.png"| \
<<< TASKMNR >>>!bash -c pw_tray_taskmgr!"$PW_GUI_ICON_PATH/port_winefile.png"| \
<<< CHANGE LOG >>>!bash -c open_changelog!"$PW_GUI_ICON_PATH/port_changelog.png"| \
<<< FORCE EXIT >>>!bash -c tray_icon_click_exit!"$PW_GUI_ICON_PATH/port_exit.png"|" &
return 0
@ -177,7 +187,7 @@ pw_gui_for_edit_db () {
--field=":LBL" "" \
--field="MANGOHUD FPS LIMIT (0-disabled):SCL" ${FPS_LIMIT_VAR} 1> "${PORT_WINE_TMP_PATH}/tmp_output_yad_fps_limit" &
"${pw_yad_new}" --paned --key="$KEY_EDIT_DB_GUI" --title "EDIT_DB" --text-align=center --height="520" \
"${pw_yad_new}" --paned --key="$KEY_EDIT_DB_GUI" --title "EDIT_DB" --text-align=center --height="550" \
--text "Change settings in database file for ${PORTWINE_DB}\n" --separator=" " --borders=10 --center \
--window-icon="$PW_GUI_ICON_PATH/port_proton.png" --button="CANCEL":1 --button="OPEN DB FILE":150 --button="SAVE CHANGES":0
YAD_STATUS="$?"
@ -388,3 +398,39 @@ gui_vkBasalt () {
/usr/bin/env bash -c ${pw_full_command_line[*]} &
exit 0
}
portwine_create_shortcut () {
pw_create_gui_png
name_desktop="${PORTPROTON_NAME}"
echo "[Desktop Entry]" > "${PORT_WINE_PATH}/${name_desktop}.desktop"
echo "Name=${PORTPROTON_NAME}" >> "${PORT_WINE_PATH}/${name_desktop}.desktop"
if [ -z "${PW_CHECK_AUTOINSTAL}" ]
then echo "Exec=env "\"${PORT_SCRIPTS_PATH}/start.sh\" \"${portwine_exe}\" "" \
>> "${PORT_WINE_PATH}/${name_desktop}.desktop"
else echo "Exec=env "\"${PORT_SCRIPTS_PATH}/start.sh\" \"${portwine_exe}\" "" \
>> "${PORT_WINE_PATH}/${name_desktop}.desktop"
fi
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}.png"" >> "${PORT_WINE_PATH}/${name_desktop}.desktop"
chmod u+x "${PORT_WINE_PATH}/${name_desktop}.desktop"
"${pw_yad}" --title="${inst_set}." --form --center --borders=5 \
--window-icon "$PW_GUI_ICON_PATH/port_proton.png" \
--image "${PORT_WINE_PATH}/data/img/${PORTPROTON_NAME}.png" \
--field=" <b>${name_desktop}.desktop</b>:LBL" "" \
--field=" ${ss_done}:LBL" "" \
--button='CANCEL'!!"":1 \
--button='OK'!!"":0
if [ $? -eq "0" ]; then
try_remove_file "${HOME}/.local/share/applications/${name_desktop}.desktop"
cp -f "${PORT_WINE_PATH}/${name_desktop}.desktop" ${HOME}/.local/share/applications/
fi
xdg-open "${PORT_WINE_PATH}" 2>1 >/dev/null &
}
portwine_delete_shortcut () {
rm -f "`grep -il "${portwine_exe}" "${HOME}/.local/share/applications"/*.desktop`"
rm -f "`grep -il "${portwine_exe}" "${PORT_WINE_PATH}"/*.desktop`"
}

View File

@ -6,15 +6,16 @@ unset PW_AUTOPLAY PW_SET_LANG PW_SILENT_INSTALL
export portname="PortProton"
export port_ver=1.0
########################################################################
[[ -z "${LANG}" ]] && export LANG=C
deflink="${HOME}/PortWINE/${portname}"
[ $(id -u) -eq 0 ] && echo "Do not run the script from the superuser!" && zenity --error --text "Do not run the script from the superuser!" 2> /dev/null && exit 1
if [ "$(dirname "`readlink -f "$0"`")" == "/usr/bin" ] ; then
[ -z "${XDG_DATA_HOME}" ] && export XDG_DATA_HOME="$HOME/.local/share"
if [ -f "${XDG_DATA_HOME}/PortWINE/PortProton/data/scripts/start.sh" ] ; then
[[ $(id -u) -eq 0 ]] && echo "Do not run the script from the superuser!" && zenity --error --text "Do not run the script from the superuser!" 2> /dev/null && exit 1
if [[ "$(dirname "`readlink -f "$0"`")" == "/usr/bin" ]] ; then
[[ -z "${XDG_DATA_HOME}" ]] && export XDG_DATA_HOME="$HOME/.local/share"
if [[ -f "${XDG_DATA_HOME}/PortWINE/PortProton/data/scripts/start.sh" ]] ; then
/usr/bin/env bash "${XDG_DATA_HOME}/PortWINE/PortProton/data/scripts/start.sh" "$@"
exit 0
else
if [ ! -z "`locale | grep "LANG=ru_RU.UTF-8"`" ] ; then
if [[ ! -z "`locale | grep "LANG=ru_RU.UTF-8"`" ]] ; then
PW_SET_LANG="Russian"
else
PW_SET_LANG="English"

View File

@ -6,15 +6,16 @@ unset PW_AUTOPLAY PW_SET_LANG PW_SILENT_INSTALL
export portname="PortProton"
export port_ver=1.0
########################################################################
[[ -z "${LANG}" ]] && export LANG=C
deflink="${HOME}/PortWINE/${portname}"
[ $(id -u) -eq 0 ] && echo "Do not run the script from the superuser!" && zenity --error --text "Do not run the script from the superuser!" 2> /dev/null && exit 1
if [ "$(dirname "`readlink -f "$0"`")" == "/usr/bin" ] ; then
[ -z "${XDG_DATA_HOME}" ] && export XDG_DATA_HOME="$HOME/.local/share"
if [ -f "${XDG_DATA_HOME}/PortWINE/PortProton/data/scripts/start.sh" ] ; then
[[ $(id -u) -eq 0 ]] && echo "Do not run the script from the superuser!" && zenity --error --text "Do not run the script from the superuser!" 2> /dev/null && exit 1
if [[ "$(dirname "`readlink -f "$0"`")" == "/usr/bin" ]] ; then
[[ -z "${XDG_DATA_HOME}" ]] && export XDG_DATA_HOME="$HOME/.local/share"
if [[ -f "${XDG_DATA_HOME}/PortWINE/PortProton/data/scripts/start.sh" ]] ; then
/usr/bin/env bash "${XDG_DATA_HOME}/PortWINE/PortProton/data/scripts/start.sh" "$@"
exit 0
else
if [ ! -z "`locale | grep "LANG=ru_RU.UTF-8"`" ] ; then
if [[ ! -z "`locale | grep "LANG=ru_RU.UTF-8"`" ]] ; then
PW_SET_LANG="Russian"
else
PW_SET_LANG="English"